Split Socket implementation, improve performance
This commit is contained in:
318 files changed
+1109
-2722
No files matched your search
+11
-13
@@ -6,7 +6,6 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.client
|
||||
|
||||
import cn.rtast.libmc.LibMCContext
|
||||
import cn.rtast.libmc.crypto.ProtocolContext
|
||||
import cn.rtast.libmc.crypto.ProtocolContextBuilder
|
||||
import cn.rtast.libmc.protocol.event.InternalPacketDispatcher
|
||||
@@ -24,22 +23,23 @@ import kotlin.uuid.Uuid
|
||||
|
||||
public class MinecraftClient internal constructor(
|
||||
private val host: String,
|
||||
private val port: Int = 25565,
|
||||
private val port: Int,
|
||||
private val username: String,
|
||||
internal val uuid: Uuid,
|
||||
internal val accessToken: String?,
|
||||
context: LibMCContext,
|
||||
parentJob: Job?,
|
||||
private val ioDispatcher: CoroutineDispatcher,
|
||||
cryptoContext: ProtocolContext,
|
||||
protocolContext: ProtocolContext,
|
||||
) : PacketEventDispatcher(), CoroutineScope {
|
||||
internal val rsa1024Encryptor = cryptoContext.rsaEncryptor
|
||||
internal val serverIdHasher = cryptoContext.sha1Hasher
|
||||
internal val authProvider = cryptoContext.authProvider
|
||||
internal val rsa1024Encryptor = protocolContext.rsaEncryptor
|
||||
internal val serverIdHasher = protocolContext.sha1Hasher
|
||||
internal val authProvider = protocolContext.authProvider
|
||||
internal val stateMachine = ClientStateMachine()
|
||||
|
||||
public val networkChannel: NetworkChannel = NetworkChannel(
|
||||
host, port, context, stateMachine, cryptoContext.cipherFactory, this
|
||||
host, port, stateMachine,
|
||||
protocolContext.cipherFactory,
|
||||
this, protocolContext
|
||||
)
|
||||
|
||||
private val internalPacketDispatcher = InternalPacketDispatcher(this, authProvider)
|
||||
@@ -95,21 +95,19 @@ public fun createMinecraftClient(
|
||||
username: String,
|
||||
uuid: Uuid = generateOfflineUuid(username),
|
||||
accessToken: String?,
|
||||
context: LibMCContext = LibMCContext(),
|
||||
parentJob: Job? = null,
|
||||
ioDispatcher: CoroutineDispatcher = Dispatchers.IO,
|
||||
crypto: ProtocolContextBuilder.() -> Unit,
|
||||
contextBuilder: ProtocolContextBuilder.() -> Unit,
|
||||
): MinecraftClient {
|
||||
val cryptoContext = ProtocolContextBuilder(accessToken != null).apply(crypto).build()
|
||||
val context = ProtocolContextBuilder(accessToken != null).apply(contextBuilder).build()
|
||||
return MinecraftClient(
|
||||
host = host,
|
||||
port = port,
|
||||
username = username,
|
||||
uuid = uuid,
|
||||
accessToken = accessToken,
|
||||
context = context,
|
||||
parentJob = parentJob,
|
||||
ioDispatcher = ioDispatcher,
|
||||
cryptoContext = cryptoContext
|
||||
protocolContext = context
|
||||
)
|
||||
}
|
||||
+5
-7
@@ -8,8 +8,8 @@
|
||||
package cn.rtast.libmc.protocol.network
|
||||
|
||||
import cn.rtast.libmc.crypto.NetworkCipher
|
||||
import cn.rtast.libmc.stream.ReadChannel
|
||||
import cn.rtast.libmc.stream.WriteChannel
|
||||
import cn.rtast.libmc.network.ReadChannel
|
||||
import cn.rtast.libmc.network.WriteChannel
|
||||
|
||||
/**
|
||||
* AES-128-CFB8 ***ciphered*** read channel
|
||||
@@ -17,7 +17,7 @@ import cn.rtast.libmc.stream.WriteChannel
|
||||
internal class CipherReadChannel(
|
||||
private val delegate: ReadChannel,
|
||||
private val crypto: NetworkCipher,
|
||||
) : ReadChannel() {
|
||||
) : ReadChannel {
|
||||
override suspend fun readFully(out: ByteArray, start: Int, end: Int) {
|
||||
delegate.readFully(out, start, end)
|
||||
val length = end - start
|
||||
@@ -43,7 +43,7 @@ internal class CipherReadChannel(
|
||||
internal class CipherWriteChannel(
|
||||
private val delegate: WriteChannel,
|
||||
private val crypto: NetworkCipher,
|
||||
) : WriteChannel() {
|
||||
) : WriteChannel {
|
||||
override suspend fun writeFully(value: ByteArray, startIndex: Int, endIndex: Int) {
|
||||
val length = endIndex - startIndex
|
||||
if (length <= 0) return
|
||||
@@ -52,7 +52,5 @@ internal class CipherWriteChannel(
|
||||
delegate.writeFully(encrypted, 0, length)
|
||||
}
|
||||
|
||||
override suspend fun flush() {
|
||||
delegate.flush()
|
||||
}
|
||||
override suspend fun flush() = delegate.flush()
|
||||
}
|
||||
+15
-17
@@ -6,17 +6,18 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.network
|
||||
|
||||
import cn.rtast.libmc.LibMCContext
|
||||
import cn.rtast.libmc.crypto.NetworkCipher
|
||||
import cn.rtast.libmc.crypto.ProtocolContext
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.network.wrap
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.writeBuffer
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.primitives.writeVarInt
|
||||
import cn.rtast.libmc.protocol.client.ClientStateMachine
|
||||
import cn.rtast.libmc.protocol.event.PacketEventDispatcher
|
||||
import cn.rtast.libmc.protocol.protocol.GamePacketsProtocolCodec
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.stream.wrap
|
||||
import cn.rtast.libmc.protocol.protocol.GamePacketsProtocolCodec.clientboundGameProtocols
|
||||
import cn.rtast.libmc.protocol.protocol.GamePacketsProtocolCodec.serverboundGameProtocols
|
||||
import cn.rtast.libmc.zlibCompress
|
||||
import cn.rtast.libmc.zlibDecompress
|
||||
import kotlin.concurrent.Volatile
|
||||
@@ -24,17 +25,17 @@ import kotlin.concurrent.Volatile
|
||||
public class NetworkChannel internal constructor(
|
||||
host: String,
|
||||
port: Int,
|
||||
context: LibMCContext,
|
||||
private val stateMachine: ClientStateMachine,
|
||||
cipherProvider: (ByteArray) -> NetworkCipher,
|
||||
private val dispatcher: PacketEventDispatcher,
|
||||
protocolContext: ProtocolContext,
|
||||
) {
|
||||
internal val session: NetworkSession = NetworkSession(host, port, context, cipherProvider)
|
||||
internal val session: NetworkSession = NetworkSession(host, port, cipherProvider, protocolContext)
|
||||
|
||||
@Volatile
|
||||
private var threshold = -1
|
||||
|
||||
public fun connect(): Unit = session.connect()
|
||||
public suspend fun connect(): Unit = session.connect()
|
||||
public fun setCompression(threshold: Int): Unit = run { this.threshold = threshold }
|
||||
|
||||
/**
|
||||
@@ -44,18 +45,17 @@ public class NetworkChannel internal constructor(
|
||||
*/
|
||||
public suspend fun readNextPacket(): MinecraftPacket {
|
||||
val packetLength = session.readVarInt()
|
||||
val rawFrameBytes = session.readBytes(packetLength)
|
||||
val frameBuf = rawFrameBytes.wrap()
|
||||
val frameBuf = session.readBytes(packetLength).wrap()
|
||||
val payloadBuf = if (threshold < 0) frameBuf else {
|
||||
val dataLength = frameBuf.readVarInt()
|
||||
val remainingBytes = frameBuf.readBytes(frameBuf.remaining.toInt())
|
||||
if (dataLength == 0) remainingBytes.wrap() else remainingBytes.zlibDecompress(dataLength).wrap()
|
||||
if (dataLength == 0) frameBuf else {
|
||||
val compressedBytes = frameBuf.toByteArray()
|
||||
compressedBytes.zlibDecompress(dataLength).wrap()
|
||||
}
|
||||
}
|
||||
val currentState = stateMachine.currentState
|
||||
val packetId = payloadBuf.readVarInt()
|
||||
val packet = GamePacketsProtocolCodec.clientboundGameProtocols
|
||||
.getRegistry(currentState)
|
||||
.decodePacket(packetId, payloadBuf)
|
||||
val packet = clientboundGameProtocols.getRegistry(currentState).decodePacket(packetId, payloadBuf)
|
||||
dispatcher.dispatchReceive(packet)
|
||||
return packet
|
||||
}
|
||||
@@ -67,9 +67,7 @@ public class NetworkChannel internal constructor(
|
||||
*/
|
||||
public suspend fun sendPacket(packet: MinecraftPacket) {
|
||||
val uncompressedBodyBuf = BytesBuffer()
|
||||
GamePacketsProtocolCodec.serverboundGameProtocols
|
||||
.getRegistry(stateMachine.currentState)
|
||||
.encodePacket(uncompressedBodyBuf, packet)
|
||||
serverboundGameProtocols.getRegistry(stateMachine.currentState).encodePacket(uncompressedBodyBuf, packet)
|
||||
val uncompressedData = uncompressedBodyBuf.toByteArray()
|
||||
val frameBuffer = BytesBuffer()
|
||||
if (threshold < 0) {
|
||||
|
||||
+15
-33
@@ -6,19 +6,20 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.network
|
||||
|
||||
import cn.rtast.libmc.LibMCContext
|
||||
import cn.rtast.libmc.crypto.NetworkCipher
|
||||
import cn.rtast.libmc.stream.ReadChannel
|
||||
import cn.rtast.libmc.stream.Socket
|
||||
import cn.rtast.libmc.stream.WriteChannel
|
||||
import cn.rtast.libmc.crypto.ProtocolContext
|
||||
import cn.rtast.libmc.network.RawSocket
|
||||
import cn.rtast.libmc.network.ReadChannel
|
||||
import cn.rtast.libmc.network.WriteChannel
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public class NetworkSession internal constructor(
|
||||
private val host: String,
|
||||
private val port: Int,
|
||||
private val context: LibMCContext,
|
||||
private var cipherProvider: (ByteArray) -> NetworkCipher,
|
||||
private val context: ProtocolContext,
|
||||
) {
|
||||
private var socket: Socket? = null
|
||||
private var socket: RawSocket? = null
|
||||
|
||||
public var readChannel: ReadChannel? = null
|
||||
private set
|
||||
@@ -26,47 +27,28 @@ public class NetworkSession internal constructor(
|
||||
public var writeChannel: WriteChannel? = null
|
||||
private set
|
||||
|
||||
public fun connect() {
|
||||
val sk = Socket(host, port, context)
|
||||
public suspend fun connect() {
|
||||
val sk = context.createSocket(host, port)
|
||||
sk.connect()
|
||||
this.socket = sk
|
||||
this.readChannel = sk.openReadChannel()
|
||||
this.writeChannel = sk.openWriteChannel()
|
||||
}
|
||||
|
||||
public fun enableEncryption(sharedKey: ByteArray) {
|
||||
val currentRead = requireNotNull(readChannel) { "ReadChannel not connected" }
|
||||
val currentWrite = requireNotNull(writeChannel) { "WriteChannel not connected" }
|
||||
val currentRead = requireNotNull(readChannel)
|
||||
val currentWrite = requireNotNull(writeChannel)
|
||||
val cipher = cipherProvider(sharedKey)
|
||||
this.readChannel = CipherReadChannel(currentRead, cipher)
|
||||
this.writeChannel = CipherWriteChannel(currentWrite, cipher)
|
||||
}
|
||||
|
||||
internal suspend fun readByte(): Byte {
|
||||
val channel = requireNotNull(readChannel) { "ReadChannel not connected" }
|
||||
return channel.readByte()
|
||||
}
|
||||
internal suspend fun readBytes(length: Int): ByteArray = requireNotNull(readChannel).readBytes(length)
|
||||
|
||||
internal suspend fun readBytes(length: Int): ByteArray {
|
||||
val channel = requireNotNull(readChannel) { "ReadChannel not connected" }
|
||||
return channel.readBytes(length)
|
||||
}
|
||||
|
||||
internal suspend fun readVarInt(): Int {
|
||||
var numRead = 0
|
||||
var result = 0
|
||||
var read: Byte
|
||||
do {
|
||||
read = readByte()
|
||||
val value = (read.toInt() and 0x7F)
|
||||
result = result or (value shl (7 * numRead))
|
||||
numRead++
|
||||
if (numRead > 5) throw IllegalArgumentException("VarInt is too big")
|
||||
} while ((read.toInt() and 0x80) != 0)
|
||||
return result
|
||||
}
|
||||
internal suspend fun readVarInt(): Int = requireNotNull(readChannel).readVarInt()
|
||||
|
||||
internal suspend fun writeFully(data: ByteArray) {
|
||||
val channel = requireNotNull(writeChannel) { "WriteChannel not connected" }
|
||||
val channel = requireNotNull(writeChannel)
|
||||
channel.writeFully(data, 0, data.size)
|
||||
channel.flush()
|
||||
}
|
||||
|
||||
+3
-3
@@ -10,17 +10,17 @@ package cn.rtast.libmc.protocol.packet.configuration
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readMcString
|
||||
import cn.rtast.libmc.primitives.writeMcString
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class KnownPacks(val namespace: String, val id: String, val version: String) {
|
||||
internal companion object Codec : PacketCodec<KnownPacks> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: KnownPacks) {
|
||||
override fun encode(buffer: BytesBuffer, value: KnownPacks) {
|
||||
buffer.writeMcString(value.namespace)
|
||||
buffer.writeMcString(value.id)
|
||||
buffer.writeMcString(value.version)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): KnownPacks {
|
||||
override fun decode(buffer: BytesBuffer): KnownPacks {
|
||||
val namespace = buffer.readMcString()
|
||||
val id = buffer.readMcString()
|
||||
val version = buffer.readMcString()
|
||||
|
||||
+3
-3
@@ -14,7 +14,7 @@ import cn.rtast.libmc.primitives.readUuid
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
public data class ClientboundAddResourcePackPacket(
|
||||
@@ -25,8 +25,8 @@ public data class ClientboundAddResourcePackPacket(
|
||||
val prompt: TextComponent,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundAddResourcePackPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundAddResourcePackPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundAddResourcePackPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundAddResourcePackPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundAddResourcePackPacket {
|
||||
val uuid = buffer.readUuid()
|
||||
val url = buffer.readMcString()
|
||||
val hash = buffer.readMcString()
|
||||
|
||||
+3
-3
@@ -7,12 +7,12 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ClientboundClearDialogPacket : MinecraftPacket,
|
||||
PacketCodec<ClientboundClearDialogPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundClearDialogPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundClearDialogPacket = ClientboundClearDialogPacket
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundClearDialogPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundClearDialogPacket = ClientboundClearDialogPacket
|
||||
}
|
||||
+3
-3
@@ -7,15 +7,15 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readMcString
|
||||
|
||||
public data class ClientboundCodeOfConductPacket(val codeOfConduct: String) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundCodeOfConductPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCodeOfConductPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCodeOfConductPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCodeOfConductPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCodeOfConductPacket {
|
||||
return ClientboundCodeOfConductPacket(buffer.readMcString())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.nbt.NBTCompound
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound
|
||||
|
||||
public data class ClientboundConfigurationShowDialogPacket(val dialog: NBTCompound) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundConfigurationShowDialogPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundConfigurationShowDialogPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundConfigurationShowDialogPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundConfigurationShowDialogPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundConfigurationShowDialogPacket {
|
||||
return ClientboundConfigurationShowDialogPacket(buffer.readNetworkNBTCompound())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.protocol.protocol.game.Identifier
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.readIdentifier
|
||||
|
||||
public data class ClientboundCookieRequestPacket(val key: Identifier) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundCookieRequestPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCookieRequestPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCookieRequestPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCookieRequestPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCookieRequestPacket {
|
||||
return ClientboundCookieRequestPacket(key = buffer.readIdentifier())
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.protocol.protocol.game.Identifier
|
||||
@@ -18,10 +18,10 @@ public data class ClientboundCustomPayloadPacket(
|
||||
val data: ByteArray,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundCustomPayloadPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomPayloadPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCustomPayloadPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCustomPayloadPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCustomPayloadPacket {
|
||||
val channel = buffer.readIdentifier()
|
||||
val data = buffer.readRemainingBytes()
|
||||
val data = buffer.toByteArray()
|
||||
return ClientboundCustomPayloadPacket(channel, data)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readMcString
|
||||
@@ -17,12 +17,12 @@ import cn.rtast.libmc.primitives.writeMcString
|
||||
public data class ClientboundCustomReportDetailsPacket(val details: List<ReportDetail>) : MinecraftPacket {
|
||||
public data class ReportDetail(val title: String, val description: String) {
|
||||
internal companion object Codec : PacketCodec<ReportDetail> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ReportDetail) {
|
||||
override fun encode(buffer: BytesBuffer, value: ReportDetail) {
|
||||
buffer.writeMcString(value.title)
|
||||
buffer.writeMcString(value.description)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ReportDetail {
|
||||
override fun decode(buffer: BytesBuffer): ReportDetail {
|
||||
val title = buffer.readMcString()
|
||||
val description = buffer.readMcString()
|
||||
return ReportDetail(title, description)
|
||||
@@ -31,8 +31,8 @@ public data class ClientboundCustomReportDetailsPacket(val details: List<ReportD
|
||||
}
|
||||
|
||||
internal companion object Codec : PacketCodec<ClientboundCustomReportDetailsPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomReportDetailsPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCustomReportDetailsPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCustomReportDetailsPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCustomReportDetailsPacket {
|
||||
val detailCount = buffer.readVarInt()
|
||||
val details = ArrayList<ReportDetail>(detailCount)
|
||||
repeat(detailCount) { details.add(ReportDetail.decode(buffer)) }
|
||||
|
||||
+3
-3
@@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundDisconnectConfigurationPacket(val reason: TextComponent) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundDisconnectConfigurationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisconnectConfigurationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundDisconnectConfigurationPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundDisconnectConfigurationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundDisconnectConfigurationPacket {
|
||||
return ClientboundDisconnectConfigurationPacket(reason = buffer.readTextComponent())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,14 +7,14 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ClientboundFinishConfigurationPacket : MinecraftPacket,
|
||||
PacketCodec<ClientboundFinishConfigurationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundFinishConfigurationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundFinishConfigurationPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundFinishConfigurationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundFinishConfigurationPacket {
|
||||
return ClientboundFinishConfigurationPacket
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -7,14 +7,14 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data class ClientboundKeepAliveConfigurationPacket(val id: Long) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundKeepAliveConfigurationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundKeepAliveConfigurationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundKeepAliveConfigurationPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundKeepAliveConfigurationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundKeepAliveConfigurationPacket {
|
||||
return ClientboundKeepAliveConfigurationPacket(buffer.readLong())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,14 +7,14 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data class ClientboundPingConfigurationPacket(val id: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPingConfigurationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPingConfigurationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPingConfigurationPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPingConfigurationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPingConfigurationPacket {
|
||||
return ClientboundPingConfigurationPacket(id = buffer.readInt())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -23,8 +23,8 @@ public data class ClientboundRegistryDataPacket(
|
||||
val entries: List<RegistryEntry>,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundRegistryDataPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundRegistryDataPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundRegistryDataPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundRegistryDataPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundRegistryDataPacket {
|
||||
val id = buffer.readIdentifier()
|
||||
val entryCount = buffer.readVarInt()
|
||||
val entries = ArrayList<RegistryEntry>(entryCount)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readUuid
|
||||
@@ -15,8 +15,8 @@ import kotlin.uuid.Uuid
|
||||
|
||||
public data class ClientboundRemoveResourcePackPacket(val uuid: Uuid) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundRemoveResourcePackPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundRemoveResourcePackPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundRemoveResourcePackPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundRemoveResourcePackPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundRemoveResourcePackPacket {
|
||||
val uuid = buffer.readUuid()
|
||||
return ClientboundRemoveResourcePackPacket(uuid)
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,12 +7,12 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ClientboundResetChatPacket : MinecraftPacket,
|
||||
PacketCodec<ClientboundResetChatPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundResetChatPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundResetChatPacket = ClientboundResetChatPacket
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundResetChatPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundResetChatPacket = ClientboundResetChatPacket
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.packet.configuration.KnownPacks
|
||||
|
||||
public data class ClientboundSelectKnownPacksPacket(val knownPacks: List<KnownPacks>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundSelectKnownPacksPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundSelectKnownPacksPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundSelectKnownPacksPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundSelectKnownPacksPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundSelectKnownPacksPacket {
|
||||
val packsCount = buffer.readVarInt()
|
||||
val packs = List(packsCount) { KnownPacks.decode(buffer) }
|
||||
return ClientboundSelectKnownPacksPacket(packs)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.registry.report.ServerLink
|
||||
|
||||
public data class ClientboundServerLinksPacket(val links: List<ServerLink>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundServerLinksPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundServerLinksPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundServerLinksPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundServerLinksPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundServerLinksPacket {
|
||||
val count = buffer.readVarInt()
|
||||
val links = ArrayList<ServerLink>(count)
|
||||
repeat(count) { links.add(ServerLink.decode(buffer)) }
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readPrefixedByteArray
|
||||
@@ -22,8 +22,8 @@ public data class ClientboundStoreCookiePacket(
|
||||
val payload: ByteArray,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundStoreCookiePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundStoreCookiePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundStoreCookiePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundStoreCookiePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundStoreCookiePacket {
|
||||
val key = buffer.readIdentifier()
|
||||
val payload = buffer.readPrefixedByteArray()
|
||||
return ClientboundStoreCookiePacket(key, payload)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readMcString
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public data class ClientboundTransferPacket(val host: String, val port: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundTransferPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundTransferPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundTransferPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundTransferPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundTransferPacket {
|
||||
val host = buffer.readMcString()
|
||||
val port = buffer.readVarInt()
|
||||
return ClientboundTransferPacket(host, port)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.readIdentifier
|
||||
|
||||
public data class ClientboundUpdateEnabledFeaturesPacket(val features: List<Identifier>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundUpdateEnabledFeaturesPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateEnabledFeaturesPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateEnabledFeaturesPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundUpdateEnabledFeaturesPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundUpdateEnabledFeaturesPacket {
|
||||
val featureCount = buffer.readVarInt()
|
||||
val features = ArrayList<Identifier>(featureCount)
|
||||
repeat(featureCount) { features.add(buffer.readIdentifier()) }
|
||||
|
||||
+7
-7
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -19,13 +19,13 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier
|
||||
public data class ClientboundUpdateTagsPacket(val registries: List<TaggedRegistry>) : MinecraftPacket {
|
||||
public data class TaggedRegistry(val registryId: Identifier, val tags: List<Tag>) {
|
||||
internal companion object Codec : PacketCodec<TaggedRegistry> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: TaggedRegistry) {
|
||||
override fun encode(buffer: BytesBuffer, value: TaggedRegistry) {
|
||||
buffer.writeIdentifier(value.registryId)
|
||||
buffer.writeVarInt(value.tags.size)
|
||||
value.tags.forEach { Tag.encode(buffer, it) }
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): TaggedRegistry {
|
||||
override fun decode(buffer: BytesBuffer): TaggedRegistry {
|
||||
val id = buffer.readIdentifier()
|
||||
val tagCount = buffer.readVarInt()
|
||||
val tags = ArrayList<Tag>(tagCount)
|
||||
@@ -37,13 +37,13 @@ public data class ClientboundUpdateTagsPacket(val registries: List<TaggedRegistr
|
||||
|
||||
public data class Tag(val name: Identifier, val entries: IntArray) {
|
||||
internal companion object Codec : PacketCodec<Tag> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: Tag) {
|
||||
override fun encode(buffer: BytesBuffer, value: Tag) {
|
||||
buffer.writeIdentifier(value.name)
|
||||
buffer.writeVarInt(value.entries.size)
|
||||
value.entries.forEach { buffer.writeVarInt(it) }
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): Tag {
|
||||
override fun decode(buffer: BytesBuffer): Tag {
|
||||
val name = buffer.readIdentifier()
|
||||
val entrySize = buffer.readVarInt()
|
||||
val entries = ArrayList<Int>(entrySize)
|
||||
@@ -69,8 +69,8 @@ public data class ClientboundUpdateTagsPacket(val registries: List<TaggedRegistr
|
||||
}
|
||||
|
||||
internal companion object Codec : PacketCodec<ClientboundUpdateTagsPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateTagsPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateTagsPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundUpdateTagsPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundUpdateTagsPacket {
|
||||
val registryCount = buffer.readVarInt()
|
||||
val registries = ArrayList<TaggedRegistry>(registryCount)
|
||||
repeat(registryCount) { registries.add(TaggedRegistry.decode(buffer)) }
|
||||
|
||||
+3
-3
@@ -7,13 +7,13 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
|
||||
public data object ServerboundAcceptCodeOfConductPacket : MinecraftPacket,
|
||||
PacketCodec<ServerboundAcceptCodeOfConductPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundAcceptCodeOfConductPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundAcceptCodeOfConductPacket =
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundAcceptCodeOfConductPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ServerboundAcceptCodeOfConductPacket =
|
||||
ServerboundAcceptCodeOfConductPacket
|
||||
}
|
||||
+3
-3
@@ -7,13 +7,13 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
|
||||
public data object ServerboundAckFinishConfigurationPacket : MinecraftPacket,
|
||||
PacketCodec<ServerboundAckFinishConfigurationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundAckFinishConfigurationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundAckFinishConfigurationPacket =
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundAckFinishConfigurationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ServerboundAckFinishConfigurationPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.writeVarInt
|
||||
@@ -16,7 +16,7 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier
|
||||
|
||||
public data class ServerboundCookieResponsePacket(val key: Identifier, val payload: ByteArray?) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundCookieResponsePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundCookieResponsePacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundCookieResponsePacket) {
|
||||
buffer.writeIdentifier(value.key)
|
||||
if (value.payload != null) {
|
||||
buffer.writeBoolean(true)
|
||||
@@ -25,7 +25,7 @@ public data class ServerboundCookieResponsePacket(val key: Identifier, val paylo
|
||||
} else buffer.writeBoolean(false)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundCookieResponsePacket =
|
||||
override fun decode(buffer: BytesBuffer): ServerboundCookieResponsePacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -7,17 +7,17 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
|
||||
public data class ServerboundKeepAliveConfigurationPacket(val id: Long) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundKeepAliveConfigurationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundKeepAliveConfigurationPacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundKeepAliveConfigurationPacket) {
|
||||
buffer.writeLong(value.id)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundKeepAliveConfigurationPacket =
|
||||
override fun decode(buffer: BytesBuffer): ServerboundKeepAliveConfigurationPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -7,17 +7,17 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
|
||||
public data class ServerboundPongConfigurationPacket(val id: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundPongConfigurationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundPongConfigurationPacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundPongConfigurationPacket) {
|
||||
buffer.writeInt(value.id)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundPongConfigurationPacket =
|
||||
override fun decode(buffer: BytesBuffer): ServerboundPongConfigurationPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.configuration.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.writeVarInt
|
||||
@@ -15,12 +15,12 @@ import cn.rtast.libmc.protocol.packet.configuration.KnownPacks
|
||||
|
||||
public data class ServerboundSelectKnownPacksPacket(val knownPacks: List<KnownPacks>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundSelectKnownPacksPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundSelectKnownPacksPacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundSelectKnownPacksPacket) {
|
||||
buffer.writeVarInt(value.knownPacks.size)
|
||||
value.knownPacks.forEach { KnownPacks.encode(buffer, it) }
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundSelectKnownPacksPacket =
|
||||
override fun decode(buffer: BytesBuffer): ServerboundSelectKnownPacksPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.handshake
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.writeMcString
|
||||
@@ -21,13 +21,13 @@ public data class ServerboundHandshakePacket(
|
||||
val intent: HandshakeIntent,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundHandshakePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundHandshakePacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundHandshakePacket) {
|
||||
buffer.writeVarInt(value.protocolVersion)
|
||||
buffer.writeMcString(value.serverAddress)
|
||||
buffer.writeShort(value.serverPort.toShort())
|
||||
buffer.writeVarInt(value.intent.intentID)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundHandshakePacket = throw UnsupportedOperationException()
|
||||
override fun decode(buffer: BytesBuffer): ServerboundHandshakePacket = throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -20,11 +20,11 @@ public data class ClientboundCustomQueryPacket(
|
||||
val data: ByteArray,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundCustomQueryPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomQueryPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCustomQueryPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCustomQueryPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCustomQueryPacket {
|
||||
val messageId = buffer.readVarInt()
|
||||
val channel = buffer.readIdentifier()
|
||||
val data = buffer.readBytes(buffer.remaining.toInt())
|
||||
val data = buffer.toByteArray()
|
||||
return ClientboundCustomQueryPacket(messageId, channel, data)
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundDisconnectLoginPacket(val reason: TextComponent) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundDisconnectLoginPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisconnectLoginPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundDisconnectLoginPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundDisconnectLoginPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundDisconnectLoginPacket {
|
||||
return ClientboundDisconnectLoginPacket(reason = buffer.readTextComponent())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readMcString
|
||||
@@ -27,8 +27,8 @@ public data class ClientboundHelloPacket(
|
||||
val shouldAuthenticate: Boolean,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundHelloPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundHelloPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundHelloPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundHelloPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundHelloPacket {
|
||||
val serverId = buffer.readMcString()
|
||||
val publicKey = buffer.readPrefixedByteArray()
|
||||
val verifyToken = buffer.readPrefixedByteArray()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readUuid
|
||||
@@ -17,8 +17,8 @@ import kotlin.uuid.Uuid
|
||||
public data class ClientboundLoginSuccessPacket(val gameProfile: GameProfile, val sessionId: Uuid) :
|
||||
MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundLoginSuccessPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundLoginSuccessPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundLoginSuccessPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundLoginSuccessPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundLoginSuccessPacket {
|
||||
val gameProfile = GameProfile.decode(buffer)
|
||||
val sessionId = buffer.readUuid()
|
||||
return ClientboundLoginSuccessPacket(gameProfile, sessionId)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -15,11 +15,11 @@ import cn.rtast.libmc.primitives.writeVarInt
|
||||
|
||||
public data class ClientboundSetCompressionPacket(val threshold: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundSetCompressionPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetCompressionPacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundSetCompressionPacket) {
|
||||
buffer.writeVarInt(value = value.threshold)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundSetCompressionPacket {
|
||||
override fun decode(buffer: BytesBuffer): ClientboundSetCompressionPacket {
|
||||
return ClientboundSetCompressionPacket(buffer.readVarInt())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.writeOptionalPrefixedByteArray
|
||||
@@ -15,12 +15,12 @@ import cn.rtast.libmc.primitives.writeVarInt
|
||||
|
||||
public data class ServerboundCustomQueryAnswerPacket(val messageId: Int, val data: ByteArray?) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundCustomQueryAnswerPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundCustomQueryAnswerPacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundCustomQueryAnswerPacket) {
|
||||
buffer.writeVarInt(value.messageId)
|
||||
buffer.writeOptionalPrefixedByteArray(value.data)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundCustomQueryAnswerPacket =
|
||||
override fun decode(buffer: BytesBuffer): ServerboundCustomQueryAnswerPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.writePrefixedByteArray
|
||||
@@ -17,12 +17,12 @@ import cn.rtast.libmc.primitives.writePrefixedByteArray
|
||||
*/
|
||||
public data class ServerboundKeyPacket(val sharedSecret: ByteArray, val verifyToken: ByteArray) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundKeyPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundKeyPacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundKeyPacket) {
|
||||
buffer.writePrefixedByteArray(value.sharedSecret)
|
||||
buffer.writePrefixedByteArray(value.verifyToken)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundKeyPacket =
|
||||
override fun decode(buffer: BytesBuffer): ServerboundKeyPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -7,13 +7,13 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ServerboundLoginAcknowledgedPacket : MinecraftPacket,
|
||||
PacketCodec<ServerboundLoginAcknowledgedPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundLoginAcknowledgedPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundLoginAcknowledgedPacket =
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundLoginAcknowledgedPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ServerboundLoginAcknowledgedPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.login.serverbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.writeMcString
|
||||
@@ -16,12 +16,12 @@ import kotlin.uuid.Uuid
|
||||
|
||||
public data class ServerboundLoginStartPacket(val username: String, val playerUuid: Uuid) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ServerboundLoginStartPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ServerboundLoginStartPacket) {
|
||||
override fun encode(buffer: BytesBuffer, value: ServerboundLoginStartPacket) {
|
||||
buffer.writeMcString(value.username)
|
||||
buffer.writeUuid(value.playerUuid)
|
||||
}
|
||||
|
||||
override suspend fun decode(buffer: BytesBuffer): ServerboundLoginStartPacket =
|
||||
override fun decode(buffer: BytesBuffer): ServerboundLoginStartPacket =
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -17,8 +17,8 @@ import cn.rtast.libmc.primitives.readVarInt
|
||||
*/
|
||||
public data class ClientboundAcknowledgeBlockChangePacket(val sequenceId: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundAcknowledgeBlockChangePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundAcknowledgeBlockChangePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundAcknowledgeBlockChangePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundAcknowledgeBlockChangePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundAcknowledgeBlockChangePacket {
|
||||
return ClientboundAcknowledgeBlockChangePacket(buffer.readVarInt())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -18,8 +18,8 @@ import cn.rtast.libmc.protocol.protocol.game.StatisticsEntry
|
||||
*/
|
||||
public data class ClientboundAwardStatisticsPacket(val stats: List<StatisticsEntry>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundAwardStatisticsPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundAwardStatisticsPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundAwardStatisticsPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundAwardStatisticsPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundAwardStatisticsPacket {
|
||||
val count = buffer.readVarInt()
|
||||
val stats = List(count) { StatisticsEntry.decode(buffer) }
|
||||
return ClientboundAwardStatisticsPacket(stats)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -24,8 +24,8 @@ public data class ClientboundBlockDestructionPacket(
|
||||
val stage: BlockDestroyStage,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundBlockDestructionPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockDestructionPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundBlockDestructionPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundBlockDestructionPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundBlockDestructionPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val location = buffer.readBlockPos()
|
||||
val stage = buffer.readByte()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -19,8 +19,8 @@ import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound
|
||||
public data class ClientboundBlockEntityDataPacket(val location: BlockPos, val type: Int, val data: NBTCompound) :
|
||||
MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundBlockEntityDataPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockEntityDataPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundBlockEntityDataPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundBlockEntityDataPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundBlockEntityDataPacket {
|
||||
val location = buffer.readBlockPos()
|
||||
val type = buffer.readVarInt()
|
||||
val data = buffer.readNetworkNBTCompound()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -32,8 +32,8 @@ public data class ClientboundBlockEventPacket(
|
||||
val blockType: Int,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundBlockEventPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockEventPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundBlockEventPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundBlockEventPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundBlockEventPacket {
|
||||
val location = buffer.readBlockPos()
|
||||
val actionId = buffer.readUByte()
|
||||
val actionParameter = buffer.readUByte()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.block.readBlockPos
|
||||
|
||||
public data class ClientboundBlockUpdatePacket(val location: BlockPos, val blockId: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundBlockUpdatePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockUpdatePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundBlockUpdatePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundBlockUpdatePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundBlockUpdatePacket {
|
||||
val position = buffer.readBlockPos()
|
||||
val blockId = buffer.readVarInt()
|
||||
return ClientboundBlockUpdatePacket(position, blockId)
|
||||
|
||||
+3
-3
@@ -16,13 +16,13 @@ import cn.rtast.libmc.protocol.protocol.game.bossbar.BossBarColor
|
||||
import cn.rtast.libmc.protocol.protocol.game.bossbar.BossBarDivision
|
||||
import cn.rtast.libmc.protocol.protocol.game.bossbar.BossBarFlags
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
public data class ClientboundBossEventPacket(val uuid: Uuid, val action: BossBarAction) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundBossEventPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundBossEventPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundBossEventPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundBossEventPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundBossEventPacket {
|
||||
val uuid = buffer.readUuid()
|
||||
val action = when (val actionId = buffer.readVarInt()) {
|
||||
BossBarAction.ADD_ID -> {
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.protocol.protocol.game.registry.GameDifficulty
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.registry.GameDifficulty
|
||||
public data class ClientboundChangeDifficultyPacket(val difficulty: GameDifficulty, val locked: Boolean) :
|
||||
MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundChangeDifficultyPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundChangeDifficultyPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundChangeDifficultyPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundChangeDifficultyPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundChangeDifficultyPacket {
|
||||
val difficulty = GameDifficulty.fromID(buffer.readByte())
|
||||
val locked = buffer.readBoolean()
|
||||
return ClientboundChangeDifficultyPacket(difficulty, locked)
|
||||
|
||||
+3
-3
@@ -7,15 +7,15 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public data class ClientboundChunkBatchFinishedPacket(val batchSize: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundChunkBatchFinishedPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchFinishedPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundChunkBatchFinishedPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchFinishedPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundChunkBatchFinishedPacket {
|
||||
return ClientboundChunkBatchFinishedPacket(buffer.readVarInt())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,12 +7,12 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ClientboundChunkBatchStartPacket : MinecraftPacket,
|
||||
PacketCodec<ClientboundChunkBatchStartPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchStartPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundChunkBatchStartPacket = ClientboundChunkBatchStartPacket
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchStartPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundChunkBatchStartPacket = ClientboundChunkBatchStartPacket
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.chunk.ChunkBiomeData
|
||||
|
||||
public data class ClientboundChunksBiomesPacket(val chunkBiomes: List<ChunkBiomeData>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundChunksBiomesPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundChunksBiomesPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundChunksBiomesPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundChunksBiomesPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundChunksBiomesPacket {
|
||||
val chunkCount = buffer.readVarInt()
|
||||
val chunks = ArrayList<ChunkBiomeData>(chunkCount)
|
||||
repeat(chunkCount) { chunks.add(ChunkBiomeData.decode(buffer)) }
|
||||
|
||||
+3
-3
@@ -7,14 +7,14 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data class ClientboundClearTitlesPacket(val reset: Boolean) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundClearTitlesPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundClearTitlesPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundClearTitlesPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundClearTitlesPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundClearTitlesPacket {
|
||||
return ClientboundClearTitlesPacket(buffer.readBoolean())
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -13,7 +13,7 @@ import cn.rtast.libmc.primitives.readMcString
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundCommandSuggestionsPacket(
|
||||
val id: Int,
|
||||
@@ -23,8 +23,8 @@ public data class ClientboundCommandSuggestionsPacket(
|
||||
) : MinecraftPacket {
|
||||
public data class CommandSuggestionMatch(val match: String, val tooltip: TextComponent?) {
|
||||
internal companion object Codec : PacketCodec<CommandSuggestionMatch> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: CommandSuggestionMatch) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): CommandSuggestionMatch {
|
||||
override fun encode(buffer: BytesBuffer, value: CommandSuggestionMatch) {}
|
||||
override fun decode(buffer: BytesBuffer): CommandSuggestionMatch {
|
||||
val match = buffer.readMcString()
|
||||
val hasTooltip = buffer.readBoolean()
|
||||
val tooltip = if (hasTooltip) buffer.readTextComponent() else null
|
||||
@@ -34,8 +34,8 @@ public data class ClientboundCommandSuggestionsPacket(
|
||||
}
|
||||
|
||||
internal companion object Codec : PacketCodec<ClientboundCommandSuggestionsPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCommandSuggestionsPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCommandSuggestionsPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCommandSuggestionsPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCommandSuggestionsPacket {
|
||||
val id = buffer.readVarInt()
|
||||
val start = buffer.readVarInt()
|
||||
val length = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -12,12 +12,12 @@ import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readPrefixed
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.protocol.protocol.game.command.CommandNode
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundCommandsPacket(val nodes: List<CommandNode>, val rootIndex: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundCommandsPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCommandsPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCommandsPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCommandsPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCommandsPacket {
|
||||
val nodes = buffer.readPrefixed { CommandNode.decode(buffer) }
|
||||
val rootIndex = buffer.readVarInt()
|
||||
return ClientboundCommandsPacket(nodes, rootIndex)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -18,8 +18,8 @@ import cn.rtast.libmc.primitives.readVarInt
|
||||
*/
|
||||
public data class ClientboundContainerClosePacket(val windowId: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundContainerClosePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundContainerClosePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundContainerClosePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundContainerClosePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundContainerClosePacket {
|
||||
return ClientboundContainerClosePacket(buffer.readVarInt())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -21,8 +21,8 @@ public data class ClientboundContainerSetDataPacket(
|
||||
val value: Short,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundContainerSetDataPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundContainerSetDataPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundContainerSetDataPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundContainerSetDataPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundContainerSetDataPacket {
|
||||
val windowId = buffer.readVarInt()
|
||||
val property = buffer.readShort()
|
||||
val value = buffer.readShort()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -22,8 +22,8 @@ public data class ClientboundCooldownPacket(
|
||||
val ticks: Int,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundCooldownPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCooldownPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCooldownPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCooldownPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCooldownPacket {
|
||||
val group = buffer.readIdentifier()
|
||||
val ticks = buffer.readVarInt()
|
||||
return ClientboundCooldownPacket(group, ticks)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readPrefixedStringArray
|
||||
@@ -17,8 +17,8 @@ import cn.rtast.libmc.protocol.protocol.game.chat.ChatAction
|
||||
public data class ClientboundCustomChatCompletionsPacket(val action: ChatAction, val entries: List<String>) :
|
||||
MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundCustomChatCompletionsPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomChatCompletionsPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundCustomChatCompletionsPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundCustomChatCompletionsPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundCustomChatCompletionsPacket {
|
||||
val action = ChatAction.fromID(buffer.readVarInt())
|
||||
val entries = buffer.readPrefixedStringArray()
|
||||
return ClientboundCustomChatCompletionsPacket(action, entries)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -22,8 +22,8 @@ public data class ClientboundDamageEventPacket(
|
||||
val position: Vec3d?,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundDamageEventPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundDamageEventPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundDamageEventPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundDamageEventPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundDamageEventPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val sourceTypeId = buffer.readVarInt()
|
||||
val rawCauseId = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readOptional
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public data class ClientboundDeleteChatPacket(val messageId: Int, val signature: ByteArray?) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundDeleteChatPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundDeleteChatPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundDeleteChatPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundDeleteChatPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundDeleteChatPacket {
|
||||
val messageId = buffer.readVarInt()
|
||||
val signature = buffer.readOptional { buffer.readBytes(256) }
|
||||
return ClientboundDeleteChatPacket(messageId, signature)
|
||||
|
||||
+3
-3
@@ -7,13 +7,13 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ClientboundDelimiterPacket : MinecraftPacket, PacketCodec<ClientboundDelimiterPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundDelimiterPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundDelimiterPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundDelimiterPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundDelimiterPacket {
|
||||
return ClientboundDelimiterPacket
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundDisconnectPlayPacket(val reason: TextComponent) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundDisconnectPlayPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisconnectPlayPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundDisconnectPlayPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundDisconnectPlayPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundDisconnectPlayPacket {
|
||||
return ClientboundDisconnectPlayPacket(reason = buffer.readTextComponent())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -16,7 +16,7 @@ import cn.rtast.libmc.protocol.protocol.game.chat.InlineChatType
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readInlineChatType
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundDisguisedChatMessagePacket(
|
||||
val message: TextComponent,
|
||||
@@ -25,8 +25,8 @@ public data class ClientboundDisguisedChatMessagePacket(
|
||||
val targetName: TextComponent?,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundDisguisedChatMessagePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisguisedChatMessagePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundDisguisedChatMessagePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundDisguisedChatMessagePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundDisguisedChatMessagePacket {
|
||||
val message = buffer.readTextComponent()
|
||||
val chatType = buffer.readIdOrX { readInlineChatType() }
|
||||
val senderName = buffer.readTextComponent()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -19,8 +19,8 @@ import cn.rtast.libmc.protocol.protocol.game.Animations
|
||||
public data class ClientboundEntityAnimationPacket(val entityId: Int, val animation: Animations) :
|
||||
MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundEntityAnimationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntityAnimationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundEntityAnimationPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundEntityAnimationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundEntityAnimationPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val animation = Animations.fromID(buffer.readByte())
|
||||
return ClientboundEntityAnimationPacket(entityId, animation)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -26,8 +26,8 @@ public data class ClientboundEntityEffectPacket(
|
||||
public val duration: Duration get() = if (durationTicks == -1) Duration.INFINITE else durationTicks.ticks
|
||||
|
||||
internal companion object Codec : PacketCodec<ClientboundEntityEffectPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntityEffectPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundEntityEffectPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundEntityEffectPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundEntityEffectPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val effectId = buffer.readVarInt()
|
||||
val amplifier = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
|
||||
@@ -20,8 +20,8 @@ public data class ClientboundEntityEventPacket(
|
||||
val status: Byte,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundEntityEventPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntityEventPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundEntityEventPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundEntityEventPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundEntityEventPacket {
|
||||
val entityId = buffer.readInt()
|
||||
val status = buffer.readByte()
|
||||
return ClientboundEntityEventPacket(entityId, status)
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.IdOrX
|
||||
import cn.rtast.libmc.primitives.readIdOrX
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.protocol.protocol.game.sound.SoundCategory
|
||||
import cn.rtast.libmc.protocol.protocol.game.sound.SoundEvent
|
||||
import cn.rtast.libmc.protocol.protocol.game.sound.readSoundEvent
|
||||
@@ -26,8 +26,8 @@ public data class ClientboundEntitySoundEffectPacket(
|
||||
val seed: Long,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundEntitySoundEffectPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntitySoundEffectPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundEntitySoundEffectPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundEntitySoundEffectPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundEntitySoundEffectPacket {
|
||||
val soundEvent = buffer.readIdOrX { readSoundEvent() }
|
||||
val category = SoundCategory.fromID(buffer.readVarInt())
|
||||
val entityId = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
|
||||
@@ -16,8 +16,8 @@ import cn.rtast.libmc.packet.MinecraftPacket
|
||||
*/
|
||||
public data class ClientboundGameEventPacket(val event: UByte, val value: Float) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundGameEventPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundGameEventPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundGameEventPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundGameEventPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundGameEventPacket {
|
||||
val event = buffer.readUByte()
|
||||
val value = buffer.readFloat()
|
||||
return ClientboundGameEventPacket(event, value)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.gamerule.readGameRule
|
||||
|
||||
public data class ClientboundGameRuleValuesPacket(val rules: List<GameRuleEntry>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundGameRuleValuesPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundGameRuleValuesPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundGameRuleValuesPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundGameRuleValuesPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundGameRuleValuesPacket {
|
||||
val count = buffer.readVarInt()
|
||||
val rules = ArrayList<GameRuleEntry>(count)
|
||||
repeat(count) { rules.add(buffer.readGameRule()) }
|
||||
|
||||
+3
-3
@@ -7,15 +7,15 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public data class ClientboundHurtAnimationPacket(val entityId: Int, val yaw: Float) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundHurtAnimationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundHurtAnimationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundHurtAnimationPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundHurtAnimationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundHurtAnimationPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val yaw = buffer.readFloat()
|
||||
return ClientboundHurtAnimationPacket(entityId, yaw)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -24,8 +24,8 @@ public data class ClientboundInitializeWorldBorderPacket(
|
||||
val warningTime: Int,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundInitializeWorldBorderPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundInitializeWorldBorderPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundInitializeWorldBorderPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundInitializeWorldBorderPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundInitializeWorldBorderPacket {
|
||||
val centerX = buffer.readDouble()
|
||||
val centerZ = buffer.readDouble()
|
||||
val oldDiameter = buffer.readDouble()
|
||||
|
||||
+3
-3
@@ -7,14 +7,14 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data class ClientboundKeepAlivePlayPacket(val id: Long) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundKeepAlivePlayPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundKeepAlivePlayPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundKeepAlivePlayPacket =
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundKeepAlivePlayPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundKeepAlivePlayPacket =
|
||||
ClientboundKeepAlivePlayPacket(buffer.readLong())
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.protocol.protocol.game.block.BlockPos
|
||||
@@ -23,8 +23,8 @@ public data class ClientboundLevelEventPacket(
|
||||
val disableRelativeVolume: Boolean,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundLevelEventPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundLevelEventPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundLevelEventPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundLevelEventPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundLevelEventPacket {
|
||||
val eventId = buffer.readInt()
|
||||
val location = buffer.readBlockPos()
|
||||
val data = buffer.readInt()
|
||||
|
||||
+3
-3
@@ -7,14 +7,14 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
|
||||
public data class ClientboundLinkEntitiesPacket(val attachedEntityId: Int, val holdingEntityId: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundLinkEntitiesPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundLinkEntitiesPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundLinkEntitiesPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundLinkEntitiesPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundLinkEntitiesPacket {
|
||||
val attachedEntityId = buffer.readInt()
|
||||
val holdingEntityId = buffer.readInt()
|
||||
return ClientboundLinkEntitiesPacket(attachedEntityId, holdingEntityId)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -43,8 +43,8 @@ public data class ClientboundLoginPlayPacket(
|
||||
val enforceSecureChat: Boolean,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundLoginPlayPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundLoginPlayPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundLoginPlayPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundLoginPlayPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundLoginPlayPacket {
|
||||
val entityId = buffer.readInt()
|
||||
val isHardcore = buffer.readBoolean()
|
||||
val dimensionNamesCount = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -7,13 +7,13 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ClientboundLowDiskSpaceWarningPacket : MinecraftPacket,
|
||||
PacketCodec<ClientboundLowDiskSpaceWarningPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundLowDiskSpaceWarningPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundLowDiskSpaceWarningPacket =
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundLowDiskSpaceWarningPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundLowDiskSpaceWarningPacket =
|
||||
ClientboundLowDiskSpaceWarningPacket
|
||||
}
|
||||
+3
-3
@@ -17,7 +17,7 @@ import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.item.MapItemColorPatch
|
||||
import cn.rtast.libmc.protocol.protocol.game.item.MapItemIcon
|
||||
import cn.rtast.libmc.protocol.protocol.game.item.MapItemIconType
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundMapItemDataPacket(
|
||||
val mapId: Int,
|
||||
@@ -27,8 +27,8 @@ public data class ClientboundMapItemDataPacket(
|
||||
val colorPatch: MapItemColorPatch?,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundMapItemDataPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundMapItemDataPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundMapItemDataPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundMapItemDataPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundMapItemDataPacket {
|
||||
val mapId = buffer.readVarInt()
|
||||
val scale = buffer.readByte()
|
||||
val locked = buffer.readBoolean()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -17,8 +17,8 @@ import cn.rtast.libmc.protocol.protocol.game.entity.readMinecartStep
|
||||
public data class ClientboundMoveMinecartAlongTrackPacket(val entityId: Int, val steps: List<MinecartStep>) :
|
||||
MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundMoveMinecartAlongTrackPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundMoveMinecartAlongTrackPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundMoveMinecartAlongTrackPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundMoveMinecartAlongTrackPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundMoveMinecartAlongTrackPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val stepCount = buffer.readVarInt()
|
||||
val steps = ArrayList<MinecartStep>()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.protocol.protocol.game.math.Vec3d
|
||||
@@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.math.readVec3d
|
||||
public data class ClientboundMoveVehiclePacket(val position: Vec3d, val yaw: Float, val pitch: Float) :
|
||||
MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundMoveVehiclePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundMoveVehiclePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundMoveVehiclePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundMoveVehiclePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundMoveVehiclePacket {
|
||||
val position = buffer.readVec3d()!!
|
||||
val yaw = buffer.readFloat()
|
||||
val pitch = buffer.readFloat()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.player.Hand
|
||||
|
||||
public data class ClientboundOpenBookPacket(val hand: Hand) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundOpenBookPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenBookPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundOpenBookPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundOpenBookPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundOpenBookPacket {
|
||||
return ClientboundOpenBookPacket(Hand.fromID(buffer.readVarInt()))
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -18,8 +18,8 @@ public data class ClientboundOpenHorseScreenPacket(
|
||||
val entityId: Int,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundOpenHorseScreenPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenHorseScreenPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundOpenHorseScreenPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundOpenHorseScreenPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundOpenHorseScreenPacket {
|
||||
val windowId = buffer.readVarInt()
|
||||
val columnsCount = buffer.readVarInt()
|
||||
val entityId = buffer.readInt()
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundOpenScreenPacket(
|
||||
val windowId: Int,
|
||||
@@ -20,8 +20,8 @@ public data class ClientboundOpenScreenPacket(
|
||||
val title: TextComponent,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundOpenScreenPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenScreenPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundOpenScreenPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundOpenScreenPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundOpenScreenPacket {
|
||||
val windowId = buffer.readVarInt()
|
||||
val windowType = buffer.readVarInt()
|
||||
val title = buffer.readTextComponent()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.protocol.protocol.game.block.BlockPos
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.block.readBlockPos
|
||||
|
||||
public data class ClientboundOpenSignEditorPacket(val location: BlockPos, val isFrontText: Boolean) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundOpenSignEditorPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenSignEditorPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundOpenSignEditorPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundOpenSignEditorPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundOpenSignEditorPacket {
|
||||
val location = buffer.readBlockPos()
|
||||
val isFrontText = buffer.readBoolean()
|
||||
return ClientboundOpenSignEditorPacket(location, isFrontText)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -21,8 +21,8 @@ public data class ClientboundPickupItemPacket(
|
||||
val itemCount: Int,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPickupItemPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPickupItemPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPickupItemPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPickupItemPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPickupItemPacket {
|
||||
val collectedEntityId = buffer.readVarInt()
|
||||
val collectorEntityId = buffer.readVarInt()
|
||||
val itemCount = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -7,14 +7,14 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data class ClientboundPingPacket(val id: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPingPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPingPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPingPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPingPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPingPacket {
|
||||
return ClientboundPingPacket(id = buffer.readInt())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.protocol.protocol.game.player.PlayerAbilities
|
||||
@@ -18,8 +18,8 @@ public data class ClientboundPlayerAbilitiesPacket(
|
||||
val fovModifier: Float,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerAbilitiesPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerAbilitiesPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerAbilitiesPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerAbilitiesPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerAbilitiesPacket {
|
||||
val flag = PlayerAbilities.fromByte(buffer.readByte())
|
||||
val flyingSpeed = buffer.readFloat()
|
||||
val fovModifier = buffer.readFloat()
|
||||
|
||||
+5
-5
@@ -14,7 +14,7 @@ import cn.rtast.libmc.primitives.readUuid
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
/**
|
||||
@@ -49,8 +49,8 @@ public data class ClientboundPlayerChatMessagePacket(
|
||||
|
||||
public data class PreviousMessageEntry(val messageId: Int, val signature: ByteArray?) {
|
||||
internal companion object Codec : PacketCodec<PreviousMessageEntry> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: PreviousMessageEntry) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): PreviousMessageEntry {
|
||||
override fun encode(buffer: BytesBuffer, value: PreviousMessageEntry) {}
|
||||
override fun decode(buffer: BytesBuffer): PreviousMessageEntry {
|
||||
val messageId = buffer.readVarInt()
|
||||
val signature = if (messageId == 0) buffer.readBytes(256) else null
|
||||
return PreviousMessageEntry(messageId, signature)
|
||||
@@ -74,8 +74,8 @@ public data class ClientboundPlayerChatMessagePacket(
|
||||
}
|
||||
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerChatMessagePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerChatMessagePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerChatMessagePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerChatMessagePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerChatMessagePacket {
|
||||
val globalIndex = buffer.readVarInt()
|
||||
val sender = buffer.readUuid()
|
||||
val index = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -12,12 +12,12 @@ import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent
|
||||
import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundPlayerCombatDeathPacket(val playerId: Int, val message: TextComponent) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerCombatDeathPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerCombatDeathPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerCombatDeathPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerCombatDeathPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerCombatDeathPacket {
|
||||
val playerId = buffer.readVarInt()
|
||||
val message = buffer.readTextComponent()
|
||||
return ClientboundPlayerCombatDeathPacket(playerId, message)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -16,8 +16,8 @@ import kotlin.time.Duration
|
||||
|
||||
public data class ClientboundPlayerEndCombatPacket(val duration: Duration) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerEndCombatPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerEndCombatPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerEndCombatPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerEndCombatPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerEndCombatPacket {
|
||||
return ClientboundPlayerEndCombatPacket(buffer.readVarInt().ticks) // convert int to minecraft ticks
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,13 +7,13 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
public data object ClientboundPlayerEnterCombatPacket : MinecraftPacket,
|
||||
PacketCodec<ClientboundPlayerEnterCombatPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerEnterCombatPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerEnterCombatPacket =
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerEnterCombatPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerEnterCombatPacket =
|
||||
ClientboundPlayerEnterCombatPacket
|
||||
}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readPrefixed
|
||||
@@ -16,8 +16,8 @@ import kotlin.uuid.Uuid
|
||||
|
||||
public data class ClientboundPlayerInfoRemovePacket(val uuids: List<Uuid>) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerInfoRemovePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoRemovePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerInfoRemovePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoRemovePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerInfoRemovePacket {
|
||||
return ClientboundPlayerInfoRemovePacket(buffer.readPrefixed { readUuid() })
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -15,15 +15,15 @@ import cn.rtast.libmc.protocol.protocol.game.player.action.PlayerInfoUpdateEntry
|
||||
import cn.rtast.libmc.protocol.protocol.game.player.action.PlayerUpdateInfoAction
|
||||
import cn.rtast.libmc.protocol.protocol.game.player.action.SinglePlayerAction
|
||||
import cn.rtast.libmc.protocol.protocol.game.session.GameProfile
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundPlayerInfoUpdatePacket(
|
||||
val actions: Set<PlayerUpdateInfoAction>,
|
||||
val entries: List<PlayerInfoUpdateEntry>,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerInfoUpdatePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoUpdatePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerInfoUpdatePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoUpdatePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerInfoUpdatePacket {
|
||||
val actionsMask = buffer.readUByte().toInt()
|
||||
val actionsSet = PlayerUpdateInfoAction.parseActions(actionsMask)
|
||||
val playerCount = buffer.readVarInt()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
@@ -26,8 +26,8 @@ public data class ClientboundPlayerLookAtPacket(
|
||||
)
|
||||
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerLookAtPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerLookAtPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerLookAtPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerLookAtPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerLookAtPacket {
|
||||
val fromAnchor = AnchorPoint.fromID(buffer.readVarInt())
|
||||
val targetPosition = buffer.readVec3d()!!
|
||||
val isEntity = buffer.readBoolean()
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
|
||||
@@ -18,8 +18,8 @@ public data class ClientboundPlayerRotationPacket(
|
||||
val relativePitch: Boolean,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundPlayerRotationPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerRotationPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerRotationPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundPlayerRotationPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundPlayerRotationPacket {
|
||||
val yaw = buffer.readFloat()
|
||||
val relativeYaw = buffer.readBoolean()
|
||||
val pitch = buffer.readFloat()
|
||||
|
||||
+3
-3
@@ -7,15 +7,15 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public data class ClientboundProjectilePowerPacket(val entityId: Int, val power: Double) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundProjectilePowerPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundProjectilePowerPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundProjectilePowerPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundProjectilePowerPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundProjectilePowerPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val power = buffer.readDouble()
|
||||
return ClientboundProjectilePowerPacket(entityId, power)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readPrefixed
|
||||
@@ -15,8 +15,8 @@ import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public data class ClientboundRemoveEntitiesPacket(val entityIds: List<Int>): MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundRemoveEntitiesPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntitiesPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundRemoveEntitiesPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntitiesPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundRemoveEntitiesPacket {
|
||||
return ClientboundRemoveEntitiesPacket(buffer.readPrefixed { readVarInt() })
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,15 +7,15 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readVarInt
|
||||
|
||||
public data class ClientboundRemoveEntityEffectPacket(val entityId: Int, val effectId: Int) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundRemoveEntityEffectPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntityEffectPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundRemoveEntityEffectPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntityEffectPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundRemoveEntityEffectPacket {
|
||||
val entityId = buffer.readVarInt()
|
||||
val effectId = buffer.readVarInt()
|
||||
return ClientboundRemoveEntityEffectPacket(entityId, effectId)
|
||||
|
||||
+3
-3
@@ -12,12 +12,12 @@ import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.primitives.readMcString
|
||||
import cn.rtast.libmc.primitives.readOptional
|
||||
import cn.rtast.libmc.primitives.readPrefixed
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
|
||||
public data class ClientboundResetScorePacket(val entityName: String, val objectiveName: String?) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundResetScorePacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundResetScorePacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundResetScorePacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundResetScorePacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundResetScorePacket {
|
||||
val entityName = buffer.readMcString()
|
||||
val objectiveName = buffer.readPrefixed { readOptional { readMcString() } }.first() // ?
|
||||
return ClientboundResetScorePacket(entityName, objectiveName)
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
|
||||
package cn.rtast.libmc.protocol.packet.play.clientbound
|
||||
|
||||
import cn.rtast.libmc.stream.BytesBuffer
|
||||
import cn.rtast.libmc.network.BytesBuffer
|
||||
import cn.rtast.libmc.packet.PacketCodec
|
||||
import cn.rtast.libmc.packet.MinecraftPacket
|
||||
import cn.rtast.libmc.primitives.readOptional
|
||||
@@ -35,8 +35,8 @@ public data class ClientboundRespawnPacket(
|
||||
val dataKept: RespawnDataToKeep,
|
||||
) : MinecraftPacket {
|
||||
internal companion object Codec : PacketCodec<ClientboundRespawnPacket> {
|
||||
override suspend fun encode(buffer: BytesBuffer, value: ClientboundRespawnPacket) {}
|
||||
override suspend fun decode(buffer: BytesBuffer): ClientboundRespawnPacket {
|
||||
override fun encode(buffer: BytesBuffer, value: ClientboundRespawnPacket) {}
|
||||
override fun decode(buffer: BytesBuffer): ClientboundRespawnPacket {
|
||||
val dimensionType = buffer.readVarInt()
|
||||
val dimensionName = buffer.readIdentifier()
|
||||
val hashedSeed = buffer.readLong()
|
||||
|
||||
Loaded 100 of 318 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in New Issue
Block a user