aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-10-13 22:10:38 +0200
committerLinnea Gräf <nea@nea.moe>2025-10-13 22:10:38 +0200
commit733f01be8c2ca986e594816e73cb89ee1c8d105d (patch)
tree7709f194f714b0bcfdbab0c65ec5aa7b3fe49c14 /src/main/kotlin/features
parent05160314e6899ece75779dbd2e5b691ed581c2b9 (diff)
downloadFirmament-733f01be8c2ca986e594816e73cb89ee1c8d105d.tar.gz
Firmament-733f01be8c2ca986e594816e73cb89ee1c8d105d.tar.bz2
Firmament-733f01be8c2ca986e594816e73cb89ee1c8d105d.zip
feat: remove ktor (for a smaller binary)
Diffstat (limited to 'src/main/kotlin/features')
-rw-r--r--src/main/kotlin/features/chat/ChatLinks.kt28
-rw-r--r--src/main/kotlin/features/inventory/storageoverlay/VirtualInventory.kt8
2 files changed, 16 insertions, 20 deletions
diff --git a/src/main/kotlin/features/chat/ChatLinks.kt b/src/main/kotlin/features/chat/ChatLinks.kt
index b05a3a0..76eb48d 100644
--- a/src/main/kotlin/features/chat/ChatLinks.kt
+++ b/src/main/kotlin/features/chat/ChatLinks.kt
@@ -1,16 +1,13 @@
package moe.nea.firmament.features.chat
-import io.ktor.client.request.get
-import io.ktor.client.statement.bodyAsChannel
-import io.ktor.utils.io.jvm.javaio.toInputStream
import java.net.URI
-import java.net.URL
import java.util.Collections
import java.util.concurrent.atomic.AtomicInteger
import org.joml.Vector2i
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.async
+import kotlinx.coroutines.future.await
import kotlin.math.min
import net.minecraft.client.gui.screen.ChatScreen
import net.minecraft.client.texture.NativeImage
@@ -29,6 +26,7 @@ import moe.nea.firmament.jarvis.JarvisIntegration
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.data.Config
import moe.nea.firmament.util.data.ManagedConfig
+import moe.nea.firmament.util.net.HttpUtil
import moe.nea.firmament.util.render.drawTexture
import moe.nea.firmament.util.transformEachRecursively
import moe.nea.firmament.util.unformattedString
@@ -73,18 +71,16 @@ object ChatLinks {
}
imageCache[url] = Firmament.coroutineScope.async {
try {
- val response = Firmament.httpClient.get(URI.create(url).toURL())
- if (response.status.value == 200) {
- val inputStream = response.bodyAsChannel().toInputStream(Firmament.globalJob)
- val image = NativeImage.read(inputStream)
- val texId = Firmament.identifier("dynamic_image_preview${nextTexId.getAndIncrement()}")
- MC.textureManager.registerTexture(
- texId,
- NativeImageBackedTexture({ texId.path }, image)
- )
- Image(texId, image.width, image.height)
- } else
- null
+ val inputStream = HttpUtil.request(url)
+ .forInputStream()
+ .await()
+ val image = NativeImage.read(inputStream)
+ val texId = Firmament.identifier("dynamic_image_preview${nextTexId.getAndIncrement()}")
+ MC.textureManager.registerTexture(
+ texId,
+ NativeImageBackedTexture({ texId.path }, image)
+ )
+ Image(texId, image.width, image.height)
} catch (exc: Exception) {
exc.printStackTrace()
null
diff --git a/src/main/kotlin/features/inventory/storageoverlay/VirtualInventory.kt b/src/main/kotlin/features/inventory/storageoverlay/VirtualInventory.kt
index 4e40cf1..fddc189 100644
--- a/src/main/kotlin/features/inventory/storageoverlay/VirtualInventory.kt
+++ b/src/main/kotlin/features/inventory/storageoverlay/VirtualInventory.kt
@@ -1,9 +1,8 @@
package moe.nea.firmament.features.inventory.storageoverlay
-import io.ktor.util.decodeBase64Bytes
-import io.ktor.util.encodeBase64
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
+import java.util.Base64
import java.util.concurrent.CompletableFuture
import kotlinx.coroutines.async
import kotlinx.serialization.KSerializer
@@ -22,6 +21,7 @@ import net.minecraft.nbt.NbtOps
import net.minecraft.nbt.NbtSizeTracker
import moe.nea.firmament.Firmament
import moe.nea.firmament.features.inventory.storageoverlay.VirtualInventory.Serializer.writeToByteArray
+import moe.nea.firmament.util.Base64Util
import moe.nea.firmament.util.ErrorUtil
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.mc.TolerantRegistriesOps
@@ -68,7 +68,7 @@ data class VirtualInventory(
override fun deserialize(decoder: Decoder): VirtualInventory {
val s = decoder.decodeString()
- val n = NbtIo.readCompressed(ByteArrayInputStream(s.decodeBase64Bytes()), NbtSizeTracker.of(100_000_000))
+ val n = NbtIo.readCompressed(ByteArrayInputStream(Base64Util.decodeBytes(s)), NbtSizeTracker.of(100_000_000))
val items = n.getList(INVENTORY).getOrNull()
val ops = getOps()
return VirtualInventory(items?.map {
@@ -83,7 +83,7 @@ data class VirtualInventory(
fun getOps() = MC.currentOrDefaultRegistryNbtOps
override fun serialize(encoder: Encoder, value: VirtualInventory) {
- encoder.encodeString(value.serializationCache.get().encodeBase64())
+ encoder.encodeString(Base64Util.encodeToString(value.serializationCache.get()))
}
}
}