Fix network nbt reader

This commit is contained in:
2026-09-05 17:26:15 +08:00
parent 5e6e0ca5b9
commit a2eebe3d4e
8 files changed
+27 -13

No files matched your search

@@ -55,6 +55,7 @@ public class MinecraftClient internal constructor(
} catch (e: Exception) {
if (e is CancellationException) throw e
if (isActive) {
e.printStackTrace()
println("Network read loop exception: ${e.message}")
close()
}
@@ -9,14 +9,14 @@ package cn.rtast.libmc.protocol.packet.login
import cn.rtast.libmc.common.BytesBuffer
import cn.rtast.libmc.common.PacketCodec
import cn.rtast.libmc.common.readMcString
import cn.rtast.libmc.nbt.NBTCompound
import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound
public data class ClientboundDisconnectLoginPacket(val reason: String) : ClientboundLoginPacket {
public data class ClientboundDisconnectLoginPacket(val reason: NBTCompound) : ClientboundLoginPacket {
public companion object Codec : PacketCodec<ClientboundDisconnectLoginPacket> {
override fun encode(buffer: BytesBuffer, value: ClientboundDisconnectLoginPacket) {}
override fun decode(buffer: BytesBuffer): ClientboundDisconnectLoginPacket {
val reasonJson = buffer.readMcString()
return ClientboundDisconnectLoginPacket(reason = reasonJson)
return ClientboundDisconnectLoginPacket(reason = buffer.readNetworkNBTCompound())
}
}
}
@@ -8,6 +8,7 @@
package test
import cn.rtast.libmc.protocol.client.createMinecraftClient
import cn.rtast.libmc.protocol.packet.play.ClientboundDisconnectPlayPacket
import cn.rtast.libmc.protocol.packet.play.ClientboundLoginPlayPacket
import kotlinx.coroutines.launch
import kotlinx.coroutines.test.runTest
@@ -23,6 +24,9 @@ class TestClient {
cli.on<ClientboundLoginPlayPacket> {
println(it)
}
cli.on<ClientboundDisconnectPlayPacket> {
println(it)
}
while (true) {
}
}