@@ -19,12 +19,16 @@ package com.lambda.network.api.v1.models
1919
2020import com.github.kittinunf.fuel.Fuel
2121import com.google.gson.annotations.SerializedName
22+ import com.lambda.graphics.texture.TextureUtils
2223import com.lambda.sound.SoundManager.toIdentifier
2324import com.lambda.threading.runSafe
25+ import com.lambda.util.Communication.logError
2426import com.lambda.util.FolderRegister.capes
2527import com.lambda.util.extension.resolveFile
2628import net.minecraft.client.texture.NativeImage
2729import net.minecraft.client.texture.NativeImageBackedTexture
30+ import org.lwjgl.BufferUtils
31+ import java.io.BufferedOutputStream
2832import java.io.ByteArrayOutputStream
2933
3034class Cape (
@@ -35,20 +39,19 @@ class Cape(
3539 val cape : String ,
3640) {
3741 fun fetch () = runSafe {
38- val output = ByteArrayOutputStream (2048 * 1024 * 4 )
39-
4042 Fuel .download(url)
41- .streamDestination { _, request -> output to { request.body.toStream() } }
42-
43- val image = NativeImage .read(output.toByteArray())
44- val native = NativeImageBackedTexture (image)
45- val id = cape.toIdentifier()
46-
47- mc.textureManager.registerTexture(id, native)
48-
49- capes.resolveFile(" $cape .png" )
50- .writeBytes(output.toByteArray())
43+ .fileDestination { _, _ -> capes.resolveFile(" $cape .png" ) }
44+ .response { result ->
45+ result.fold(
46+ success = {
47+ val image = TextureUtils .readImage(it)
48+ val native = NativeImageBackedTexture (image)
49+ val id = cape.toIdentifier()
50+
51+ mc.textureManager.registerTexture(id, native)
52+ },
53+ failure = { logError(" Error while downloading capes" , it) }
54+ )
55+ }
5156 }
52-
53- fun identifier () = cape.toIdentifier()
5457}
0 commit comments