diff --git a/.editorconfig b/.editorconfig index ab7e7f3..02bef7d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,7 +6,6 @@ charset = utf-8 end_of_line = lf indent_style = space indent_size = 4 -continuation_indent_size = 4 insert_final_newline = false trim_trailing_whitespace = true max_line_length = off @@ -16,9 +15,9 @@ max_line_length = off ij_kotlin_allow_trailing_comma = true ij_kotlin_allow_trailing_comma_on_call_site = true ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^ +ij_java_names_count_to_use_import_on_demand = 3 ij_kotlin_packages_to_use_import_on_demand = java.util.* #Ktlint ktlint_standard_no-wildcard-imports = disabled ktlint_standard_package-name = disabled -ktlint_code_style = official -ktlint_ignore_back_ticked_identifier = false \ No newline at end of file +ktlint_ignore_back_ticked_identifier = false diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 9dadf4e..33b7f83 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -6,6 +6,7 @@ on: permissions: contents: read + checks: write jobs: build: @@ -23,6 +24,13 @@ jobs: - name: Test with Gradle run: ./gradlew test + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + if: success() || failure() # always run even if the previous step fails + with: + report_paths: '**/build/test-results/test/TEST-*.xml' + detailed_summary: true + - name: Build with Gradle run: ./gradlew build diff --git a/.github/workflows/kdocs.yml b/.github/workflows/kdocs.yml index b13d9f3..1aafa8e 100644 --- a/.github/workflows/kdocs.yml +++ b/.github/workflows/kdocs.yml @@ -29,7 +29,7 @@ jobs: distribution: 'temurin' - name: Build with Gradle and Dokka - run: ./gradlew dokkaHtml + run: ./gradlew dokkaHtmlMultiModule - name: Upload artifact uses: actions/upload-pages-artifact@v1 diff --git a/build.gradle.kts b/build.gradle.kts index dcc7e95..33f80e9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,45 +1,25 @@ plugins { kotlin("jvm") version "1.8.20" - id("org.jetbrains.dokka") version "1.8.10" - `maven-publish` + id("org.jetbrains.dokka") version "1.8.20" } -group = "io.layercraft.connector" -version = properties["version"] as String - -repositories { - mavenCentral() -} - -dependencies { - testImplementation(kotlin("reflect")) - testImplementation(kotlin("test")) - testImplementation(kotlin("test-junit5")) - testImplementation("org.junit.jupiter:junit-jupiter:5.9.0") -} - -tasks.test { - useJUnitPlatform() +allprojects { + repositories { + mavenCentral() + } } -kotlin { - jvmToolchain(17) -} +group = "io.layercraft.connector" +version = properties["version"] as String -publishing { - repositories { - maven { - name = "repo" - url = uri("https://maven.pkg.github.com/Layercraft/PacketLib") - credentials { - username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") - } - } +subprojects { + apply { + plugin("org.jetbrains.kotlin.jvm") + plugin("org.jetbrains.dokka") } - publications { - register("gpr") { - from(components["java"]) - } + + val dokkaPlugin by configurations + dependencies { + dokkaPlugin("org.jetbrains.dokka:versioning-plugin:1.8.20") } } \ No newline at end of file diff --git a/generator/build.gradle.kts b/generator/build.gradle.kts index 761b0df..d5178c1 100644 --- a/generator/build.gradle.kts +++ b/generator/build.gradle.kts @@ -1,19 +1,19 @@ plugins { - kotlin("jvm") version "1.8.20" kotlin("plugin.serialization") version "1.8.21" } group = "io.layercraft" version = "1.0.0" -repositories { - mavenCentral() -} - dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1") implementation("com.squareup:kotlinpoet:1.14.2") + implementation("io.ktor:ktor-client-core:2.3.1") + implementation("io.ktor:ktor-client-java:2.3.1") + + implementation(project(":types")) + testImplementation(platform("org.junit:junit-bom:5.9.1")) testImplementation("org.junit.jupiter:junit-jupiter") } @@ -30,4 +30,9 @@ tasks.register("generateCode") { dependsOn("compileKotlin") mainClass.set("GenerateCodeKt") classpath = sourceSets["main"].runtimeClasspath + args("1.20") + doLast { + println("Generated code in ${project.projectDir}/src/main/kotlin") + this.dependsOn("ktlintFormat") + } } \ No newline at end of file diff --git a/generator/src/main/kotlin/Downloader.kt b/generator/src/main/kotlin/Downloader.kt new file mode 100644 index 0000000..5ae41bf --- /dev/null +++ b/generator/src/main/kotlin/Downloader.kt @@ -0,0 +1,17 @@ + +import io.ktor.client.HttpClient +import io.ktor.client.engine.java.Java +import io.ktor.client.request.get +import io.ktor.client.statement.bodyAsText +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.jsonObject + +object Downloader { + + private val client = HttpClient(Java) + + suspend fun getWikiVgPage(protocolVersions: ProtocolVersion): String = client.get(protocolVersions.wikiVgUrl).bodyAsText() + + suspend fun getProtocolSpec(protocolVersions: ProtocolVersion): JsonObject = client.get(protocolVersions.url).bodyAsText().let { Json.parseToJsonElement(it).jsonObject } +} \ No newline at end of file diff --git a/generator/src/main/kotlin/GenerateCode.kt b/generator/src/main/kotlin/GenerateCode.kt index e0f2756..6a75a0d 100644 --- a/generator/src/main/kotlin/GenerateCode.kt +++ b/generator/src/main/kotlin/GenerateCode.kt @@ -1,3 +1,8 @@ -fun main() { - println("Hello, World!") +fun main(args: Array) { + val versionArg = args.getOrNull(0) ?: error("Missing version argument") + val version = "V${versionArg.uppercase().replace(".", "_")}" + val protocolVersion = ProtocolVersion.values().find { it.name == version } ?: error("Unknown protocol version") + + val generator = PacketsGenerator(protocolVersion) + generator.generate() } \ No newline at end of file diff --git a/generator/src/main/kotlin/PacketsGenerator.kt b/generator/src/main/kotlin/PacketsGenerator.kt new file mode 100644 index 0000000..140e589 --- /dev/null +++ b/generator/src/main/kotlin/PacketsGenerator.kt @@ -0,0 +1,158 @@ + +import com.squareup.kotlinpoet.FileSpec +import com.squareup.kotlinpoet.KModifier +import com.squareup.kotlinpoet.TypeSpec +import fields.FieldsHelper +import fields.GenerationContext +import kotlinx.coroutines.runBlocking +import kotlinx.serialization.json.* + +class PacketsGenerator( + private val protocolVersion: ProtocolVersion, +) { + + private val wikiVgSerializer = WikiVgSerializer(protocolVersion) + + private val packetData: JsonObject = runBlocking { Downloader.getProtocolSpec(protocolVersion) } + + fun generate() { + val packets = getPackets(packetData) + val types = getTypes(packetData).map { it.name } + val registeredTypes = FieldsHelper.register().map { it.key } + val missingTypes = types.filter { !registeredTypes.contains(it) } + + println("Found ${packets.size} packets and ${types.size} types") + println("Missing types: $missingTypes") + if (missingTypes.isNotEmpty()) { + error("Missing types") + } + + for (packet in packets) { + val packagePath = "io.layercraft.packetlib.packets.${protocolVersion.packageVersion}.${packet.state.name.lowercase()}.${packet.direction.name.replace("_", "").lowercase()}" + + val file = FileSpec.builder(packagePath, packet.javaClassName) + val clazz = TypeSpec + .classBuilder(packet.javaClassName) + .addModifiers(KModifier.DATA) + + val ctx = GenerationContext(file, clazz) + + FieldsHelper.generateClass(ctx, packet) + + file.addType(clazz.build()) + file.build().writeTo(System.out) + } + } + + private fun getPackets(jsonObject: JsonObject): List { + val keysList = listOf("handshaking", "status", "login", "play") + + return keysList.flatMap { key -> + val data = key to jsonObject[key]!!.jsonObject + transformPackets(data.first, data.second) + } + } + + private fun getTypes(jsonObject: JsonObject): List { + return jsonObject["types"]!!.jsonObject.map { + PacketType(name = it.key, it.value) + } + } + + private fun transformPackets(state: String, jsonObject: JsonObject): List { + val toClient = jsonObject["toClient"]!!.jsonObject["types"]!!.jsonObject + val toServer = jsonObject["toServer"]!!.jsonObject["types"]!!.jsonObject + + return iterateThrowPackets(state, "toClient", toClient) + iterateThrowPackets(state, "toServer", toServer) + } + + private fun iterateThrowPackets(stateStr: String, directionStr: String, jsonObject: JsonObject): List { + val packetData = getPacketInfoLayer(jsonObject["packet"]!!.jsonArray) + val direction = PacketGeneratorDirection.fromString(directionStr) + val state = PacketGeneratorState.fromString(stateStr) + + val packets = jsonObject.filter { it.key != "packet" }.map { entry -> + val name = entry.key + val packet = entry.value.jsonArray[1].jsonArray + val packetInfoLayer = packetData.first { it.className == name } + + val id = packetInfoLayer.id.replaceFirst("0x", "").toInt(16) + + val wikiVgData = wikiVgSerializer.get(packetInfoLayer.id, state, direction) + + PacketData( + id = id, + direction = direction, + state = state, + fields = packet, + wikiVgData = wikiVgData, + name = packetInfoLayer.name, + className = packetInfoLayer.className, + ) + } + + return packets + } + + private fun getPacketInfoLayer(packetData: JsonArray): List { + val second = packetData[1].jsonArray + val ids = second[0].jsonObject["type"]!!.jsonArray[1].jsonObject["mappings"]!!.jsonObject + val names = second[1].jsonObject["type"]!!.jsonArray[1].jsonObject["fields"]!!.jsonObject + + return ids.map { (id, value) -> + val name = value.jsonPrimitive.content + val className = names[name]!!.jsonPrimitive.content + + PacketInfoLayer(id, name, className) + } + } +} + +data class PacketInfoLayer( + val id: String, + val name: String, + val className: String, // same as name but with packet_ prefix +) + +data class PacketData( + val id: Int, + val idString: String = "0x${id.toString(16)}", + val direction: PacketGeneratorDirection, + val name: String, + val className: String, // same as name but with packet_ prefix + val javaClassName: String = name.replace("_", "").replaceFirstChar { it.titlecase() }.replace(" ", "") + "Packet", + val state: PacketGeneratorState, + val fields: JsonArray, // Allways inside a ["container", [$fields] ] + val wikiVgData: WikiVgData, +) + +enum class PacketGeneratorDirection( + val direction: String, +) { + CLIENT_BOUND("toClient"), + SERVER_BOUND("toServer"), + ; + + companion object { + fun fromString(direction: String): PacketGeneratorDirection { + return values().first { it.direction == direction } + } + } +} + +enum class PacketGeneratorState( + val state: String, +) { + HANDSHAKING("handshaking"), STATUS("status"), LOGIN("login"), PLAY("play"); + + companion object { + fun fromString(state: String): PacketGeneratorState { + return values().first { it.state == state } + } + } +} + +data class PacketType( + val name: String, + val data: JsonElement, +) \ No newline at end of file diff --git a/generator/src/main/kotlin/ProtocolVersions.kt b/generator/src/main/kotlin/ProtocolVersion.kt similarity index 82% rename from generator/src/main/kotlin/ProtocolVersions.kt rename to generator/src/main/kotlin/ProtocolVersion.kt index 9b8dc54..dc8de04 100644 --- a/generator/src/main/kotlin/ProtocolVersions.kt +++ b/generator/src/main/kotlin/ProtocolVersion.kt @@ -1,6 +1,7 @@ -enum class ProtocolVersions(val url: String, val versionId: String) { - // V1_20("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.20/protocol.json", "18067"), - V1_19_3("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.19.3/protocol.json", "18071"), +enum class ProtocolVersion(val url: String, wikiVgVersionId: String) { + V1_20("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.20/protocol.json", "18271"), + V1_19_4("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.19.4/protocol.json", "18242"), + V1_19_3("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.19.3/protocol.json", "18067"), V1_19_2("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.19.2/protocol.json", "17873"), V1_19_1("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.19.1/protocol.json", "17873"), V1_19("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.19/protocol.json", "17753"), @@ -18,10 +19,10 @@ enum class ProtocolVersions(val url: String, val versionId: String) { V1_15_2("https://raw.githubusercontent.com/Layercraft/minecraft-data/master/data/pc/1.15.2/protocol.json", "16067"), ; - val wikiVgUrl = "https://wiki.vg/index.php?title=Protocol&oldid=$versionId" + val wikiVgUrl = "https://wiki.vg/index.php?title=Protocol&oldid=$wikiVgVersionId" val packageVersion = name.lowercase() companion object { - fun latest() = V1_19_3 + fun latest() = V1_20 } } \ No newline at end of file diff --git a/generator/src/main/kotlin/WikiVgSerializer.kt b/generator/src/main/kotlin/WikiVgSerializer.kt new file mode 100644 index 0000000..5c60fd9 --- /dev/null +++ b/generator/src/main/kotlin/WikiVgSerializer.kt @@ -0,0 +1,44 @@ +import kotlinx.coroutines.runBlocking +import java.util.* +import java.util.regex.Pattern + +class WikiVgSerializer( + private val protocolVersion: ProtocolVersion, +) { + + private val wikiVgData: String = runBlocking { + Downloader.getWikiVgPage(protocolVersion) + } + + private val bodyText = run { + val bodyTextPattern = Pattern.compile("(.*?)", Pattern.DOTALL) + val bodyTextMatcher = bodyTextPattern.matcher(wikiVgData) + bodyTextMatcher.find() + bodyTextMatcher.group(1) + } + + fun get(packetId: String, state: PacketGeneratorState, direction: PacketGeneratorDirection): WikiVgData { + val directionConverted = if (direction == PacketGeneratorDirection.CLIENT_BOUND) "Client" else "Server" + val stateCapitalized = state.state.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } + val packetIdFormatted = "0x" + packetId.split("x")[1].uppercase(Locale.getDefault()) + val regex = "$packetIdFormatted\\n\\n$stateCapitalized\\n\\n$directionConverted\\n" + val result = bodyText.split(regex.toRegex(), 0)[0].split("

").last() + + val idRegex = "" + val matcher = Pattern.compile(idRegex).matcher(result) + matcher.find() + val id = matcher.group(1) + + val nameRegex = "" + val name = result.split(nameRegex.toRegex(), 0)[1].split("")[0] + + return WikiVgData(protocolVersion, id, name) + } +} + +data class WikiVgData( + val protocolVersion: ProtocolVersion, + val id: String, + val name: String, + val url: String = protocolVersion.wikiVgUrl + "#$id", +) \ No newline at end of file diff --git a/generator/src/main/kotlin/fields/BasicField.kt b/generator/src/main/kotlin/fields/BasicField.kt new file mode 100644 index 0000000..bbd8842 --- /dev/null +++ b/generator/src/main/kotlin/fields/BasicField.kt @@ -0,0 +1,43 @@ +package fields + +import com.squareup.kotlinpoet.ParameterSpec +import com.squareup.kotlinpoet.asTypeName +import kotlin.reflect.KClass + +abstract class BasicField( + private val clazz: KClass<*>, + private val serialize: String, + private val deserialize: String, + private val classVarListComment: String = "", + private val optional: Boolean = false, +) : Field { + + override fun addClassFields(fieldInfo: FieldInfo): List { + val type = clazz.asTypeName().copy(nullable = optional) + return listOf(ParameterSpec.builder(fieldInfo.varName, type).build()) + } + + override fun addClassSerialize(fieldInfo: FieldInfo): List { + return listOf( + "${fieldInfo.serializerVariableName}.${serialize.replace("%s", fieldInfo.varName)}", + ) + } + + override fun addClassDeserialize(fieldInfo: FieldInfo): List { + return listOf( + "${fieldInfo.name} = ${fieldInfo.deserializerVariableName}.${deserialize.replace("%s", fieldInfo.varName)}", + ) + } + + override fun addClassVarList(fieldInfo: FieldInfo): List { + return listOf( + "val ${fieldInfo.name}: ${clazz.simpleName}, // $classVarListComment", + ) + } + + override fun addClassDocs(fieldInfo: FieldInfo): List { + return listOf( + "@param ${fieldInfo.varName} ${fieldInfo.name}", + ) + } +} \ No newline at end of file diff --git a/generator/src/main/kotlin/fields/BasicFields.kt b/generator/src/main/kotlin/fields/BasicFields.kt new file mode 100644 index 0000000..7a585e7 --- /dev/null +++ b/generator/src/main/kotlin/fields/BasicFields.kt @@ -0,0 +1,103 @@ +package fields + +import io.layercraft.packetlib.types.NBT + +object BasicFields { + val VARINT = + @FieldType("varint") + object : BasicField(Int::class, "writeVarInt(%s)", "readVarInt()", "varint") {} + + val OPT_VARINT = + @FieldType("optvarint") + object : BasicField(Int::class, "writeVarInt(%s)", "readVarInt()", "optvarint", optional = true) {} + + val VARLONG = + @FieldType("varlong") + object : BasicField(Long::class, "writeVarLong(%s)", "readVarLong()", "varlong") {} + + val I8 = + @FieldType("i8") + object : BasicField(Byte::class, "writeByte(%s)", "readByte()") {} + + val U8 = + @FieldType("u8") + object : BasicField(UByte::class, "writeUByte(%s)", "readUByte()") {} + + val I16 = + @FieldType("i16") + object : BasicField(Short::class, "writeShort(%s)", "readShort()") {} + + val U16 = + @FieldType("u16") + object : BasicField(UShort::class, "writeUShort(%s)", "readUShort()") {} + + val I32 = + @FieldType("i32") + object : BasicField(Int::class, "writeInt(%s)", "readInt()") {} + + val U32 = + @FieldType("u32") + object : BasicField(UInt::class, "writeUInt(%s)", "readUInt()") {} + + val I64 = + @FieldType("i64") + object : BasicField(Long::class, "writeLong(%s)", "readLong()") {} + + val U64 = + @FieldType("u64") + object : BasicField(ULong::class, "writeULong(%s)", "readULong()") {} + + val F32 = + @FieldType("f32") + object : BasicField(Float::class, "writeFloat(%s)", "readFloat()") {} + + val F64 = + @FieldType("f64") + object : BasicField(Double::class, "writeDouble(%s)", "readDouble()") {} + + val BOOL = + @FieldType("bool") + object : BasicField(Boolean::class, "writeBoolean(%s)", "readBoolean()") {} + + val UUID = + @FieldType("UUID") + object : BasicField(String::class, "writeUUID(%s)", "readUUID()") {} + + val STRING = + @FieldType("string") + object : BasicField(String::class, "writeString(%s)", "readString()") {} + + val PSTRING = + @FieldType("pstring") + object : BasicField(String::class, "writeString(%s)", "readString()") {} + + val REST_BUFFER = + @FieldType("restBuffer") + object : BasicField(ByteArray::class, "writeRemainingByteArray(%s)", "readRemainingByteArray()", "restBuffer") {} + + val NBT = + @FieldType("nbt") + object : BasicField(NBT::class, "writeNBT(%s)", "readNBT()", "nbt") {} + + val ALL: List = listOf( + VARINT, + OPT_VARINT, + VARLONG, + I8, + U8, + I16, + U16, + I32, + U32, + I64, + U64, + F32, + F64, + BOOL, + UUID, + STRING, + PSTRING, + REST_BUFFER, + NBT, + ) +} \ No newline at end of file diff --git a/generator/src/main/kotlin/fields/Field.kt b/generator/src/main/kotlin/fields/Field.kt index 90d5da9..736a6ec 100644 --- a/generator/src/main/kotlin/fields/Field.kt +++ b/generator/src/main/kotlin/fields/Field.kt @@ -1,11 +1,44 @@ package fields -import com.squareup.kotlinpoet.PropertySpec +import PacketData +import com.squareup.kotlinpoet.ParameterSpec +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.jsonPrimitive +import java.util.* +import java.util.regex.Pattern interface Field { - fun addClassFields(): List - fun addClassSerialize(): List - fun addClassDeserialize(): List - fun addClassVarList(): List - fun addClassDocs(): List -} \ No newline at end of file + fun addClassFields(fieldInfo: FieldInfo): List + fun addClassSerialize(fieldInfo: FieldInfo): List + fun addClassDeserialize(fieldInfo: FieldInfo): List + fun addClassVarList(fieldInfo: FieldInfo): List + fun addClassDocs(fieldInfo: FieldInfo): List +} + +data class FieldInfo( + val jsonObject: JsonObject, + val name: String = jsonObject["name"]!!.jsonPrimitive.content, + val typeJson: JsonElement = jsonObject["type"]!!, + val varName: String = camelCase(name), + val packet: PacketData, + val layer: Int = 0, + val optional: Boolean = false, + val serializerVariableName: String = "output", + val deserializerVariableName: String = "input", +) + +fun camelCase(s: String): String { + val p = Pattern.compile("([-_])([a-zA-Z])") + val m = p.matcher(s) + val sb = StringBuilder() + while (m.find()) { + m.appendReplacement(sb, m.group(2).uppercase(Locale.getDefault())) + } + m.appendTail(sb) + val camelCaseStr = sb.toString() + return camelCaseStr[0].lowercaseChar() + camelCaseStr.substring(1) +} + +@Target(AnnotationTarget.CLASS) +annotation class FieldType(val name: String) \ No newline at end of file diff --git a/generator/src/main/kotlin/fields/FieldsHelper.kt b/generator/src/main/kotlin/fields/FieldsHelper.kt new file mode 100644 index 0000000..1cf4649 --- /dev/null +++ b/generator/src/main/kotlin/fields/FieldsHelper.kt @@ -0,0 +1,68 @@ +package fields + +import PacketData +import com.squareup.kotlinpoet.FileSpec +import com.squareup.kotlinpoet.FunSpec +import com.squareup.kotlinpoet.PropertySpec +import com.squareup.kotlinpoet.TypeSpec +import kotlinx.serialization.json.JsonArray +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.jsonObject + +object FieldsHelper { + + private lateinit var fields: Map + + fun register(): Map { + val classes: List = listOf( + TestField, + ) + BasicFields.ALL + + val fieldTypes = classes.associateBy { it::class.java.getAnnotation(FieldType::class.java) ?: error("Field ${it::class.java.name} has no FieldType annotation") } + + fields = fieldTypes.mapKeys { it.key.name } + + return fields + } + + fun get(name: String): Field { + return fields[name] ?: error("Field $name not found") + } + + fun generateClass(ctx: GenerationContext, packetData: PacketData) { + val constructorBuilder = FunSpec.constructorBuilder() + + for (fieldJson in packetData.fields) { + val fieldInfo = generateFieldInfo(packetData, fieldJson.jsonObject) + if (fieldInfo.typeJson is JsonPrimitive) { + val type = fieldInfo.typeJson.content + val field = get(type) + + val classFields = field.addClassFields(fieldInfo) + + classFields.forEach { + constructorBuilder.addParameter(it) + ctx.packetClass.addProperty(PropertySpec.builder(it.name, it.type).initializer(it.name).build()) + } + } else if (fieldInfo.typeJson is JsonArray) { + TODO() + } + } + + val constructor = constructorBuilder.build() + ctx.packetClass.primaryConstructor(constructor) + } + + private fun generateFieldInfo(packetData: PacketData, jsonObject: JsonObject): FieldInfo { + return FieldInfo( + jsonObject = jsonObject, + packet = packetData, + ) + } +} + +data class GenerationContext( + val file: FileSpec.Builder, + val packetClass: TypeSpec.Builder, +) \ No newline at end of file diff --git a/generator/src/main/kotlin/fields/KotlinTypes.kt b/generator/src/main/kotlin/fields/KotlinTypes.kt deleted file mode 100644 index c0d3722..0000000 --- a/generator/src/main/kotlin/fields/KotlinTypes.kt +++ /dev/null @@ -1,10 +0,0 @@ -package fields - -import kotlin.reflect.KClass - -enum class KotlinTypes( - val clazz: KClass<*>, - val optional: Boolean, - val deserializeMethod: String, - val serializeMethod: String, -) : Field \ No newline at end of file diff --git a/generator/src/main/kotlin/fields/TestField.kt b/generator/src/main/kotlin/fields/TestField.kt new file mode 100644 index 0000000..ac0605f --- /dev/null +++ b/generator/src/main/kotlin/fields/TestField.kt @@ -0,0 +1,26 @@ +package fields + +import com.squareup.kotlinpoet.ParameterSpec + +@FieldType("test-field") +object TestField : Field { + override fun addClassFields(fieldInfo: FieldInfo): List { + TODO("Not yet implemented") + } + + override fun addClassSerialize(fieldInfo: FieldInfo): List { + TODO("Not yet implemented") + } + + override fun addClassDeserialize(fieldInfo: FieldInfo): List { + TODO("Not yet implemented") + } + + override fun addClassVarList(fieldInfo: FieldInfo): List { + TODO("Not yet implemented") + } + + override fun addClassDocs(fieldInfo: FieldInfo): List { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/packets/build.gradle.kts b/packets/build.gradle.kts new file mode 100644 index 0000000..8e0313f --- /dev/null +++ b/packets/build.gradle.kts @@ -0,0 +1,40 @@ +plugins { + `maven-publish` +} + +group = "io.layercraft" +version = "1.0.0" + +dependencies { + implementation(project(":types")) + implementation(project(":serialization")) + testImplementation(kotlin("test")) + testImplementation(kotlin("test-junit5")) + testImplementation("org.junit.jupiter:junit-jupiter:5.9.0") +} + +tasks.test { + useJUnitPlatform() +} + +kotlin { + jvmToolchain(17) +} + +publishing { + repositories { + maven { + name = "repo" + url = uri("https://maven.pkg.github.com/Layercraft/PacketLib") + credentials { + username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") + } + } + } + publications { + register("gpr") { + from(components["java"]) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/codec/Codec.kt b/packets/src/main/kotlin/io/layercraft/packetlib/codec/Codec.kt similarity index 100% rename from src/main/kotlin/io/layercraft/packetlib/codec/Codec.kt rename to packets/src/main/kotlin/io/layercraft/packetlib/codec/Codec.kt diff --git a/packets/src/main/kotlin/io/layercraft/packetlib/codec/MinecraftCodecs.kt b/packets/src/main/kotlin/io/layercraft/packetlib/codec/MinecraftCodecs.kt new file mode 100644 index 0000000..cf26164 --- /dev/null +++ b/packets/src/main/kotlin/io/layercraft/packetlib/codec/MinecraftCodecs.kt @@ -0,0 +1,5 @@ +@file:Suppress("DuplicatedCode") + +package io.layercraft.packetlib.codec + +object MinecraftCodecs \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/codec/ProtocolVersion.kt b/packets/src/main/kotlin/io/layercraft/packetlib/codec/ProtocolVersion.kt similarity index 100% rename from src/main/kotlin/io/layercraft/packetlib/codec/ProtocolVersion.kt rename to packets/src/main/kotlin/io/layercraft/packetlib/codec/ProtocolVersion.kt diff --git a/src/test/kotlin/io/layercraft/packetlib/codec/MinecraftCodecsTest.kt b/packets/src/test/kotlin/io/layercraft/packetlib/MinecraftCodecsTest.kt similarity index 75% rename from src/test/kotlin/io/layercraft/packetlib/codec/MinecraftCodecsTest.kt rename to packets/src/test/kotlin/io/layercraft/packetlib/MinecraftCodecsTest.kt index b4b77e7..216f628 100644 --- a/src/test/kotlin/io/layercraft/packetlib/codec/MinecraftCodecsTest.kt +++ b/packets/src/test/kotlin/io/layercraft/packetlib/MinecraftCodecsTest.kt @@ -1,15 +1,12 @@ -package io.layercraft.packetlib.codec - -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test +package io.layercraft.packetlib class MinecraftCodecsTest { - @Test + /*@Test fun `is copy working`() { MinecraftCodecs.V1_19_4.packets.forEach { Assertions.assertIterableEquals(it.value.serverPacketMap.values, MinecraftCodecs.V1_19_3.packets[it.key]?.serverPacketMap?.values) Assertions.assertIterableEquals(it.value.clientPacketMap.values, MinecraftCodecs.V1_19_3.packets[it.key]?.clientPacketMap?.values) } - } + }*/ } \ No newline at end of file diff --git a/src/test/kotlin/io/layercraft/packetlib/PacketIdCheck.kt b/packets/src/test/kotlin/io/layercraft/packetlib/PacketIdCheck.kt similarity index 70% rename from src/test/kotlin/io/layercraft/packetlib/PacketIdCheck.kt rename to packets/src/test/kotlin/io/layercraft/packetlib/PacketIdCheck.kt index 2ea7ebd..fbd3d8c 100644 --- a/src/test/kotlin/io/layercraft/packetlib/PacketIdCheck.kt +++ b/packets/src/test/kotlin/io/layercraft/packetlib/PacketIdCheck.kt @@ -1,22 +1,17 @@ package io.layercraft.packetlib -import io.layercraft.packetlib.codec.Codec -import io.layercraft.packetlib.codec.MinecraftCodecs import org.junit.jupiter.api.TestInstance -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.MethodSource -import kotlin.test.assertTrue @TestInstance(TestInstance.Lifecycle.PER_CLASS) class PacketIdCheck { - @ParameterizedTest + /*@ParameterizedTest @MethodSource("generator") fun `check if all packets have the right name`(codec: Codec) { checkCodec(codec) } - private fun generator() = arrayOf(MinecraftCodecs.V1_19_3, MinecraftCodecs.V1_19_4) + private fun generator() = emptyArray() //arrayOf(MinecraftCodecs.V1_19_3, MinecraftCodecs.V1_19_4) private fun checkCodec(codec: Codec) { codec.packets.forEach { (state, registry) -> @@ -30,5 +25,5 @@ class PacketIdCheck { assertTrue { qualifiedName.contains(state.name, ignoreCase = true) } } } - } + }*/ } \ No newline at end of file diff --git a/src/test/kotlin/io/layercraft/packetlib/SerializationTest.kt b/packets/src/test/kotlin/io/layercraft/packetlib/SerializationTest.kt similarity index 88% rename from src/test/kotlin/io/layercraft/packetlib/SerializationTest.kt rename to packets/src/test/kotlin/io/layercraft/packetlib/SerializationTest.kt index 19870b4..bd40811 100644 --- a/src/test/kotlin/io/layercraft/packetlib/SerializationTest.kt +++ b/packets/src/test/kotlin/io/layercraft/packetlib/SerializationTest.kt @@ -1,15 +1,7 @@ -package io.layercraft.packetlib - -import io.layercraft.packetlib.codec.ProtocolVersion -import io.layercraft.packetlib.packets.v1_19_3.handshaking.serverbound.SetProtocolPacket -import io.layercraft.packetlib.packets.v1_19_3.login.clientbound.EncryptionBeginPacket -import io.layercraft.packetlib.packets.v1_19_3.login.serverbound.LoginStartPacket -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test -import java.util.* +package io.layercraft.packetlib.io.layercraft.packetlib internal class SerializationTest { - @Test + /*@Test fun `test normal serialization`() { val packet = SetProtocolPacket(ProtocolVersion.V1_19_3.protocolNumber, "localhost", (25565).toUShort(), 1) @@ -96,5 +88,5 @@ internal class SerializationTest { Assertions.assertEquals(packet.username, decoded.username) Assertions.assertEquals(packet.hasPlayerUUID, decoded.hasPlayerUUID) Assertions.assertEquals(packet.playerUUID, decoded.playerUUID) - } + }*/ } \ No newline at end of file diff --git a/serialization/build.gradle.kts b/serialization/build.gradle.kts new file mode 100644 index 0000000..ba57515 --- /dev/null +++ b/serialization/build.gradle.kts @@ -0,0 +1,17 @@ +group = "io.layercraft" +version = "1.0.0" + +dependencies { + implementation(project(":types")) + testImplementation(kotlin("test")) + testImplementation(kotlin("test-junit5")) + testImplementation("org.junit.jupiter:junit-jupiter:5.9.0") +} + +tasks.test { + useJUnitPlatform() +} + +kotlin { + jvmToolchain(17) +} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/Packet.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/packets/Packet.kt similarity index 87% rename from src/main/kotlin/io/layercraft/packetlib/packets/Packet.kt rename to serialization/src/main/kotlin/io/layercraft/packetlib/packets/Packet.kt index 903a190..004fe02 100644 --- a/src/main/kotlin/io/layercraft/packetlib/packets/Packet.kt +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/packets/Packet.kt @@ -3,6 +3,8 @@ package io.layercraft.packetlib.packets import io.layercraft.packetlib.serialization.MCProtocolDeserializer import io.layercraft.packetlib.serialization.MCProtocolSerializer +const val MAX_PACKET_SIZE: Int = 2097151 // 3 bytes varint + interface Packet interface ServerBoundPacket : Packet interface ClientBoundPacket : Packet diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/packets/PacketPart.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/packets/PacketPart.kt new file mode 100644 index 0000000..376ba3e --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/packets/PacketPart.kt @@ -0,0 +1,12 @@ +package io.layercraft.packetlib.packets + +import io.layercraft.packetlib.serialization.MCProtocolDeserializer +import io.layercraft.packetlib.serialization.MCProtocolSerializer + +interface PacketPart + +interface PacketPartSerializer where T : PacketPart { + fun deserialize(input: MCProtocolDeserializer<*>): T + + fun serialize(output: MCProtocolSerializer<*>, value: T) +} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolDeserializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolDeserializer.kt similarity index 70% rename from src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolDeserializer.kt rename to serialization/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolDeserializer.kt index 125a7ca..397632b 100644 --- a/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolDeserializer.kt +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolDeserializer.kt @@ -1,6 +1,9 @@ package io.layercraft.packetlib.serialization -import io.layercraft.packetlib.types.* +import io.layercraft.packetlib.serialization.types.* +import io.layercraft.packetlib.types.ChunkBlockEntity +import io.layercraft.packetlib.types.NBT +import io.layercraft.packetlib.types.Position import java.util.* /** @@ -16,23 +19,25 @@ interface MCProtocolDeserializer { val remaining: Int fun readByte(): Byte - fun readBytes(): ByteArray + fun readBytes(): ByteArray = readBytes(remaining) fun readBytes(n: Int): ByteArray - fun readBoolean(): Boolean + fun readBoolean(): Boolean = readByte() != 0.toByte() fun readInt(): Int fun readLong(): Long fun readShort(): Short fun readFloat(): Float fun readDouble(): Double - fun readUByte(): UByte - fun readUShort(): UShort + fun readUByte(): UByte = readByte().toUByte() + fun readUShort(): UShort = readShort().toUShort() + fun readUInt(): UInt = readInt().toUInt() + fun readULong(): ULong = readLong().toULong() - fun readVarInt(): Int = MinecraftVarIntUtils.readVarInt(this) - fun readVarLong(): Long = MinecraftVarLongUtils.readVarLong(this) + fun readVarInt(): Int = VarIntSerializer.readVarInt(this) + fun readVarLong(): Long = VarLongSerializer.readVarLong(this) - fun readString(n: Int = MINECRAFT_MAX_STRING_LENGTH): String = MinecraftStringUtils.readString(n, this) + fun readString(n: Int = MINECRAFT_MAX_STRING_LENGTH): String = VarStringSerializer.readString(n, this) fun readChat(): String = readString(MINECRAFT_MAX_CHAT_LENGTH) fun readIdentifier(): String = readString(MINECRAFT_MAX_IDENTIFIER_LENGTH) @@ -53,7 +58,7 @@ interface MCProtocolDeserializer { return list.toList() } - fun readPosition(): Position = Position.longToPosition(readLong()) + fun readPosition(): Position = PositionSerializer.longToPosition(readLong()) fun readUUID(): UUID = UUID(readLong(), readLong()) fun readAngle(): Float = (readByte() * 360.0f / 256f) @@ -69,5 +74,5 @@ interface MCProtocolDeserializer { return list.toByteArray() } - fun readChunkBlockEntity(): ChunkBlockEntity = ChunkBlockEntity.read(this) + fun readChunkBlockEntity(): ChunkBlockEntity = ChunkBlockEntitySerializer.read(this) } \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolSerializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolSerializer.kt similarity index 66% rename from src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolSerializer.kt rename to serialization/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolSerializer.kt index 777a5b3..2b5ef98 100644 --- a/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolSerializer.kt +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/MCProtocolSerializer.kt @@ -1,6 +1,9 @@ package io.layercraft.packetlib.serialization -import io.layercraft.packetlib.types.* +import io.layercraft.packetlib.serialization.types.* +import io.layercraft.packetlib.types.ChunkBlockEntity +import io.layercraft.packetlib.types.NBT +import io.layercraft.packetlib.types.Position import java.util.* /** @@ -16,20 +19,22 @@ interface MCProtocolSerializer { fun writeByte(input: Byte) fun writeBytes(input: ByteArray) - fun writeBoolean(input: Boolean) + fun writeBoolean(input: Boolean) = writeByte(if (input) 1 else 0) fun writeInt(input: Int) fun writeLong(input: Long) fun writeShort(input: Short) fun writeFloat(input: Float) fun writeDouble(input: Double) - fun writeUByte(input: UByte) - fun writeUShort(input: UShort) + fun writeUByte(input: UByte) = writeByte(input.toByte()) + fun writeUShort(input: UShort) = writeShort(input.toShort()) + fun writeUInt(input: UInt) = writeInt(input.toInt()) + fun writeULong(input: ULong) = writeLong(input.toLong()) - fun writeVarInt(input: Int) = MinecraftVarIntUtils.writeVarInt(input, this) - fun writeVarLong(input: Long) = MinecraftVarLongUtils.writeVarLong(input, this) + fun writeVarInt(input: Int) = VarIntSerializer.writeVarInt(input, this) + fun writeVarLong(input: Long) = VarLongSerializer.writeVarLong(input, this) - fun writeString(input: String, n: Int = MINECRAFT_MAX_STRING_LENGTH) = MinecraftStringUtils.writeString(n, input, this) + fun writeString(input: String, n: Int = MINECRAFT_MAX_STRING_LENGTH) = VarStringSerializer.writeString(n, input, this) fun writeChat(input: String) = writeString(input, MINECRAFT_MAX_CHAT_LENGTH) fun writeIdentifier(input: String) = writeString(input, MINECRAFT_MAX_IDENTIFIER_LENGTH) @@ -45,7 +50,7 @@ interface MCProtocolSerializer { fun writeRemainingByteArray(input: ByteArray) = writeBytes(input) fun writeRemainingArray(input: List, encoder: (value: T, output: MCProtocolSerializer) -> Unit) = input.forEach { encoder(it, this) } - fun writePosition(input: Position) = writeLong(Position.positionToLong(input)) + fun writePosition(input: Position) = writeLong(PositionSerializer.positionToLong(input)) fun writeUUID(input: UUID) { writeLong(input.mostSignificantBits) writeLong(input.leastSignificantBits) @@ -54,5 +59,5 @@ interface MCProtocolSerializer { fun writeNbt(input: NBT) = writeBytes(input) - fun writeChunkBlockEntity(input: ChunkBlockEntity) = ChunkBlockEntity.write(input, this) + fun writeChunkBlockEntity(input: ChunkBlockEntity) = ChunkBlockEntitySerializer.write(input, this) } \ No newline at end of file diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/BitfieldSerializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/BitfieldSerializer.kt new file mode 100644 index 0000000..4dd0baf --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/BitfieldSerializer.kt @@ -0,0 +1,14 @@ +package io.layercraft.packetlib.serialization.types + +import io.layercraft.packetlib.types.Bitfield + +object BitfieldSerializer { + + fun valueOf(bytes: ByteArray): Bitfield { + return Bitfield(bytes) + } + + fun toByteArray(bitfield: Bitfield): ByteArray { + return bitfield.bytes + } +} \ No newline at end of file diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/ChunkBlockEntitySerializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/ChunkBlockEntitySerializer.kt new file mode 100644 index 0000000..37922fc --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/ChunkBlockEntitySerializer.kt @@ -0,0 +1,23 @@ +package io.layercraft.packetlib.serialization.types + +import io.layercraft.packetlib.serialization.MCProtocolDeserializer +import io.layercraft.packetlib.serialization.MCProtocolSerializer +import io.layercraft.packetlib.types.ChunkBlockEntity + +object ChunkBlockEntitySerializer { + fun read(deserializer: MCProtocolDeserializer<*>): ChunkBlockEntity { + val packedXZ = deserializer.readByte() + val y = deserializer.readShort() + val type = deserializer.readVarInt() + val data = deserializer.readNbt() + + return ChunkBlockEntity(packedXZ, y, type, data) + } + + fun write(entity: ChunkBlockEntity, serializeInterface: MCProtocolSerializer<*>) { + serializeInterface.writeByte(entity.chunkXz) + serializeInterface.writeShort(entity.y) + serializeInterface.writeVarInt(entity.type) + serializeInterface.writeNbt(entity.data) + } +} \ No newline at end of file diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/NBTSerializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/NBTSerializer.kt new file mode 100644 index 0000000..afb024c --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/NBTSerializer.kt @@ -0,0 +1,3 @@ +package io.layercraft.packetlib.serialization.types + +object NBTSerializer \ No newline at end of file diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/PositionSerializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/PositionSerializer.kt new file mode 100644 index 0000000..1a9e707 --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/PositionSerializer.kt @@ -0,0 +1,15 @@ +package io.layercraft.packetlib.serialization.types + +import io.layercraft.packetlib.types.Position + +object PositionSerializer { + fun positionToLong(position: Position): Long = with(position) { + x.toLong() and 0x3FFFFFF shl 38 or (z.toLong() and 0x3FFFFFF shl 12) or (y.toLong() and 0xFFF) + } + + fun longToPosition(long: Long): Position = Position( + (long shr 38).toInt(), + (long and 0xFFF).toInt(), + (long shl 26 shr 38).toInt(), + ) +} \ No newline at end of file diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarConstants.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarConstants.kt new file mode 100644 index 0000000..9a447dc --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarConstants.kt @@ -0,0 +1,8 @@ +package io.layercraft.packetlib.serialization.types + +const val MINECRAFT_VAR_NUMBER_SEGMENT_BITS = 0x7F +const val MINECRAFT_VAR_NUMBER_CONTINUE_BIT = 0x80 + +const val MINECRAFT_MAX_STRING_LENGTH = 32767 +const val MINECRAFT_MAX_CHAT_LENGTH = 262144 +const val MINECRAFT_MAX_IDENTIFIER_LENGTH = 32767 \ No newline at end of file diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarIntSerializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarIntSerializer.kt new file mode 100644 index 0000000..e8f8a6e --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarIntSerializer.kt @@ -0,0 +1,46 @@ +package io.layercraft.packetlib.serialization.types + +import io.layercraft.packetlib.serialization.MCProtocolDeserializer +import io.layercraft.packetlib.serialization.MCProtocolSerializer +import java.io.EOFException + +object VarIntSerializer { + fun readVarInt(input: MCProtocolDeserializer<*>): Int { + if (input.remaining <= 0) throw EOFException("Premature end of stream") + var numRead = 0 + var result = 0 + var read: Byte + do { + read = input.readByte() + val value = (read.toInt() and MINECRAFT_VAR_NUMBER_SEGMENT_BITS) + result = result or (value shl (7 * numRead)) + numRead++ + if (numRead > 5) { + throw RuntimeException("VarInt is too big") + } + } while (read.toInt() and MINECRAFT_VAR_NUMBER_CONTINUE_BIT != 0) + return result + } + + fun writeVarInt(value: Int, output: MCProtocolSerializer<*>) { + var write = value + while (true) { + if (write and -MINECRAFT_VAR_NUMBER_CONTINUE_BIT == 0) { + output.writeByte(write.toByte()) + return + } + output.writeByte((write and 0x7F or 0x80).toByte()) + write = write ushr 7 + } + } + + fun varIntBytesCount(value: Int): Int { + return when { + value and -0x80 == 0 -> 1 + value and -0x4000 == 0 -> 2 + value and -0x200000 == 0 -> 3 + value and -0x10000000 == 0 -> 4 + else -> 5 + } + } +} \ No newline at end of file diff --git a/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarLongSerializer.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarLongSerializer.kt new file mode 100644 index 0000000..b26caaa --- /dev/null +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarLongSerializer.kt @@ -0,0 +1,51 @@ +package io.layercraft.packetlib.serialization.types + +import io.layercraft.packetlib.serialization.MCProtocolDeserializer +import io.layercraft.packetlib.serialization.MCProtocolSerializer +import java.io.EOFException + +object VarLongSerializer { + fun readVarLong(input: MCProtocolDeserializer<*>): Long { + if (input.remaining <= 0) throw EOFException("Premature end of stream") + var numRead = 0 + var result: Long = 0 + var read: Byte + do { + read = input.readByte() + val value = (read.toLong() and MINECRAFT_VAR_NUMBER_SEGMENT_BITS.toLong()) + result = result or (value shl (7 * numRead)) + numRead++ + if (numRead > 10) { + throw RuntimeException("VarLong is too big") + } + } while (read.toInt() and MINECRAFT_VAR_NUMBER_CONTINUE_BIT != 0) + return result + } + + fun writeVarLong(value: Long, output: MCProtocolSerializer<*>) { + var write = value + while (true) { + if (write and -MINECRAFT_VAR_NUMBER_CONTINUE_BIT.toLong() == 0L) { + output.writeByte(write.toByte()) + return + } + output.writeByte((write and MINECRAFT_VAR_NUMBER_SEGMENT_BITS.toLong() or MINECRAFT_VAR_NUMBER_CONTINUE_BIT.toLong()).toByte()) + write = write ushr 7 + } + } + + fun varLongBytesCount(value: Long): Int { + return when (value) { + in 0..127 -> 1 + in 128..16383 -> 2 + in 16384..2097151 -> 3 + in 2097152..268435455 -> 4 + in 268435456..34359738367 -> 5 + in 34359738368..4398046511103 -> 6 + in 4398046511104..562949953421311 -> 7 + in 562949953421312..72057594037927935 -> 8 + in 72057594037927936..9223372036854775807 -> 9 + else -> 10 + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/types/VarStringUtils.kt b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarStringSerializer.kt similarity index 87% rename from src/main/kotlin/io/layercraft/packetlib/types/VarStringUtils.kt rename to serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarStringSerializer.kt index 3d25ef0..ed3c9da 100644 --- a/src/main/kotlin/io/layercraft/packetlib/types/VarStringUtils.kt +++ b/serialization/src/main/kotlin/io/layercraft/packetlib/serialization/types/VarStringSerializer.kt @@ -1,14 +1,10 @@ -package io.layercraft.packetlib.types +package io.layercraft.packetlib.serialization.types import io.layercraft.packetlib.serialization.MCProtocolDeserializer import io.layercraft.packetlib.serialization.MCProtocolSerializer import java.io.EOFException -const val MINECRAFT_MAX_STRING_LENGTH = 32767 -const val MINECRAFT_MAX_CHAT_LENGTH = 262144 -const val MINECRAFT_MAX_IDENTIFIER_LENGTH = 32767 - -object MinecraftStringUtils { +object VarStringSerializer { fun readString(maxLength: Int = MINECRAFT_MAX_STRING_LENGTH, input: MCProtocolDeserializer<*>): String { if (input.remaining <= 0) throw EOFException("Premature end of stream") diff --git a/src/test/kotlin/io/layercraft/packetlib/MinecraftByteTest.kt b/serialization/src/test/kotlin/io/layercraft/packetlib/MinecraftByteTest.kt similarity index 100% rename from src/test/kotlin/io/layercraft/packetlib/MinecraftByteTest.kt rename to serialization/src/test/kotlin/io/layercraft/packetlib/MinecraftByteTest.kt diff --git a/serialization/src/test/kotlin/io/layercraft/packetlib/MinecraftNumberUtilsTest.kt b/serialization/src/test/kotlin/io/layercraft/packetlib/MinecraftNumberUtilsTest.kt new file mode 100644 index 0000000..8c830a9 --- /dev/null +++ b/serialization/src/test/kotlin/io/layercraft/packetlib/MinecraftNumberUtilsTest.kt @@ -0,0 +1,69 @@ +package io.layercraft.packetlib + +import io.layercraft.packetlib.serialization.types.VarIntSerializer +import io.layercraft.packetlib.serialization.types.VarLongSerializer +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test +import java.nio.ByteBuffer + +internal class MinecraftNumberUtilsTest { + + private fun numberToBytes(number: Long): ByteArray { + val bytebuffer = ByteBuffer.allocate(1024) + val serialize = MinecraftByteBufferSerialize(bytebuffer) + serialize.writeVarLong(number) + + val array = ByteArray(bytebuffer.position()) + bytebuffer.rewind() + bytebuffer.get(array) + + return array + } + + private fun numberToBytes(number: Int): ByteArray { + val bytebuffer = ByteBuffer.allocate(1024) + val serialize = MinecraftByteBufferSerialize(bytebuffer) + serialize.writeVarInt(number) + + val array = ByteArray(bytebuffer.position()) + bytebuffer.rewind() + bytebuffer.get(array) + + return array + } + + @Test + fun varLongBytesCount() { + assertEquals(numberToBytes(0).size, VarLongSerializer.varLongBytesCount(0)) + assertEquals(numberToBytes(1).size, VarLongSerializer.varLongBytesCount(1)) + assertEquals(numberToBytes(127).size, VarLongSerializer.varLongBytesCount(127)) + assertEquals(numberToBytes(128).size, VarLongSerializer.varLongBytesCount(128)) + assertEquals(numberToBytes(255).size, VarLongSerializer.varLongBytesCount(255)) + assertEquals(numberToBytes(2147483647).size, VarLongSerializer.varLongBytesCount(2147483647)) + assertEquals(numberToBytes(2147483648).size, VarLongSerializer.varLongBytesCount(2147483648)) + assertEquals(numberToBytes(9223372036854775807).size, VarLongSerializer.varLongBytesCount(9223372036854775807)) + + for (i in 0..100) { + val random = (Math.random() * Long.MAX_VALUE).toLong() + assertEquals(numberToBytes(random).size, VarLongSerializer.varLongBytesCount(random)) + } + } + + @Test + fun varIntBytesCount() { + assertEquals(numberToBytes(0).size, VarIntSerializer.varIntBytesCount(0)) + assertEquals(numberToBytes(1).size, VarIntSerializer.varIntBytesCount(1)) + assertEquals(numberToBytes(127).size, VarIntSerializer.varIntBytesCount(127)) + assertEquals(numberToBytes(128).size, VarIntSerializer.varIntBytesCount(128)) + assertEquals(numberToBytes(255).size, VarIntSerializer.varIntBytesCount(255)) + assertEquals(numberToBytes(256).size, VarIntSerializer.varIntBytesCount(256)) + assertEquals(numberToBytes(32767).size, VarIntSerializer.varIntBytesCount(32767)) + assertEquals(numberToBytes(32768).size, VarIntSerializer.varIntBytesCount(32768)) + assertEquals(numberToBytes(2147483647).size, VarIntSerializer.varIntBytesCount(2147483647)) + + for (i in 0..100) { + val random = (Math.random() * Int.MAX_VALUE).toInt() + assertEquals(numberToBytes(random).size, VarIntSerializer.varIntBytesCount(random)) + } + } +} \ No newline at end of file diff --git a/src/test/kotlin/io/layercraft/packetlib/PacketLibTestHelper.kt b/serialization/src/test/kotlin/io/layercraft/packetlib/PacketLibTestHelper.kt similarity index 78% rename from src/test/kotlin/io/layercraft/packetlib/PacketLibTestHelper.kt rename to serialization/src/test/kotlin/io/layercraft/packetlib/PacketLibTestHelper.kt index f16f032..7222ae2 100644 --- a/src/test/kotlin/io/layercraft/packetlib/PacketLibTestHelper.kt +++ b/serialization/src/test/kotlin/io/layercraft/packetlib/PacketLibTestHelper.kt @@ -1,5 +1,6 @@ package io.layercraft.packetlib +import io.layercraft.packetlib.packets.MAX_PACKET_SIZE import io.layercraft.packetlib.packets.Packet import io.layercraft.packetlib.packets.PacketSerializer import io.layercraft.packetlib.serialization.MCProtocolDeserializer @@ -35,20 +36,12 @@ class MinecraftByteBufferDeserialize(override val input: ByteBuffer) : MCProtoco override fun readByte(): Byte = input.get() - override fun readBytes(): ByteArray { - val bytes = ByteArray(input.remaining()) - input.get(bytes) - return bytes - } - override fun readBytes(n: Int): ByteArray { val bytes = ByteArray(n) input.get(bytes) return bytes } - override fun readBoolean(): Boolean = input.get() == 1.toByte() - override fun readInt(): Int = input.int override fun readLong(): Long = input.long @@ -58,10 +51,6 @@ class MinecraftByteBufferDeserialize(override val input: ByteBuffer) : MCProtoco override fun readFloat(): Float = input.float override fun readDouble(): Double = input.double - - override fun readUByte(): UByte = input.get().toUByte() - - override fun readUShort(): UShort = input.short.toUShort() } class MinecraftByteBufferSerialize(override val output: ByteBuffer) : MCProtocolSerializer { @@ -73,10 +62,6 @@ class MinecraftByteBufferSerialize(override val output: ByteBuffer) : MCProtocol output.put(input) } - override fun writeBoolean(input: Boolean) { - output.put(if (input) 1.toByte() else 0.toByte()) - } - override fun writeInt(input: Int) { output.putInt(input) } @@ -96,12 +81,4 @@ class MinecraftByteBufferSerialize(override val output: ByteBuffer) : MCProtocol override fun writeDouble(input: Double) { output.putDouble(input) } - - override fun writeUByte(input: UByte) { - output.put(input.toByte()) - } - - override fun writeUShort(input: UShort) { - output.putShort(input.toShort()) - } } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 40da29b..7c8b43d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,5 @@ rootProject.name = "packetlib" -include("generator") \ No newline at end of file +include("generator") +include("types") +include("packets") +include("serialization") \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/PacketLib.kt b/src/main/kotlin/io/layercraft/packetlib/PacketLib.kt deleted file mode 100644 index 18b72a6..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/PacketLib.kt +++ /dev/null @@ -1,3 +0,0 @@ -package io.layercraft.packetlib - -const val MAX_PACKET_SIZE: Int = 2097151 // 3 bytes varint \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/codec/MinecraftCodecs.kt b/src/main/kotlin/io/layercraft/packetlib/codec/MinecraftCodecs.kt deleted file mode 100644 index af133d5..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/codec/MinecraftCodecs.kt +++ /dev/null @@ -1,189 +0,0 @@ -@file:Suppress("DuplicatedCode") - -package io.layercraft.packetlib.codec - -object MinecraftCodecs { - - val V1_19_3: Codec = - codec(ProtocolVersion.V1_19_3) { - packets(PacketState.HANDSHAKING) { - serverBound(0x00, io.layercraft.packetlib.packets.v1_19_3.handshaking.serverbound.SetProtocolPacket::class, io.layercraft.packetlib.packets.v1_19_3.handshaking.serverbound.SetProtocolPacket) - serverBound(0xfe, io.layercraft.packetlib.packets.v1_19_3.handshaking.serverbound.LegacyServerListPingPacket::class, io.layercraft.packetlib.packets.v1_19_3.handshaking.serverbound.LegacyServerListPingPacket) - } - - packets(PacketState.LOGIN) { - clientBound(0x00, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.DisconnectPacket::class, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.DisconnectPacket) - clientBound(0x01, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.EncryptionBeginPacket::class, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.EncryptionBeginPacket) - clientBound(0x02, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.SuccessPacket::class, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.SuccessPacket) - clientBound(0x03, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.CompressPacket::class, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.CompressPacket) - clientBound(0x04, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.LoginPluginRequestPacket::class, io.layercraft.packetlib.packets.v1_19_3.login.clientbound.LoginPluginRequestPacket) - serverBound(0x00, io.layercraft.packetlib.packets.v1_19_3.login.serverbound.LoginStartPacket::class, io.layercraft.packetlib.packets.v1_19_3.login.serverbound.LoginStartPacket) - serverBound(0x01, io.layercraft.packetlib.packets.v1_19_3.login.serverbound.EncryptionBeginPacket::class, io.layercraft.packetlib.packets.v1_19_3.login.serverbound.EncryptionBeginPacket) - serverBound(0x02, io.layercraft.packetlib.packets.v1_19_3.login.serverbound.LoginPluginResponsePacket::class, io.layercraft.packetlib.packets.v1_19_3.login.serverbound.LoginPluginResponsePacket) - } - - packets(PacketState.STATUS) { - clientBound(0x00, io.layercraft.packetlib.packets.v1_19_3.status.clientbound.ServerInfoPacket::class, io.layercraft.packetlib.packets.v1_19_3.status.clientbound.ServerInfoPacket) - clientBound(0x01, io.layercraft.packetlib.packets.v1_19_3.status.clientbound.PingPacket::class, io.layercraft.packetlib.packets.v1_19_3.status.clientbound.PingPacket) - serverBound(0x00, io.layercraft.packetlib.packets.v1_19_3.status.serverbound.PingStartPacket::class, io.layercraft.packetlib.packets.v1_19_3.status.serverbound.PingStartPacket) - serverBound(0x01, io.layercraft.packetlib.packets.v1_19_3.status.serverbound.PingPacket::class, io.layercraft.packetlib.packets.v1_19_3.status.serverbound.PingPacket) - } - - packets(PacketState.PLAY) { - clientBound(0x00, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SpawnEntityPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SpawnEntityPacket) - clientBound(0x01, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SpawnEntityExperienceOrbPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SpawnEntityExperienceOrbPacket) - clientBound(0x02, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.NamedEntitySpawnPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.NamedEntitySpawnPacket) - clientBound(0x03, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AnimationPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AnimationPacket) - clientBound(0x04, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.StatisticsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.StatisticsPacket) - clientBound(0x05, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AcknowledgePlayerDiggingPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AcknowledgePlayerDiggingPacket) - clientBound(0x06, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BlockBreakAnimationPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BlockBreakAnimationPacket) - clientBound(0x07, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TileEntityDataPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TileEntityDataPacket) - clientBound(0x08, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BlockActionPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BlockActionPacket) - clientBound(0x09, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BlockChangePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BlockChangePacket) - clientBound(0x0a, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BossBarPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.BossBarPacket) - clientBound(0x0b, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.DifficultyPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.DifficultyPacket) - clientBound(0x0c, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ClearTitlesPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ClearTitlesPacket) - clientBound(0x0d, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TabCompletePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TabCompletePacket) - clientBound(0x0e, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.DeclareCommandsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.DeclareCommandsPacket) - clientBound(0x0f, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CloseWindowPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CloseWindowPacket) - clientBound(0x10, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WindowItemsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WindowItemsPacket) - clientBound(0x11, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CraftProgressBarPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CraftProgressBarPacket) - clientBound(0x12, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetSlotPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetSlotPacket) - clientBound(0x13, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetCooldownPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetCooldownPacket) - clientBound(0x14, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ChatSuggestionsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ChatSuggestionsPacket) - clientBound(0x15, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CustomPayloadPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CustomPayloadPacket) - clientBound(0x17, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.KickDisconnectPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.KickDisconnectPacket) - clientBound(0x18, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ProfilelessChatPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ProfilelessChatPacket) - clientBound(0x19, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityStatusPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityStatusPacket) - clientBound(0x1a, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ExplosionPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ExplosionPacket) - clientBound(0x1b, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UnloadChunkPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UnloadChunkPacket) - clientBound(0x1c, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.GameStateChangePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.GameStateChangePacket) - clientBound(0x1d, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenHorseWindowPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenHorseWindowPacket) - clientBound(0x1e, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.InitializeWorldBorderPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.InitializeWorldBorderPacket) - clientBound(0x1f, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.KeepAlivePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.KeepAlivePacket) - clientBound(0x20, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.MapChunkPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.MapChunkPacket) - clientBound(0x21, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldEventPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldEventPacket) - clientBound(0x22, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldParticlesPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldParticlesPacket) - clientBound(0x23, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateLightPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateLightPacket) - clientBound(0x24, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.LoginPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.LoginPacket) - clientBound(0x25, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.MapPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.MapPacket) - clientBound(0x26, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TradeListPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TradeListPacket) - clientBound(0x27, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.RelEntityMovePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.RelEntityMovePacket) - clientBound(0x28, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityMoveLookPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityMoveLookPacket) - clientBound(0x29, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityLookPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityLookPacket) - clientBound(0x2a, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.VehicleMovePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.VehicleMovePacket) - clientBound(0x2b, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenBookPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenBookPacket) - clientBound(0x2c, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenWindowPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenWindowPacket) - clientBound(0x2d, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenSignEntityPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.OpenSignEntityPacket) - clientBound(0x2e, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PingPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PingPacket) - clientBound(0x2f, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CraftRecipeResponsePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CraftRecipeResponsePacket) - clientBound(0x30, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AbilitiesPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AbilitiesPacket) - clientBound(0x32, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EndCombatEventPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EndCombatEventPacket) - clientBound(0x33, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EnterCombatEventPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EnterCombatEventPacket) - clientBound(0x34, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.DeathCombatEventPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.DeathCombatEventPacket) - clientBound(0x35, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PlayerRemovePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PlayerRemovePacket) - clientBound(0x37, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.FacePlayerPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.FacePlayerPacket) - clientBound(0x38, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PositionPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PositionPacket) - clientBound(0x39, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UnlockRecipesPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UnlockRecipesPacket) - clientBound(0x3a, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityDestroyPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityDestroyPacket) - clientBound(0x3b, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.RemoveEntityEffectPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.RemoveEntityEffectPacket) - clientBound(0x3c, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ResourcePackSendPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ResourcePackSendPacket) - clientBound(0x3d, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.RespawnPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.RespawnPacket) - clientBound(0x3e, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityHeadRotationPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityHeadRotationPacket) - clientBound(0x3f, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.MultiBlockChangePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.MultiBlockChangePacket) - clientBound(0x40, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SelectAdvancementTabPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SelectAdvancementTabPacket) - clientBound(0x41, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ServerDataPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ServerDataPacket) - clientBound(0x42, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ActionBarPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ActionBarPacket) - clientBound(0x43, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderCenterPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderCenterPacket) - clientBound(0x44, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderLerpSizePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderLerpSizePacket) - clientBound(0x45, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderSizePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderSizePacket) - clientBound(0x46, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderWarningDelayPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderWarningDelayPacket) - clientBound(0x47, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderWarningReachPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.WorldBorderWarningReachPacket) - clientBound(0x48, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CameraPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CameraPacket) - clientBound(0x49, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.HeldItemSlotPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.HeldItemSlotPacket) - clientBound(0x4a, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateViewPositionPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateViewPositionPacket) - clientBound(0x4b, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateViewDistancePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateViewDistancePacket) - clientBound(0x4c, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SpawnPositionPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SpawnPositionPacket) - clientBound(0x4d, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ScoreboardDisplayObjectivePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ScoreboardDisplayObjectivePacket) - clientBound(0x4e, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityMetadataPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityMetadataPacket) - clientBound(0x4f, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AttachEntityPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AttachEntityPacket) - clientBound(0x50, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityVelocityPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityVelocityPacket) - clientBound(0x51, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityEquipmentPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityEquipmentPacket) - clientBound(0x52, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ExperiencePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ExperiencePacket) - clientBound(0x53, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateHealthPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateHealthPacket) - clientBound(0x54, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ScoreboardObjectivePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ScoreboardObjectivePacket) - clientBound(0x55, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetPassengersPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetPassengersPacket) - clientBound(0x56, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TeamsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TeamsPacket) - clientBound(0x57, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ScoreboardScorePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.ScoreboardScorePacket) - clientBound(0x58, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SimulationDistancePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SimulationDistancePacket) - clientBound(0x59, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetTitleSubtitlePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetTitleSubtitlePacket) - clientBound(0x5a, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateTimePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.UpdateTimePacket) - clientBound(0x5b, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetTitleTextPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetTitleTextPacket) - clientBound(0x5c, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetTitleTimePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SetTitleTimePacket) - clientBound(0x5d, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntitySoundEffectPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntitySoundEffectPacket) - clientBound(0x5e, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SoundEffectPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SoundEffectPacket) - clientBound(0x5f, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.StopSoundPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.StopSoundPacket) - clientBound(0x60, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SystemChatPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.SystemChatPacket) - clientBound(0x61, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PlayerlistHeaderPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.PlayerlistHeaderPacket) - clientBound(0x62, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.NbtQueryResponsePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.NbtQueryResponsePacket) - clientBound(0x63, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CollectPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.CollectPacket) - clientBound(0x64, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityTeleportPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityTeleportPacket) - clientBound(0x65, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AdvancementsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.AdvancementsPacket) - clientBound(0x66, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityUpdateAttributesPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityUpdateAttributesPacket) - clientBound(0x67, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.FeatureFlagsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.FeatureFlagsPacket) - clientBound(0x68, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityEffectPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.EntityEffectPacket) - clientBound(0x6a, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TagsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.clientbound.TagsPacket) - serverBound(0x00, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.TeleportConfirmPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.TeleportConfirmPacket) - serverBound(0x01, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.QueryBlockNbtPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.QueryBlockNbtPacket) - serverBound(0x02, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SetDifficultyPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SetDifficultyPacket) - serverBound(0x03, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.MessageAcknowledgementPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.MessageAcknowledgementPacket) - serverBound(0x06, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ClientCommandPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ClientCommandPacket) - serverBound(0x07, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SettingsPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SettingsPacket) - serverBound(0x08, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.TabCompletePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.TabCompletePacket) - serverBound(0x09, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.EnchantItemPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.EnchantItemPacket) - serverBound(0x0a, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.WindowClickPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.WindowClickPacket) - serverBound(0x0b, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.CloseWindowPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.CloseWindowPacket) - serverBound(0x0c, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.CustomPayloadPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.CustomPayloadPacket) - serverBound(0x0d, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.EditBookPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.EditBookPacket) - serverBound(0x0e, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.QueryEntityNbtPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.QueryEntityNbtPacket) - serverBound(0x0f, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UseEntityPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UseEntityPacket) - serverBound(0x10, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.GenerateStructurePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.GenerateStructurePacket) - serverBound(0x11, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.KeepAlivePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.KeepAlivePacket) - serverBound(0x12, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.LockDifficultyPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.LockDifficultyPacket) - serverBound(0x13, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PositionPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PositionPacket) - serverBound(0x14, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PositionLookPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PositionLookPacket) - serverBound(0x15, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.LookPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.LookPacket) - serverBound(0x16, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.FlyingPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.FlyingPacket) - serverBound(0x17, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.VehicleMovePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.VehicleMovePacket) - serverBound(0x18, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SteerBoatPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SteerBoatPacket) - serverBound(0x19, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PickItemPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PickItemPacket) - serverBound(0x1a, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.CraftRecipeRequestPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.CraftRecipeRequestPacket) - serverBound(0x1b, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.AbilitiesPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.AbilitiesPacket) - serverBound(0x1c, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.BlockDigPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.BlockDigPacket) - serverBound(0x1d, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.EntityActionPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.EntityActionPacket) - serverBound(0x1e, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SteerVehiclePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SteerVehiclePacket) - serverBound(0x1f, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PongPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.PongPacket) - serverBound(0x20, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ChatSessionUpdatePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ChatSessionUpdatePacket) - serverBound(0x21, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.RecipeBookPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.RecipeBookPacket) - serverBound(0x22, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.DisplayedRecipePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.DisplayedRecipePacket) - serverBound(0x23, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.NameItemPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.NameItemPacket) - serverBound(0x24, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ResourcePackReceivePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ResourcePackReceivePacket) - serverBound(0x25, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.AdvancementTabPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.AdvancementTabPacket) - serverBound(0x26, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SelectTradePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SelectTradePacket) - serverBound(0x27, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SetBeaconEffectPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SetBeaconEffectPacket) - serverBound(0x28, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.HeldItemSlotPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.HeldItemSlotPacket) - serverBound(0x29, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateCommandBlockPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateCommandBlockPacket) - serverBound(0x2a, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateCommandBlockMinecartPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateCommandBlockMinecartPacket) - serverBound(0x2b, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SetCreativeSlotPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SetCreativeSlotPacket) - serverBound(0x2c, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateJigsawBlockPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateJigsawBlockPacket) - serverBound(0x2d, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateStructureBlockPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateStructureBlockPacket) - serverBound(0x2e, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateSignPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UpdateSignPacket) - serverBound(0x2f, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ArmAnimationPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.ArmAnimationPacket) - serverBound(0x30, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SpectatePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.SpectatePacket) - serverBound(0x31, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.BlockPlacePacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.BlockPlacePacket) - serverBound(0x32, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UseItemPacket::class, io.layercraft.packetlib.packets.v1_19_3.play.serverbound.UseItemPacket) - } - } - - val V1_19_4: Codec = codecCopy(ProtocolVersion.V1_19_4, this.V1_19_3) -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/handshaking/serverbound/LegacyServerListPingPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/handshaking/serverbound/LegacyServerListPingPacket.kt deleted file mode 100644 index 5e9f087..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/handshaking/serverbound/LegacyServerListPingPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.handshaking.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Legacy Server List Ping | 0xfe | handshaking | serverbound - * - * @param payload payload - * @see https://wiki.vg/Protocol#Legacy_Server_List_Ping - */ - -data class LegacyServerListPingPacket( - val payload: UByte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): LegacyServerListPingPacket { - val payload = input.readUByte() - - return LegacyServerListPingPacket(payload) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: LegacyServerListPingPacket) { - output.writeUByte(value.payload) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/handshaking/serverbound/SetProtocolPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/handshaking/serverbound/SetProtocolPacket.kt deleted file mode 100644 index ea7769f..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/handshaking/serverbound/SetProtocolPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.handshaking.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Handshake | 0x00 | handshaking | serverbound - * - * @param protocolVersion protocolVersion - * @param serverHost serverHost - * @param serverPort serverPort - * @param nextState nextState - * @see https://wiki.vg/Protocol#Handshake - */ - -data class SetProtocolPacket( - val protocolVersion: Int, // varint - val serverHost: String, - val serverPort: UShort, - val nextState: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetProtocolPacket { - val protocolVersion = input.readVarInt() - val serverHost = input.readString() - val serverPort = input.readUShort() - val nextState = input.readVarInt() - - return SetProtocolPacket(protocolVersion, serverHost, serverPort, nextState) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetProtocolPacket) { - output.writeVarInt(value.protocolVersion) - output.writeString(value.serverHost) - output.writeUShort(value.serverPort) - output.writeVarInt(value.nextState) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/CompressPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/CompressPacket.kt deleted file mode 100644 index 9eede76..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/CompressPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Compression | 0x03 | login | clientbound - * - * @param threshold threshold - * @see https://wiki.vg/Protocol#Set_Compression - */ - -data class CompressPacket( - val threshold: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CompressPacket { - val threshold = input.readVarInt() - - return CompressPacket(threshold) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CompressPacket) { - output.writeVarInt(value.threshold) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/DisconnectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/DisconnectPacket.kt deleted file mode 100644 index 77f3310..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/DisconnectPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Disconnect (login) | 0x00 | login | clientbound - * - * @param reason reason - * @see https://wiki.vg/Protocol#Disconnect_.28login.29 - */ - -data class DisconnectPacket( - val reason: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): DisconnectPacket { - val reason = input.readString() - - return DisconnectPacket(reason) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: DisconnectPacket) { - output.writeString(value.reason) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/EncryptionBeginPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/EncryptionBeginPacket.kt deleted file mode 100644 index 578fff7..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/EncryptionBeginPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Encryption Request | 0x01 | login | clientbound - * - * @param serverId serverId - * @param publicKey publicKey - * @param verifyToken verifyToken - * @see https://wiki.vg/Protocol#Encryption_Request - */ - -data class EncryptionBeginPacket( - val serverId: String, - val publicKey: ByteArray, - val verifyToken: ByteArray, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EncryptionBeginPacket { - val serverId = input.readString() - val publicKey = input.readVarIntByteArray() - val verifyToken = input.readVarIntByteArray() - - return EncryptionBeginPacket(serverId, publicKey, verifyToken) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EncryptionBeginPacket) { - output.writeString(value.serverId) - output.writeVarIntByteArray(value.publicKey) - output.writeVarIntByteArray(value.verifyToken) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/LoginPluginRequestPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/LoginPluginRequestPacket.kt deleted file mode 100644 index 1ea7f11..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/LoginPluginRequestPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Login Plugin Request | 0x04 | login | clientbound - * - * @param messageId messageId - * @param channel channel - * @param data data - * @see https://wiki.vg/Protocol#Login_Plugin_Request - */ - -data class LoginPluginRequestPacket( - val messageId: Int, // varint - val channel: String, - val data: ByteArray, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): LoginPluginRequestPacket { - val messageId = input.readVarInt() - val channel = input.readString() - val data = input.readRemainingByteArray() - - return LoginPluginRequestPacket(messageId, channel, data) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: LoginPluginRequestPacket) { - output.writeVarInt(value.messageId) - output.writeString(value.channel) - output.writeRemainingByteArray(value.data) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/SuccessPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/SuccessPacket.kt deleted file mode 100644 index d30d52d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/clientbound/SuccessPacket.kt +++ /dev/null @@ -1,64 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Login Success | 0x02 | login | clientbound - * - * @param uuid uuid - * @param username username - * @param properties list of SuccessPacketProperties - * @see https://wiki.vg/Protocol#Login_Success - */ - -data class SuccessPacket( - val uuid: UUID, - val username: String, - val properties: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SuccessPacket { - val uuid = input.readUUID() - val username = input.readString() - val properties = input.readVarIntArray { arrayInput -> - val name = arrayInput.readString() - val value = arrayInput.readString() - val hasSignature = arrayInput.readBoolean() - val signature = if (hasSignature) arrayInput.readString() else null - - SuccessPacketProperties(name, value, hasSignature, signature) - } - - return SuccessPacket(uuid, username, properties) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SuccessPacket) { - output.writeUUID(value.uuid) - output.writeString(value.username) - - output.writeVarIntArray(value.properties) { arrayValue, arrayOutput -> - arrayOutput.writeString(arrayValue.name) - arrayOutput.writeString(arrayValue.value) - arrayOutput.writeBoolean(arrayValue.hasSignature) - if (arrayValue.hasSignature) arrayOutput.writeString(arrayValue.signature!!) - } - } - } -} - -/** - * SuccessPacketProperties - * - * @param name name - * @param value value - * @param hasSignature signature is present - * @param signature signature -*/ -data class SuccessPacketProperties( - val name: String, - val value: String, - val hasSignature: Boolean, - val signature: String?, -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/EncryptionBeginPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/EncryptionBeginPacket.kt deleted file mode 100644 index ee8c56f..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/EncryptionBeginPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Encryption Response | 0x01 | login | serverbound - * - * @param sharedSecret sharedSecret - * @param verifyToken verifyToken - * @see https://wiki.vg/Protocol#Encryption_Response - */ - -data class EncryptionBeginPacket( - val sharedSecret: ByteArray, - val verifyToken: ByteArray, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EncryptionBeginPacket { - val sharedSecret = input.readVarIntByteArray() - val verifyToken = input.readVarIntByteArray() - - return EncryptionBeginPacket(sharedSecret, verifyToken) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EncryptionBeginPacket) { - output.writeVarIntByteArray(value.sharedSecret) - output.writeVarIntByteArray(value.verifyToken) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/LoginPluginResponsePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/LoginPluginResponsePacket.kt deleted file mode 100644 index 7a2bbde..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/LoginPluginResponsePacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Login Plugin Response | 0x02 | login | serverbound - * - * @param messageId messageId - * @param hasData data is present - * @param data data - * @see https://wiki.vg/Protocol#Login_Plugin_Response - */ - -data class LoginPluginResponsePacket( - val messageId: Int, // varint - val hasData: Boolean, - val data: ByteArray?, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): LoginPluginResponsePacket { - val messageId = input.readVarInt() - val hasData = input.readBoolean() - val data = if (hasData) input.readRemainingByteArray() else null - - return LoginPluginResponsePacket(messageId, hasData, data) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: LoginPluginResponsePacket) { - output.writeVarInt(value.messageId) - output.writeBoolean(value.hasData) - if (value.hasData) output.writeRemainingByteArray(value.data!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/LoginStartPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/LoginStartPacket.kt deleted file mode 100644 index c0f5942..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/login/serverbound/LoginStartPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.login.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Login Start | 0x00 | login | serverbound - * - * @param username username - * @param hasPlayerUUID playerUUID is present - * @param playerUUID playerUUID - * @see https://wiki.vg/Protocol#Login_Start - */ - -data class LoginStartPacket( - val username: String, - val hasPlayerUUID: Boolean, - val playerUUID: UUID?, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): LoginStartPacket { - val username = input.readString() - val hasPlayerUUID = input.readBoolean() - val playerUUID = if (hasPlayerUUID) input.readUUID() else null - - return LoginStartPacket(username, hasPlayerUUID, playerUUID) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: LoginStartPacket) { - output.writeString(value.username) - output.writeBoolean(value.hasPlayerUUID) - if (value.hasPlayerUUID) output.writeUUID(value.playerUUID!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AbilitiesPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AbilitiesPacket.kt deleted file mode 100644 index f63c6f8..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AbilitiesPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Player Abilities | 0x30 | play | clientbound - * - * @param flags flags - * @param flyingSpeed flyingSpeed - * @param walkingSpeed walkingSpeed - * @see https://wiki.vg/Protocol#Player_Abilities - */ - -data class AbilitiesPacket( - val flags: Byte, - val flyingSpeed: Float, - val walkingSpeed: Float, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): AbilitiesPacket { - val flags = input.readByte() - val flyingSpeed = input.readFloat() - val walkingSpeed = input.readFloat() - - return AbilitiesPacket(flags, flyingSpeed, walkingSpeed) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: AbilitiesPacket) { - output.writeByte(value.flags) - output.writeFloat(value.flyingSpeed) - output.writeFloat(value.walkingSpeed) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AcknowledgePlayerDiggingPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AcknowledgePlayerDiggingPacket.kt deleted file mode 100644 index bcba058..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AcknowledgePlayerDiggingPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Acknowledge Block Change | 0x05 | play | clientbound - * - * @param sequenceId sequenceId - * @see https://wiki.vg/Protocol#Acknowledge_Block_Change - */ - -data class AcknowledgePlayerDiggingPacket( - val sequenceId: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): AcknowledgePlayerDiggingPacket { - val sequenceId = input.readVarInt() - - return AcknowledgePlayerDiggingPacket(sequenceId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: AcknowledgePlayerDiggingPacket) { - output.writeVarInt(value.sequenceId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ActionBarPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ActionBarPacket.kt deleted file mode 100644 index 666d2a1..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ActionBarPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Action Bar Text | 0x42 | play | clientbound - * - * @param text text - * @see https://wiki.vg/Protocol#Set_Action_Bar_Text - */ - -data class ActionBarPacket( - val text: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ActionBarPacket { - val text = input.readString() - - return ActionBarPacket(text) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ActionBarPacket) { - output.writeString(value.text) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AdvancementsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AdvancementsPacket.kt deleted file mode 100644 index 5d7569c..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AdvancementsPacket.kt +++ /dev/null @@ -1,158 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Advancements | 0x65 | play | clientbound - * - * @param reset reset - * @param advancementMapping list of AdvancementsPacketAdvancementMapping - * @param identifiers identifiers - * @param progressMapping list of AdvancementsPacketProgressMapping - * @see https://wiki.vg/Protocol#Update_Advancements - */ - -data class AdvancementsPacket( - val reset: Boolean, - val advancementMapping: List, // varint array - val identifiers: List, // varint array - val progressMapping: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): AdvancementsPacket { - val reset = input.readBoolean() - val advancementMapping = input.readVarIntArray { arrayInput -> - val key = arrayInput.readString() - val hasParentId = arrayInput.readBoolean() - val parentId = if (hasParentId) arrayInput.readString() else null - val hasDisplayData = arrayInput.readBoolean() - val title = if (hasDisplayData) arrayInput.readString() else null - val description = if (hasDisplayData) arrayInput.readString() else null - val frameType = if (hasDisplayData) arrayInput.readVarInt() else null - val xCord = if (hasDisplayData) arrayInput.readFloat() else null - val yCord = if (hasDisplayData) arrayInput.readFloat() else null - val criteria = arrayInput.readVarIntArray { arrayInput -> - val key = arrayInput.readString() - - AdvancementsPacketCriteria(key) - } - val requirements = arrayInput.readVarIntArray { arrayInput1 -> arrayInput1.readVarIntArray { arrayInput -> arrayInput.readString() } } - - AdvancementsPacketAdvancementMapping(key, hasParentId, parentId, hasDisplayData, title, description, frameType, xCord, yCord, criteria, requirements) - } - val identifiers = input.readVarIntArray { arrayInput -> arrayInput.readString() } - val progressMapping = input.readVarIntArray { arrayInput -> - val key = arrayInput.readString() - val value = arrayInput.readVarIntArray { arrayInput1 -> - val criterionIdentifier = arrayInput1.readString() - val hasCriterionProgress = arrayInput1.readBoolean() - val criterionProgress = if (hasCriterionProgress) arrayInput1.readLong() else null - - AdvancementsPacketValue(criterionIdentifier, hasCriterionProgress, criterionProgress) - } - - AdvancementsPacketProgressMapping(key, value) - } - - return AdvancementsPacket(reset, advancementMapping, identifiers, progressMapping) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: AdvancementsPacket) { - output.writeBoolean(value.reset) - - output.writeVarIntArray(value.advancementMapping) { arrayValue, arrayOutput -> - arrayOutput.writeString(arrayValue.key) - arrayOutput.writeBoolean(arrayValue.hasParentId) - if (arrayValue.hasParentId) arrayOutput.writeString(arrayValue.parentId!!) - arrayOutput.writeBoolean(arrayValue.hasDisplayData) - if (arrayValue.hasDisplayData) arrayOutput.writeString(arrayValue.title!!) - if (arrayValue.hasDisplayData) arrayOutput.writeString(arrayValue.description!!) - if (arrayValue.hasDisplayData) arrayOutput.writeVarInt(arrayValue.frameType!!) - if (arrayValue.hasDisplayData) arrayOutput.writeFloat(arrayValue.xCord!!) - if (arrayValue.hasDisplayData) arrayOutput.writeFloat(arrayValue.yCord!!) - - arrayOutput.writeVarIntArray(arrayValue.criteria) { arrayValue, arrayOutput -> - arrayOutput.writeString(arrayValue.key) - } - - arrayOutput.writeVarIntArray(arrayValue.requirements) { arrayValue1, arrayOutput1 -> arrayOutput1.writeVarIntArray(arrayValue1) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } } - } - - output.writeVarIntArray(value.identifiers) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - - output.writeVarIntArray(value.progressMapping) { arrayValue, arrayOutput -> - arrayOutput.writeString(arrayValue.key) - - arrayOutput.writeVarIntArray(arrayValue.value) { arrayValue1, arrayOutput1 -> - arrayOutput1.writeString(arrayValue1.criterionIdentifier) - arrayOutput1.writeBoolean(arrayValue1.hasCriterionProgress) - if (arrayValue1.hasCriterionProgress) arrayOutput1.writeLong(arrayValue1.criterionProgress!!) - } - } - } - } -} - -/** - * AdvancementsPacketCriteria - * - * @param key key -*/ -data class AdvancementsPacketCriteria( - val key: String, -) - -/** - * AdvancementsPacketAdvancementMapping - * - * @param key key - * @param hasParentId parentId is present - * @param parentId parentId - * @param hasDisplayData displayData is present - * @param title title - * @param description description - * @param frameType frameType - * @param xCord xCord - * @param yCord yCord - * @param criteria list of AdvancementsPacketCriteria - * @param requirements requirements -*/ -data class AdvancementsPacketAdvancementMapping( - val key: String, - val hasParentId: Boolean, - val parentId: String?, - val hasDisplayData: Boolean, - val title: String?, - val description: String?, - val frameType: Int?, // varint - val xCord: Float?, - val yCord: Float?, - val criteria: List, // varint array - val requirements: List>, // varint array -) - -/** - * AdvancementsPacketValue - * - * @param criterionIdentifier criterionIdentifier - * @param hasCriterionProgress criterionProgress is present - * @param criterionProgress criterionProgress -*/ -data class AdvancementsPacketValue( - val criterionIdentifier: String, - val hasCriterionProgress: Boolean, - val criterionProgress: Long?, -) - -/** - * AdvancementsPacketProgressMapping - * - * @param key key - * @param value list of AdvancementsPacketValue -*/ -data class AdvancementsPacketProgressMapping( - val key: String, - val value: List, // varint array -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AnimationPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AnimationPacket.kt deleted file mode 100644 index 6a2d3e1..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AnimationPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Entity Animation | 0x03 | play | clientbound - * - * @param entityId entityId - * @param animation animation - * @see https://wiki.vg/Protocol#Entity_Animation - */ - -data class AnimationPacket( - val entityId: Int, // varint - val animation: UByte, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): AnimationPacket { - val entityId = input.readVarInt() - val animation = input.readUByte() - - return AnimationPacket(entityId, animation) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: AnimationPacket) { - output.writeVarInt(value.entityId) - output.writeUByte(value.animation) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AttachEntityPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AttachEntityPacket.kt deleted file mode 100644 index 2ab87f3..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/AttachEntityPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Link Entities | 0x4f | play | clientbound - * - * @param entityId entityId - * @param vehicleId vehicleId - * @see https://wiki.vg/Protocol#Link_Entities - */ - -data class AttachEntityPacket( - val entityId: Int, - val vehicleId: Int, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): AttachEntityPacket { - val entityId = input.readInt() - val vehicleId = input.readInt() - - return AttachEntityPacket(entityId, vehicleId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: AttachEntityPacket) { - output.writeInt(value.entityId) - output.writeInt(value.vehicleId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockActionPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockActionPacket.kt deleted file mode 100644 index 9ec24a7..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockActionPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Block Action | 0x08 | play | clientbound - * - * @param location location - * @param byte1 byte1 - * @param byte2 byte2 - * @param blockId blockId - * @see https://wiki.vg/Protocol#Block_Action - */ - -data class BlockActionPacket( - val location: Position, - val byte1: UByte, - val byte2: UByte, - val blockId: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): BlockActionPacket { - val location = input.readPosition() - val byte1 = input.readUByte() - val byte2 = input.readUByte() - val blockId = input.readVarInt() - - return BlockActionPacket(location, byte1, byte2, blockId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: BlockActionPacket) { - output.writePosition(value.location) - output.writeUByte(value.byte1) - output.writeUByte(value.byte2) - output.writeVarInt(value.blockId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockBreakAnimationPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockBreakAnimationPacket.kt deleted file mode 100644 index c251dc4..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockBreakAnimationPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Set Block Destroy Stage | 0x06 | play | clientbound - * - * @param entityId entityId - * @param location location - * @param destroyStage destroyStage - * @see https://wiki.vg/Protocol#Set_Block_Destroy_Stage - */ - -data class BlockBreakAnimationPacket( - val entityId: Int, // varint - val location: Position, - val destroyStage: Byte, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): BlockBreakAnimationPacket { - val entityId = input.readVarInt() - val location = input.readPosition() - val destroyStage = input.readByte() - - return BlockBreakAnimationPacket(entityId, location, destroyStage) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: BlockBreakAnimationPacket) { - output.writeVarInt(value.entityId) - output.writePosition(value.location) - output.writeByte(value.destroyStage) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockChangePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockChangePacket.kt deleted file mode 100644 index bede239..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BlockChangePacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Block Update | 0x09 | play | clientbound - * - * @param location location - * @param type type - * @see https://wiki.vg/Protocol#Block_Update - */ - -data class BlockChangePacket( - val location: Position, - val type: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): BlockChangePacket { - val location = input.readPosition() - val type = input.readVarInt() - - return BlockChangePacket(location, type) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: BlockChangePacket) { - output.writePosition(value.location) - output.writeVarInt(value.type) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BossBarPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BossBarPacket.kt deleted file mode 100644 index 9b2337d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/BossBarPacket.kt +++ /dev/null @@ -1,92 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Boss Bar | 0x0a | play | clientbound - * - * @param entityUUID entityUUID - * @param action action - * @param title title - * @param health health - * @param color color - * @param dividers dividers - * @param flags flags - * @see https://wiki.vg/Protocol#Boss_Bar - */ - -data class BossBarPacket( - val entityUUID: UUID, - val action: Int, // varint - val title: String?, - val health: Float?, - val color: Int?, // varint - val dividers: Int?, // varint - val flags: UByte?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): BossBarPacket { - val entityUUID = input.readUUID() - val action = input.readVarInt() - val title = when (action) { - 0 -> input.readString() - 3 -> input.readString() - else -> null - } - val health = when (action) { - 0 -> input.readFloat() - 2 -> input.readFloat() - else -> null - } - val color = when (action) { - 0 -> input.readVarInt() - 4 -> input.readVarInt() - else -> null - } - val dividers = when (action) { - 0 -> input.readVarInt() - 4 -> input.readVarInt() - else -> null - } - val flags = when (action) { - 0 -> input.readUByte() - 5 -> input.readUByte() - else -> null - } - - return BossBarPacket(entityUUID, action, title, health, color, dividers, flags) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: BossBarPacket) { - output.writeUUID(value.entityUUID) - output.writeVarInt(value.action) - when (value.action) { - 0 -> output.writeString(value.title!!) - 3 -> output.writeString(value.title!!) - else -> {} - } - when (value.action) { - 0 -> output.writeFloat(value.health!!) - 2 -> output.writeFloat(value.health!!) - else -> {} - } - when (value.action) { - 0 -> output.writeVarInt(value.color!!) - 4 -> output.writeVarInt(value.color!!) - else -> {} - } - when (value.action) { - 0 -> output.writeVarInt(value.dividers!!) - 4 -> output.writeVarInt(value.dividers!!) - else -> {} - } - when (value.action) { - 0 -> output.writeUByte(value.flags!!) - 5 -> output.writeUByte(value.flags!!) - else -> {} - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CameraPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CameraPacket.kt deleted file mode 100644 index 3d6f5a6..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CameraPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Camera | 0x48 | play | clientbound - * - * @param cameraId cameraId - * @see https://wiki.vg/Protocol#Set_Camera - */ - -data class CameraPacket( - val cameraId: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CameraPacket { - val cameraId = input.readVarInt() - - return CameraPacket(cameraId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CameraPacket) { - output.writeVarInt(value.cameraId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ChatSuggestionsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ChatSuggestionsPacket.kt deleted file mode 100644 index ca4867d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ChatSuggestionsPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Chat Suggestions | 0x14 | play | clientbound - * - * @param action action - * @param entries entries - * @see https://wiki.vg/Protocol#Chat_Suggestions - */ - -data class ChatSuggestionsPacket( - val action: Int, // varint - val entries: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ChatSuggestionsPacket { - val action = input.readVarInt() - val entries = input.readVarIntArray { arrayInput -> arrayInput.readString() } - - return ChatSuggestionsPacket(action, entries) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ChatSuggestionsPacket) { - output.writeVarInt(value.action) - output.writeVarIntArray(value.entries) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ClearTitlesPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ClearTitlesPacket.kt deleted file mode 100644 index a24da17..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ClearTitlesPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Clear Titles | 0x0c | play | clientbound - * - * @param reset reset - * @see https://wiki.vg/Protocol#Clear_Titles - */ - -data class ClearTitlesPacket( - val reset: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ClearTitlesPacket { - val reset = input.readBoolean() - - return ClearTitlesPacket(reset) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ClearTitlesPacket) { - output.writeBoolean(value.reset) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CloseWindowPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CloseWindowPacket.kt deleted file mode 100644 index fb1d77e..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CloseWindowPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Close Container | 0x0f | play | clientbound - * - * @param windowId windowId - * @see https://wiki.vg/Protocol#Close_Container - */ - -data class CloseWindowPacket( - val windowId: UByte, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CloseWindowPacket { - val windowId = input.readUByte() - - return CloseWindowPacket(windowId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CloseWindowPacket) { - output.writeUByte(value.windowId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CollectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CollectPacket.kt deleted file mode 100644 index 7989226..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CollectPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Pickup Item | 0x63 | play | clientbound - * - * @param collectedEntityId collectedEntityId - * @param collectorEntityId collectorEntityId - * @param pickupItemCount pickupItemCount - * @see https://wiki.vg/Protocol#Pickup_Item - */ - -data class CollectPacket( - val collectedEntityId: Int, // varint - val collectorEntityId: Int, // varint - val pickupItemCount: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CollectPacket { - val collectedEntityId = input.readVarInt() - val collectorEntityId = input.readVarInt() - val pickupItemCount = input.readVarInt() - - return CollectPacket(collectedEntityId, collectorEntityId, pickupItemCount) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CollectPacket) { - output.writeVarInt(value.collectedEntityId) - output.writeVarInt(value.collectorEntityId) - output.writeVarInt(value.pickupItemCount) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CraftProgressBarPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CraftProgressBarPacket.kt deleted file mode 100644 index 6ae5531..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CraftProgressBarPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Container Property | 0x11 | play | clientbound - * - * @param windowId windowId - * @param property property - * @param value value - * @see https://wiki.vg/Protocol#Set_Container_Property - */ - -data class CraftProgressBarPacket( - val windowId: UByte, - val property: Short, - val value: Short, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CraftProgressBarPacket { - val windowId = input.readUByte() - val property = input.readShort() - val value = input.readShort() - - return CraftProgressBarPacket(windowId, property, value) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CraftProgressBarPacket) { - output.writeUByte(value.windowId) - output.writeShort(value.property) - output.writeShort(value.value) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CraftRecipeResponsePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CraftRecipeResponsePacket.kt deleted file mode 100644 index aec86e3..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CraftRecipeResponsePacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Place Ghost Recipe | 0x2f | play | clientbound - * - * @param windowId windowId - * @param recipe recipe - * @see https://wiki.vg/Protocol#Place_Ghost_Recipe - */ - -data class CraftRecipeResponsePacket( - val windowId: Byte, - val recipe: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CraftRecipeResponsePacket { - val windowId = input.readByte() - val recipe = input.readString() - - return CraftRecipeResponsePacket(windowId, recipe) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CraftRecipeResponsePacket) { - output.writeByte(value.windowId) - output.writeString(value.recipe) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CustomPayloadPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CustomPayloadPacket.kt deleted file mode 100644 index 8c26ac3..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/CustomPayloadPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Plugin Message | 0x15 | play | clientbound - * - * @param channel channel - * @param data data - * @see https://wiki.vg/Protocol#Plugin_Message - */ - -data class CustomPayloadPacket( - val channel: String, - val data: ByteArray, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CustomPayloadPacket { - val channel = input.readString() - val data = input.readRemainingByteArray() - - return CustomPayloadPacket(channel, data) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CustomPayloadPacket) { - output.writeString(value.channel) - output.writeRemainingByteArray(value.data) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeathCombatEventPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeathCombatEventPacket.kt deleted file mode 100644 index 011cbd8..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeathCombatEventPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Combat Death | 0x34 | play | clientbound - * - * @param playerId playerId - * @param entityId entityId - * @param message message - * @see https://wiki.vg/Protocol#Combat_Death - */ - -data class DeathCombatEventPacket( - val playerId: Int, // varint - val entityId: Int, - val message: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): DeathCombatEventPacket { - val playerId = input.readVarInt() - val entityId = input.readInt() - val message = input.readString() - - return DeathCombatEventPacket(playerId, entityId, message) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: DeathCombatEventPacket) { - output.writeVarInt(value.playerId) - output.writeInt(value.entityId) - output.writeString(value.message) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeclareCommandsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeclareCommandsPacket.kt deleted file mode 100644 index 20b1184..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeclareCommandsPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Commands | 0x0e | play | clientbound - * - * @param rootIndex rootIndex - * @see https://wiki.vg/Protocol#Commands - */ - -data class DeclareCommandsPacket( - val rootIndex: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): DeclareCommandsPacket { - val rootIndex = input.readVarInt() - - return DeclareCommandsPacket(rootIndex) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: DeclareCommandsPacket) { - output.writeVarInt(value.rootIndex) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeclareRecipesPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeclareRecipesPacket.kt deleted file mode 100644 index 0ffdd02..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DeclareRecipesPacket.kt +++ /dev/null @@ -1 +0,0 @@ -// TODO \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DifficultyPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DifficultyPacket.kt deleted file mode 100644 index 0523d57..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/DifficultyPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Change Difficulty | 0x0b | play | clientbound - * - * @param difficulty difficulty - * @param difficultyLocked difficultyLocked - * @see https://wiki.vg/Protocol#Change_Difficulty - */ - -data class DifficultyPacket( - val difficulty: UByte, - val difficultyLocked: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): DifficultyPacket { - val difficulty = input.readUByte() - val difficultyLocked = input.readBoolean() - - return DifficultyPacket(difficulty, difficultyLocked) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: DifficultyPacket) { - output.writeUByte(value.difficulty) - output.writeBoolean(value.difficultyLocked) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EndCombatEventPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EndCombatEventPacket.kt deleted file mode 100644 index 2f5609d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EndCombatEventPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * End Combat | 0x32 | play | clientbound - * - * @param duration duration - * @param entityId entityId - * @see https://wiki.vg/Protocol#End_Combat - */ - -data class EndCombatEventPacket( - val duration: Int, // varint - val entityId: Int, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EndCombatEventPacket { - val duration = input.readVarInt() - val entityId = input.readInt() - - return EndCombatEventPacket(duration, entityId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EndCombatEventPacket) { - output.writeVarInt(value.duration) - output.writeInt(value.entityId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EnterCombatEventPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EnterCombatEventPacket.kt deleted file mode 100644 index 08f68ef..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EnterCombatEventPacket.kt +++ /dev/null @@ -1,23 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Enter Combat | 0x33 | play | clientbound - * - - * @see https://wiki.vg/Protocol#Enter_Combat - */ - -class EnterCombatEventPacket() : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EnterCombatEventPacket { - return EnterCombatEventPacket() - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EnterCombatEventPacket) { - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityDestroyPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityDestroyPacket.kt deleted file mode 100644 index 988f087..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityDestroyPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Remove Entities | 0x3a | play | clientbound - * - * @param entityIds entityIds - * @see https://wiki.vg/Protocol#Remove_Entities - */ - -data class EntityDestroyPacket( - val entityIds: List, // varint array of varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityDestroyPacket { - val entityIds = input.readVarIntArray { arrayInput -> arrayInput.readVarInt() } - - return EntityDestroyPacket(entityIds) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityDestroyPacket) { - output.writeVarIntArray(value.entityIds) { arrayValue, arrayOutput -> arrayOutput.writeVarInt(arrayValue) } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityEffectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityEffectPacket.kt deleted file mode 100644 index 0ce4d75..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityEffectPacket.kt +++ /dev/null @@ -1,52 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.NBT -/** - * Entity Effect | 0x68 | play | clientbound - * - * @param entityId entityId - * @param effectId effectId - * @param amplifier amplifier - * @param duration duration - * @param hideParticles hideParticles - * @param hasFactorCodec factorCodec is present - * @param factorCodec factorCodec - * @see https://wiki.vg/Protocol#Entity_Effect - */ - -data class EntityEffectPacket( - val entityId: Int, // varint - val effectId: Int, // varint - val amplifier: Byte, - val duration: Int, // varint - val hideParticles: Byte, - val hasFactorCodec: Boolean, - val factorCodec: NBT?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityEffectPacket { - val entityId = input.readVarInt() - val effectId = input.readVarInt() - val amplifier = input.readByte() - val duration = input.readVarInt() - val hideParticles = input.readByte() - val hasFactorCodec = input.readBoolean() - val factorCodec = if (hasFactorCodec) input.readNbt() else null - - return EntityEffectPacket(entityId, effectId, amplifier, duration, hideParticles, hasFactorCodec, factorCodec) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityEffectPacket) { - output.writeVarInt(value.entityId) - output.writeVarInt(value.effectId) - output.writeByte(value.amplifier) - output.writeVarInt(value.duration) - output.writeByte(value.hideParticles) - output.writeBoolean(value.hasFactorCodec) - if (value.hasFactorCodec) output.writeNbt(value.factorCodec!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityEquipmentPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityEquipmentPacket.kt deleted file mode 100644 index 2f340c6..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityEquipmentPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Equipment | 0x51 | play | clientbound - * - * @param entityId entityId - * @see https://wiki.vg/Protocol#Set_Equipment - */ - -data class EntityEquipmentPacket( - val entityId: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityEquipmentPacket { - val entityId = input.readVarInt() - - return EntityEquipmentPacket(entityId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityEquipmentPacket) { - output.writeVarInt(value.entityId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityHeadRotationPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityHeadRotationPacket.kt deleted file mode 100644 index 9b6155e..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityHeadRotationPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Head Rotation | 0x3e | play | clientbound - * - * @param entityId entityId - * @param headYaw headYaw - * @see https://wiki.vg/Protocol#Set_Head_Rotation - */ - -data class EntityHeadRotationPacket( - val entityId: Int, // varint - val headYaw: Byte, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityHeadRotationPacket { - val entityId = input.readVarInt() - val headYaw = input.readByte() - - return EntityHeadRotationPacket(entityId, headYaw) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityHeadRotationPacket) { - output.writeVarInt(value.entityId) - output.writeByte(value.headYaw) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityLookPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityLookPacket.kt deleted file mode 100644 index 0baf687..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityLookPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Entity Rotation | 0x29 | play | clientbound - * - * @param entityId entityId - * @param yaw yaw - * @param pitch pitch - * @param onGround onGround - * @see https://wiki.vg/Protocol#Update_Entity_Rotation - */ - -data class EntityLookPacket( - val entityId: Int, // varint - val yaw: Byte, - val pitch: Byte, - val onGround: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityLookPacket { - val entityId = input.readVarInt() - val yaw = input.readByte() - val pitch = input.readByte() - val onGround = input.readBoolean() - - return EntityLookPacket(entityId, yaw, pitch, onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityLookPacket) { - output.writeVarInt(value.entityId) - output.writeByte(value.yaw) - output.writeByte(value.pitch) - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityMetadataPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityMetadataPacket.kt deleted file mode 100644 index d24a47a..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityMetadataPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Entity Metadata | 0x4e | play | clientbound - * - * @param entityId entityId - * @see https://wiki.vg/Protocol#Set_Entity_Metadata - */ - -data class EntityMetadataPacket( - val entityId: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityMetadataPacket { - val entityId = input.readVarInt() - - return EntityMetadataPacket(entityId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityMetadataPacket) { - output.writeVarInt(value.entityId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityMoveLookPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityMoveLookPacket.kt deleted file mode 100644 index 1f5e61e..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityMoveLookPacket.kt +++ /dev/null @@ -1,52 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Entity Position and Rotation | 0x28 | play | clientbound - * - * @param entityId entityId - * @param dX dX - * @param dY dY - * @param dZ dZ - * @param yaw yaw - * @param pitch pitch - * @param onGround onGround - * @see https://wiki.vg/Protocol#Update_Entity_Position_and_Rotation - */ - -data class EntityMoveLookPacket( - val entityId: Int, // varint - val dX: Short, - val dY: Short, - val dZ: Short, - val yaw: Byte, - val pitch: Byte, - val onGround: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityMoveLookPacket { - val entityId = input.readVarInt() - val dX = input.readShort() - val dY = input.readShort() - val dZ = input.readShort() - val yaw = input.readByte() - val pitch = input.readByte() - val onGround = input.readBoolean() - - return EntityMoveLookPacket(entityId, dX, dY, dZ, yaw, pitch, onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityMoveLookPacket) { - output.writeVarInt(value.entityId) - output.writeShort(value.dX) - output.writeShort(value.dY) - output.writeShort(value.dZ) - output.writeByte(value.yaw) - output.writeByte(value.pitch) - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntitySoundEffectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntitySoundEffectPacket.kt deleted file mode 100644 index 2030d00..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntitySoundEffectPacket.kt +++ /dev/null @@ -1,48 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Entity Sound Effect | 0x5d | play | clientbound - * - * @param soundId soundId - * @param soundCategory soundCategory - * @param entityId entityId - * @param volume volume - * @param pitch pitch - * @param seed seed - * @see https://wiki.vg/Protocol#Entity_Sound_Effect - */ - -data class EntitySoundEffectPacket( - val soundId: Int, // varint - val soundCategory: Int, // varint - val entityId: Int, // varint - val volume: Float, - val pitch: Float, - val seed: Long, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntitySoundEffectPacket { - val soundId = input.readVarInt() - val soundCategory = input.readVarInt() - val entityId = input.readVarInt() - val volume = input.readFloat() - val pitch = input.readFloat() - val seed = input.readLong() - - return EntitySoundEffectPacket(soundId, soundCategory, entityId, volume, pitch, seed) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntitySoundEffectPacket) { - output.writeVarInt(value.soundId) - output.writeVarInt(value.soundCategory) - output.writeVarInt(value.entityId) - output.writeFloat(value.volume) - output.writeFloat(value.pitch) - output.writeLong(value.seed) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityStatusPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityStatusPacket.kt deleted file mode 100644 index 3cf0b54..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityStatusPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Entity Event | 0x19 | play | clientbound - * - * @param entityId entityId - * @param entityStatus entityStatus - * @see https://wiki.vg/Protocol#Entity_Event - */ - -data class EntityStatusPacket( - val entityId: Int, - val entityStatus: Byte, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityStatusPacket { - val entityId = input.readInt() - val entityStatus = input.readByte() - - return EntityStatusPacket(entityId, entityStatus) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityStatusPacket) { - output.writeInt(value.entityId) - output.writeByte(value.entityStatus) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityTeleportPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityTeleportPacket.kt deleted file mode 100644 index 1fd2cd0..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityTeleportPacket.kt +++ /dev/null @@ -1,52 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Teleport Entity | 0x64 | play | clientbound - * - * @param entityId entityId - * @param x x - * @param y y - * @param z z - * @param yaw yaw - * @param pitch pitch - * @param onGround onGround - * @see https://wiki.vg/Protocol#Teleport_Entity - */ - -data class EntityTeleportPacket( - val entityId: Int, // varint - val x: Double, - val y: Double, - val z: Double, - val yaw: Byte, - val pitch: Byte, - val onGround: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityTeleportPacket { - val entityId = input.readVarInt() - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val yaw = input.readByte() - val pitch = input.readByte() - val onGround = input.readBoolean() - - return EntityTeleportPacket(entityId, x, y, z, yaw, pitch, onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityTeleportPacket) { - output.writeVarInt(value.entityId) - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeByte(value.yaw) - output.writeByte(value.pitch) - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityUpdateAttributesPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityUpdateAttributesPacket.kt deleted file mode 100644 index 7bd8205..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityUpdateAttributesPacket.kt +++ /dev/null @@ -1,80 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Update Attributes | 0x66 | play | clientbound - * - * @param entityId entityId - * @param properties list of EntityUpdateAttributesPacketProperties - * @see https://wiki.vg/Protocol#Update_Attributes - */ - -data class EntityUpdateAttributesPacket( - val entityId: Int, // varint - val properties: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityUpdateAttributesPacket { - val entityId = input.readVarInt() - val properties = input.readVarIntArray { arrayInput -> - val key = arrayInput.readString() - val value = arrayInput.readDouble() - val modifiers = arrayInput.readVarIntArray { arrayInput1 -> - val uuid = arrayInput1.readUUID() - val amount = arrayInput1.readDouble() - val operation = arrayInput1.readByte() - - EntityUpdateAttributesPacketModifiers(uuid, amount, operation) - } - - EntityUpdateAttributesPacketProperties(key, value, modifiers) - } - - return EntityUpdateAttributesPacket(entityId, properties) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityUpdateAttributesPacket) { - output.writeVarInt(value.entityId) - - output.writeVarIntArray(value.properties) { arrayValue, arrayOutput -> - arrayOutput.writeString(arrayValue.key) - arrayOutput.writeDouble(arrayValue.value) - - arrayOutput.writeVarIntArray(arrayValue.modifiers) { arrayValue1, arrayOutput1 -> - arrayOutput1.writeUUID(arrayValue1.uuid) - arrayOutput1.writeDouble(arrayValue1.amount) - arrayOutput1.writeByte(arrayValue1.operation) - } - } - } - } -} - -/** - * EntityUpdateAttributesPacketModifiers - * - * @param uuid uuid - * @param amount amount - * @param operation operation -*/ -data class EntityUpdateAttributesPacketModifiers( - val uuid: UUID, - val amount: Double, - val operation: Byte, -) - -/** - * EntityUpdateAttributesPacketProperties - * - * @param key key - * @param value value - * @param modifiers list of EntityUpdateAttributesPacketModifiers -*/ -data class EntityUpdateAttributesPacketProperties( - val key: String, - val value: Double, - val modifiers: List, // varint array -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityVelocityPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityVelocityPacket.kt deleted file mode 100644 index ef66881..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/EntityVelocityPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Entity Velocity | 0x50 | play | clientbound - * - * @param entityId entityId - * @param velocityX velocityX - * @param velocityY velocityY - * @param velocityZ velocityZ - * @see https://wiki.vg/Protocol#Set_Entity_Velocity - */ - -data class EntityVelocityPacket( - val entityId: Int, // varint - val velocityX: Short, - val velocityY: Short, - val velocityZ: Short, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityVelocityPacket { - val entityId = input.readVarInt() - val velocityX = input.readShort() - val velocityY = input.readShort() - val velocityZ = input.readShort() - - return EntityVelocityPacket(entityId, velocityX, velocityY, velocityZ) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityVelocityPacket) { - output.writeVarInt(value.entityId) - output.writeShort(value.velocityX) - output.writeShort(value.velocityY) - output.writeShort(value.velocityZ) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ExperiencePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ExperiencePacket.kt deleted file mode 100644 index aa1faa4..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ExperiencePacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Experience | 0x52 | play | clientbound - * - * @param experienceBar experienceBar - * @param totalExperience totalExperience - * @param level level - * @see https://wiki.vg/Protocol#Set_Experience - */ - -data class ExperiencePacket( - val experienceBar: Float, - val totalExperience: Int, // varint - val level: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ExperiencePacket { - val experienceBar = input.readFloat() - val totalExperience = input.readVarInt() - val level = input.readVarInt() - - return ExperiencePacket(experienceBar, totalExperience, level) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ExperiencePacket) { - output.writeFloat(value.experienceBar) - output.writeVarInt(value.totalExperience) - output.writeVarInt(value.level) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ExplosionPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ExplosionPacket.kt deleted file mode 100644 index 4e5bab0..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ExplosionPacket.kt +++ /dev/null @@ -1,81 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Explosion | 0x1a | play | clientbound - * - * @param x x - * @param y y - * @param z z - * @param radius radius - * @param affectedBlockOffsets list of ExplosionPacketAffectedBlockOffsets - * @param playerMotionX playerMotionX - * @param playerMotionY playerMotionY - * @param playerMotionZ playerMotionZ - * @see https://wiki.vg/Protocol#Explosion - */ - -data class ExplosionPacket( - val x: Double, - val y: Double, - val z: Double, - val radius: Float, - val affectedBlockOffsets: List, // varint array - val playerMotionX: Float, - val playerMotionY: Float, - val playerMotionZ: Float, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ExplosionPacket { - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val radius = input.readFloat() - val affectedBlockOffsets = input.readVarIntArray { arrayInput -> - val x = arrayInput.readByte() - val y = arrayInput.readByte() - val z = arrayInput.readByte() - - ExplosionPacketAffectedBlockOffsets(x, y, z) - } - val playerMotionX = input.readFloat() - val playerMotionY = input.readFloat() - val playerMotionZ = input.readFloat() - - return ExplosionPacket(x, y, z, radius, affectedBlockOffsets, playerMotionX, playerMotionY, playerMotionZ) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ExplosionPacket) { - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeFloat(value.radius) - - output.writeVarIntArray(value.affectedBlockOffsets) { arrayValue, arrayOutput -> - arrayOutput.writeByte(arrayValue.x) - arrayOutput.writeByte(arrayValue.y) - arrayOutput.writeByte(arrayValue.z) - } - - output.writeFloat(value.playerMotionX) - output.writeFloat(value.playerMotionY) - output.writeFloat(value.playerMotionZ) - } - } -} - -/** - * ExplosionPacketAffectedBlockOffsets - * - * @param x x - * @param y y - * @param z z -*/ -data class ExplosionPacketAffectedBlockOffsets( - val x: Byte, - val y: Byte, - val z: Byte, -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/FacePlayerPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/FacePlayerPacket.kt deleted file mode 100644 index eba2306..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/FacePlayerPacket.kt +++ /dev/null @@ -1,64 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Look At | 0x37 | play | clientbound - * - * @param feetEyes feet_eyes - * @param x x - * @param y y - * @param z z - * @param isEntity isEntity - * @param entityId entityId - * @param entityFeetEyes entity_feet_eyes - * @see https://wiki.vg/Protocol#Look_At - */ - -data class FacePlayerPacket( - val feetEyes: Int, // varint - val x: Double, - val y: Double, - val z: Double, - val isEntity: Boolean, - val entityId: Int?, // varint - val entityFeetEyes: String?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): FacePlayerPacket { - val feetEyes = input.readVarInt() - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val isEntity = input.readBoolean() - val entityId = when (isEntity) { - true -> input.readVarInt() - else -> null - } - val entityFeetEyes = when (isEntity) { - true -> input.readString() - else -> null - } - - return FacePlayerPacket(feetEyes, x, y, z, isEntity, entityId, entityFeetEyes) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: FacePlayerPacket) { - output.writeVarInt(value.feetEyes) - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeBoolean(value.isEntity) - when (value.isEntity) { - true -> output.writeVarInt(value.entityId!!) - else -> {} - } - when (value.isEntity) { - true -> output.writeString(value.entityFeetEyes!!) - else -> {} - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/FeatureFlagsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/FeatureFlagsPacket.kt deleted file mode 100644 index cdca057..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/FeatureFlagsPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Feature Flags | 0x67 | play | clientbound - * - * @param features features - * @see https://wiki.vg/Protocol#Feature_Flags - */ - -data class FeatureFlagsPacket( - val features: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): FeatureFlagsPacket { - val features = input.readVarIntArray { arrayInput -> arrayInput.readString() } - - return FeatureFlagsPacket(features) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: FeatureFlagsPacket) { - output.writeVarIntArray(value.features) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/GameStateChangePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/GameStateChangePacket.kt deleted file mode 100644 index 2e208f6..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/GameStateChangePacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Game Event | 0x1c | play | clientbound - * - * @param reason reason - * @param gameMode gameMode - * @see https://wiki.vg/Protocol#Game_Event - */ - -data class GameStateChangePacket( - val reason: UByte, - val gameMode: Float, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): GameStateChangePacket { - val reason = input.readUByte() - val gameMode = input.readFloat() - - return GameStateChangePacket(reason, gameMode) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: GameStateChangePacket) { - output.writeUByte(value.reason) - output.writeFloat(value.gameMode) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/HeldItemSlotPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/HeldItemSlotPacket.kt deleted file mode 100644 index 2bdc3db..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/HeldItemSlotPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Held Item | 0x49 | play | clientbound - * - * @param slot slot - * @see https://wiki.vg/Protocol#Set_Held_Item - */ - -data class HeldItemSlotPacket( - val slot: Byte, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): HeldItemSlotPacket { - val slot = input.readByte() - - return HeldItemSlotPacket(slot) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: HeldItemSlotPacket) { - output.writeByte(value.slot) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/HideMessagePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/HideMessagePacket.kt deleted file mode 100644 index 0ffdd02..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/HideMessagePacket.kt +++ /dev/null @@ -1 +0,0 @@ -// TODO \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/InitializeWorldBorderPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/InitializeWorldBorderPacket.kt deleted file mode 100644 index dbb49cd..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/InitializeWorldBorderPacket.kt +++ /dev/null @@ -1,56 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Initialize World Border | 0x1e | play | clientbound - * - * @param x x - * @param z z - * @param oldDiameter oldDiameter - * @param newDiameter newDiameter - * @param speed speed - * @param portalTeleportBoundary portalTeleportBoundary - * @param warningBlocks warningBlocks - * @param warningTime warningTime - * @see https://wiki.vg/Protocol#Initialize_World_Border - */ - -data class InitializeWorldBorderPacket( - val x: Double, - val z: Double, - val oldDiameter: Double, - val newDiameter: Double, - val speed: Int, // varint - val portalTeleportBoundary: Int, // varint - val warningBlocks: Int, // varint - val warningTime: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): InitializeWorldBorderPacket { - val x = input.readDouble() - val z = input.readDouble() - val oldDiameter = input.readDouble() - val newDiameter = input.readDouble() - val speed = input.readVarInt() - val portalTeleportBoundary = input.readVarInt() - val warningBlocks = input.readVarInt() - val warningTime = input.readVarInt() - - return InitializeWorldBorderPacket(x, z, oldDiameter, newDiameter, speed, portalTeleportBoundary, warningBlocks, warningTime) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: InitializeWorldBorderPacket) { - output.writeDouble(value.x) - output.writeDouble(value.z) - output.writeDouble(value.oldDiameter) - output.writeDouble(value.newDiameter) - output.writeVarInt(value.speed) - output.writeVarInt(value.portalTeleportBoundary) - output.writeVarInt(value.warningBlocks) - output.writeVarInt(value.warningTime) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/KeepAlivePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/KeepAlivePacket.kt deleted file mode 100644 index 042f92f..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/KeepAlivePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Keep Alive | 0x1f | play | clientbound - * - * @param keepAliveId keepAliveId - * @see https://wiki.vg/Protocol#Keep_Alive - */ - -data class KeepAlivePacket( - val keepAliveId: Long, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): KeepAlivePacket { - val keepAliveId = input.readLong() - - return KeepAlivePacket(keepAliveId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: KeepAlivePacket) { - output.writeLong(value.keepAliveId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/KickDisconnectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/KickDisconnectPacket.kt deleted file mode 100644 index 9288254..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/KickDisconnectPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Disconnect (play) | 0x17 | play | clientbound - * - * @param reason reason - * @see https://wiki.vg/Protocol#Disconnect_.28play.29 - */ - -data class KickDisconnectPacket( - val reason: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): KickDisconnectPacket { - val reason = input.readString() - - return KickDisconnectPacket(reason) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: KickDisconnectPacket) { - output.writeString(value.reason) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/LoginPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/LoginPacket.kt deleted file mode 100644 index 9036b08..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/LoginPacket.kt +++ /dev/null @@ -1,101 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.NBT -import io.layercraft.packetlib.types.Position -/** - * Login (play) | 0x24 | play | clientbound - * - * @param entityId entityId - * @param isHardcore isHardcore - * @param gameMode gameMode - * @param previousGameMode previousGameMode - * @param worldNames worldNames - * @param dimensionCodec dimensionCodec - * @param worldType worldType - * @param worldName worldName - * @param hashedSeed hashedSeed - * @param maxPlayers maxPlayers - * @param viewDistance viewDistance - * @param simulationDistance simulationDistance - * @param reducedDebugInfo reducedDebugInfo - * @param enableRespawnScreen enableRespawnScreen - * @param isDebug isDebug - * @param isFlat isFlat - * @param hasDeath death is present - * @param dimensionName dimensionName - * @param location location - * @see https://wiki.vg/Protocol#Login_.28play.29 - */ - -data class LoginPacket( - val entityId: Int, - val isHardcore: Boolean, - val gameMode: UByte, - val previousGameMode: Byte, - val worldNames: List, // varint array - val dimensionCodec: NBT, - val worldType: String, - val worldName: String, - val hashedSeed: Long, - val maxPlayers: Int, // varint - val viewDistance: Int, // varint - val simulationDistance: Int, // varint - val reducedDebugInfo: Boolean, - val enableRespawnScreen: Boolean, - val isDebug: Boolean, - val isFlat: Boolean, - val hasDeath: Boolean, - val dimensionName: String?, - val location: Position?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): LoginPacket { - val entityId = input.readInt() - val isHardcore = input.readBoolean() - val gameMode = input.readUByte() - val previousGameMode = input.readByte() - val worldNames = input.readVarIntArray { arrayInput -> arrayInput.readString() } - val dimensionCodec = input.readNbt() - val worldType = input.readString() - val worldName = input.readString() - val hashedSeed = input.readLong() - val maxPlayers = input.readVarInt() - val viewDistance = input.readVarInt() - val simulationDistance = input.readVarInt() - val reducedDebugInfo = input.readBoolean() - val enableRespawnScreen = input.readBoolean() - val isDebug = input.readBoolean() - val isFlat = input.readBoolean() - val hasDeath = input.readBoolean() - val dimensionName = if (hasDeath) input.readString() else null - val location = if (hasDeath) input.readPosition() else null - - return LoginPacket(entityId, isHardcore, gameMode, previousGameMode, worldNames, dimensionCodec, worldType, worldName, hashedSeed, maxPlayers, viewDistance, simulationDistance, reducedDebugInfo, enableRespawnScreen, isDebug, isFlat, hasDeath, dimensionName, location) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: LoginPacket) { - output.writeInt(value.entityId) - output.writeBoolean(value.isHardcore) - output.writeUByte(value.gameMode) - output.writeByte(value.previousGameMode) - output.writeVarIntArray(value.worldNames) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - output.writeNbt(value.dimensionCodec) - output.writeString(value.worldType) - output.writeString(value.worldName) - output.writeLong(value.hashedSeed) - output.writeVarInt(value.maxPlayers) - output.writeVarInt(value.viewDistance) - output.writeVarInt(value.simulationDistance) - output.writeBoolean(value.reducedDebugInfo) - output.writeBoolean(value.enableRespawnScreen) - output.writeBoolean(value.isDebug) - output.writeBoolean(value.isFlat) - output.writeBoolean(value.hasDeath) - if (value.hasDeath) output.writeString(value.dimensionName!!) - if (value.hasDeath) output.writePosition(value.location!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MapChunkPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MapChunkPacket.kt deleted file mode 100644 index ce31683..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MapChunkPacket.kt +++ /dev/null @@ -1,73 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.ChunkBlockEntity -import io.layercraft.packetlib.types.NBT -/** - * Chunk Data and Update Light | 0x20 | play | clientbound - * - * @param x x - * @param z z - * @param heightmaps heightmaps - * @param chunkData chunkData - * @param blockEntities blockEntities - * @param trustEdges trustEdges - * @param skyLightMask skyLightMask - * @param blockLightMask blockLightMask - * @param emptySkyLightMask emptySkyLightMask - * @param emptyBlockLightMask emptyBlockLightMask - * @param skyLight skyLight - * @param blockLight blockLight - * @see https://wiki.vg/Protocol#Chunk_Data_and_Update_Light - */ - -data class MapChunkPacket( - val x: Int, - val z: Int, - val heightmaps: NBT, - val chunkData: ByteArray, - val blockEntities: List, // varint array - val trustEdges: Boolean, - val skyLightMask: List, // varint array - val blockLightMask: List, // varint array - val emptySkyLightMask: List, // varint array - val emptyBlockLightMask: List, // varint array - val skyLight: List>, // varint array - val blockLight: List>, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): MapChunkPacket { - val x = input.readInt() - val z = input.readInt() - val heightmaps = input.readNbt() - val chunkData = input.readVarIntByteArray() - val blockEntities = input.readVarIntArray { arrayInput -> arrayInput.readChunkBlockEntity() } - val trustEdges = input.readBoolean() - val skyLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val blockLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val emptySkyLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val emptyBlockLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val skyLight = input.readVarIntArray { arrayInput1 -> arrayInput1.readVarIntArray { arrayInput -> arrayInput.readUByte() } } - val blockLight = input.readVarIntArray { arrayInput1 -> arrayInput1.readVarIntArray { arrayInput -> arrayInput.readUByte() } } - - return MapChunkPacket(x, z, heightmaps, chunkData, blockEntities, trustEdges, skyLightMask, blockLightMask, emptySkyLightMask, emptyBlockLightMask, skyLight, blockLight) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: MapChunkPacket) { - output.writeInt(value.x) - output.writeInt(value.z) - output.writeNbt(value.heightmaps) - output.writeVarIntByteArray(value.chunkData) - output.writeVarIntArray(value.blockEntities) { arrayValue, arrayOutput -> arrayOutput.writeChunkBlockEntity(arrayValue) } - output.writeBoolean(value.trustEdges) - output.writeVarIntArray(value.skyLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.blockLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.emptySkyLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.emptyBlockLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.skyLight) { arrayValue1, arrayOutput1 -> arrayOutput1.writeVarIntArray(arrayValue1) { arrayValue, arrayOutput -> arrayOutput.writeUByte(arrayValue) } } - output.writeVarIntArray(value.blockLight) { arrayValue1, arrayOutput1 -> arrayOutput1.writeVarIntArray(arrayValue1) { arrayValue, arrayOutput -> arrayOutput.writeUByte(arrayValue) } } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MapPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MapPacket.kt deleted file mode 100644 index b193acb..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MapPacket.kt +++ /dev/null @@ -1,76 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Map Data | 0x25 | play | clientbound - * - * @param itemDamage itemDamage - * @param scale scale - * @param locked locked - * @param columns columns - * @param rows rows - * @param x x - * @param y y - * @param data data - * @see https://wiki.vg/Protocol#Map_Data - */ - -data class MapPacket( - val itemDamage: Int, // varint - val scale: Byte, - val locked: Boolean, - val columns: UByte, - val rows: UByte?, - val x: UByte?, - val y: UByte?, - val data: ByteArray?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): MapPacket { - val itemDamage = input.readVarInt() - val scale = input.readByte() - val locked = input.readBoolean() - val columns = input.readUByte() - val rows = when (columns.toInt()) { - 0 -> null - else -> input.readUByte() - } - val x = when (columns.toInt()) { - 0 -> null - else -> input.readUByte() - } - val y = when (columns.toInt()) { - 0 -> null - else -> input.readUByte() - } - val data = when (columns.toInt()) { - 0 -> null - else -> input.readVarIntByteArray() - } - - return MapPacket(itemDamage, scale, locked, columns, rows, x, y, data) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: MapPacket) { - output.writeVarInt(value.itemDamage) - output.writeByte(value.scale) - output.writeBoolean(value.locked) - output.writeUByte(value.columns) - when (value.columns.toInt()) { - else -> output.writeUByte(value.rows!!) - } - when (value.columns.toInt()) { - else -> output.writeUByte(value.x!!) - } - when (value.columns.toInt()) { - else -> output.writeUByte(value.y!!) - } - when (value.columns.toInt()) { - else -> output.writeVarIntByteArray(value.data!!) - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MultiBlockChangePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MultiBlockChangePacket.kt deleted file mode 100644 index d1247f7..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/MultiBlockChangePacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Bitfield -/** - * Update Section Blocks | 0x3f | play | clientbound - * - * @param chunkCoordinates chunkCoordinates (Name: x, Size: 22, Signed: True | Name: z, Size: 22, Signed: True | Name: y, Size: 20, Signed: True) - * @param suppressLightUpdates suppressLightUpdates - * @param records records - * @see https://wiki.vg/Protocol#Update_Section_Blocks - */ - -data class MultiBlockChangePacket( - val chunkCoordinates: Bitfield, - val suppressLightUpdates: Boolean, - val records: List, // varint array of varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): MultiBlockChangePacket { - val chunkCoordinates = Bitfield.valueOf(input.readBytes(64)) - val suppressLightUpdates = input.readBoolean() - val records = input.readVarIntArray { arrayInput -> arrayInput.readVarInt() } - - return MultiBlockChangePacket(chunkCoordinates, suppressLightUpdates, records) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: MultiBlockChangePacket) { - output.writeBytes(value.chunkCoordinates.toByteArray()) - output.writeBoolean(value.suppressLightUpdates) - output.writeVarIntArray(value.records) { arrayValue, arrayOutput -> arrayOutput.writeVarInt(arrayValue) } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/NamedEntitySpawnPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/NamedEntitySpawnPacket.kt deleted file mode 100644 index 195a869..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/NamedEntitySpawnPacket.kt +++ /dev/null @@ -1,52 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Spawn Player | 0x02 | play | clientbound - * - * @param entityId entityId - * @param playerUUID playerUUID - * @param x x - * @param y y - * @param z z - * @param yaw yaw - * @param pitch pitch - * @see https://wiki.vg/Protocol#Spawn_Player - */ - -data class NamedEntitySpawnPacket( - val entityId: Int, // varint - val playerUUID: UUID, - val x: Double, - val y: Double, - val z: Double, - val yaw: Byte, - val pitch: Byte, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): NamedEntitySpawnPacket { - val entityId = input.readVarInt() - val playerUUID = input.readUUID() - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val yaw = input.readByte() - val pitch = input.readByte() - - return NamedEntitySpawnPacket(entityId, playerUUID, x, y, z, yaw, pitch) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: NamedEntitySpawnPacket) { - output.writeVarInt(value.entityId) - output.writeUUID(value.playerUUID) - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeByte(value.yaw) - output.writeByte(value.pitch) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/NbtQueryResponsePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/NbtQueryResponsePacket.kt deleted file mode 100644 index 6efb176..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/NbtQueryResponsePacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.NBT -/** - * Tag Query Response | 0x62 | play | clientbound - * - * @param transactionId transactionId - * @param nbt nbt - * @see https://wiki.vg/Protocol#Tag_Query_Response - */ - -data class NbtQueryResponsePacket( - val transactionId: Int, // varint - val nbt: NBT, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): NbtQueryResponsePacket { - val transactionId = input.readVarInt() - val nbt = input.readNbt() - - return NbtQueryResponsePacket(transactionId, nbt) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: NbtQueryResponsePacket) { - output.writeVarInt(value.transactionId) - output.writeNbt(value.nbt) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenBookPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenBookPacket.kt deleted file mode 100644 index 2844589..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenBookPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Open Book | 0x2b | play | clientbound - * - * @param hand hand - * @see https://wiki.vg/Protocol#Open_Book - */ - -data class OpenBookPacket( - val hand: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): OpenBookPacket { - val hand = input.readVarInt() - - return OpenBookPacket(hand) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: OpenBookPacket) { - output.writeVarInt(value.hand) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenHorseWindowPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenHorseWindowPacket.kt deleted file mode 100644 index 94a6198..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenHorseWindowPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Open Horse Screen | 0x1d | play | clientbound - * - * @param windowId windowId - * @param nbSlots nbSlots - * @param entityId entityId - * @see https://wiki.vg/Protocol#Open_Horse_Screen - */ - -data class OpenHorseWindowPacket( - val windowId: UByte, - val nbSlots: Int, // varint - val entityId: Int, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): OpenHorseWindowPacket { - val windowId = input.readUByte() - val nbSlots = input.readVarInt() - val entityId = input.readInt() - - return OpenHorseWindowPacket(windowId, nbSlots, entityId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: OpenHorseWindowPacket) { - output.writeUByte(value.windowId) - output.writeVarInt(value.nbSlots) - output.writeInt(value.entityId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenSignEntityPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenSignEntityPacket.kt deleted file mode 100644 index 9631868..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenSignEntityPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Open Sign Editor | 0x2d | play | clientbound - * - * @param location location - * @see https://wiki.vg/Protocol#Open_Sign_Editor - */ - -data class OpenSignEntityPacket( - val location: Position, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): OpenSignEntityPacket { - val location = input.readPosition() - - return OpenSignEntityPacket(location) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: OpenSignEntityPacket) { - output.writePosition(value.location) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenWindowPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenWindowPacket.kt deleted file mode 100644 index 6a1d822..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/OpenWindowPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Open Screen | 0x2c | play | clientbound - * - * @param windowId windowId - * @param inventoryType inventoryType - * @param windowTitle windowTitle - * @see https://wiki.vg/Protocol#Open_Screen - */ - -data class OpenWindowPacket( - val windowId: Int, // varint - val inventoryType: Int, // varint - val windowTitle: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): OpenWindowPacket { - val windowId = input.readVarInt() - val inventoryType = input.readVarInt() - val windowTitle = input.readString() - - return OpenWindowPacket(windowId, inventoryType, windowTitle) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: OpenWindowPacket) { - output.writeVarInt(value.windowId) - output.writeVarInt(value.inventoryType) - output.writeString(value.windowTitle) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PingPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PingPacket.kt deleted file mode 100644 index 64738f7..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PingPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Ping (play) | 0x2e | play | clientbound - * - * @param id id - * @see https://wiki.vg/Protocol#Ping_.28play.29 - */ - -data class PingPacket( - val id: Int, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PingPacket { - val id = input.readInt() - - return PingPacket(id) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PingPacket) { - output.writeInt(value.id) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerChatPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerChatPacket.kt deleted file mode 100644 index 0ffdd02..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerChatPacket.kt +++ /dev/null @@ -1 +0,0 @@ -// TODO \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerInfoPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerInfoPacket.kt deleted file mode 100644 index 0ffdd02..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerInfoPacket.kt +++ /dev/null @@ -1 +0,0 @@ -// TODO \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerRemovePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerRemovePacket.kt deleted file mode 100644 index eb5188b..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerRemovePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Player Info Remove | 0x35 | play | clientbound - * - * @param players players - * @see https://wiki.vg/Protocol#Player_Info_Remove - */ - -data class PlayerRemovePacket( - val players: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PlayerRemovePacket { - val players = input.readVarIntArray { arrayInput -> arrayInput.readUUID() } - - return PlayerRemovePacket(players) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PlayerRemovePacket) { - output.writeVarIntArray(value.players) { arrayValue, arrayOutput -> arrayOutput.writeUUID(arrayValue) } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerlistHeaderPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerlistHeaderPacket.kt deleted file mode 100644 index 80f3c0d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PlayerlistHeaderPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Tab List Header And Footer | 0x61 | play | clientbound - * - * @param header header - * @param footer footer - * @see https://wiki.vg/Protocol#Set_Tab_List_Header_And_Footer - */ - -data class PlayerlistHeaderPacket( - val header: String, - val footer: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PlayerlistHeaderPacket { - val header = input.readString() - val footer = input.readString() - - return PlayerlistHeaderPacket(header, footer) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PlayerlistHeaderPacket) { - output.writeString(value.header) - output.writeString(value.footer) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PositionPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PositionPacket.kt deleted file mode 100644 index 8b53791..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/PositionPacket.kt +++ /dev/null @@ -1,56 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Synchronize Player Position | 0x38 | play | clientbound - * - * @param x x - * @param y y - * @param z z - * @param yaw yaw - * @param pitch pitch - * @param flags flags - * @param teleportId teleportId - * @param dismountVehicle dismountVehicle - * @see https://wiki.vg/Protocol#Synchronize_Player_Position - */ - -data class PositionPacket( - val x: Double, - val y: Double, - val z: Double, - val yaw: Float, - val pitch: Float, - val flags: Byte, - val teleportId: Int, // varint - val dismountVehicle: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PositionPacket { - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val yaw = input.readFloat() - val pitch = input.readFloat() - val flags = input.readByte() - val teleportId = input.readVarInt() - val dismountVehicle = input.readBoolean() - - return PositionPacket(x, y, z, yaw, pitch, flags, teleportId, dismountVehicle) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PositionPacket) { - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeFloat(value.yaw) - output.writeFloat(value.pitch) - output.writeByte(value.flags) - output.writeVarInt(value.teleportId) - output.writeBoolean(value.dismountVehicle) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ProfilelessChatPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ProfilelessChatPacket.kt deleted file mode 100644 index 7f69737..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ProfilelessChatPacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Disguised Chat Message | 0x18 | play | clientbound - * - * @param message message - * @param type type - * @param name name - * @param hasTarget target is present - * @param target target - * @see https://wiki.vg/Protocol#Disguised_Chat_Message - */ - -data class ProfilelessChatPacket( - val message: String, - val type: Int, // varint - val name: String, - val hasTarget: Boolean, - val target: String?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ProfilelessChatPacket { - val message = input.readString() - val type = input.readVarInt() - val name = input.readString() - val hasTarget = input.readBoolean() - val target = if (hasTarget) input.readString() else null - - return ProfilelessChatPacket(message, type, name, hasTarget, target) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ProfilelessChatPacket) { - output.writeString(value.message) - output.writeVarInt(value.type) - output.writeString(value.name) - output.writeBoolean(value.hasTarget) - if (value.hasTarget) output.writeString(value.target!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RelEntityMovePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RelEntityMovePacket.kt deleted file mode 100644 index 0abf944..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RelEntityMovePacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Entity Position | 0x27 | play | clientbound - * - * @param entityId entityId - * @param dX dX - * @param dY dY - * @param dZ dZ - * @param onGround onGround - * @see https://wiki.vg/Protocol#Update_Entity_Position - */ - -data class RelEntityMovePacket( - val entityId: Int, // varint - val dX: Short, - val dY: Short, - val dZ: Short, - val onGround: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): RelEntityMovePacket { - val entityId = input.readVarInt() - val dX = input.readShort() - val dY = input.readShort() - val dZ = input.readShort() - val onGround = input.readBoolean() - - return RelEntityMovePacket(entityId, dX, dY, dZ, onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: RelEntityMovePacket) { - output.writeVarInt(value.entityId) - output.writeShort(value.dX) - output.writeShort(value.dY) - output.writeShort(value.dZ) - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RemoveEntityEffectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RemoveEntityEffectPacket.kt deleted file mode 100644 index 3cf5ff8..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RemoveEntityEffectPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Remove Entity Effect | 0x3b | play | clientbound - * - * @param entityId entityId - * @param effectId effectId - * @see https://wiki.vg/Protocol#Remove_Entity_Effect - */ - -data class RemoveEntityEffectPacket( - val entityId: Int, // varint - val effectId: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): RemoveEntityEffectPacket { - val entityId = input.readVarInt() - val effectId = input.readVarInt() - - return RemoveEntityEffectPacket(entityId, effectId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: RemoveEntityEffectPacket) { - output.writeVarInt(value.entityId) - output.writeVarInt(value.effectId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ResourcePackSendPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ResourcePackSendPacket.kt deleted file mode 100644 index b74ac73..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ResourcePackSendPacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Resource Pack | 0x3c | play | clientbound - * - * @param url url - * @param hash hash - * @param forced forced - * @param hasPromptMessage promptMessage is present - * @param promptMessage promptMessage - * @see https://wiki.vg/Protocol#Resource_Pack - */ - -data class ResourcePackSendPacket( - val url: String, - val hash: String, - val forced: Boolean, - val hasPromptMessage: Boolean, - val promptMessage: String?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ResourcePackSendPacket { - val url = input.readString() - val hash = input.readString() - val forced = input.readBoolean() - val hasPromptMessage = input.readBoolean() - val promptMessage = if (hasPromptMessage) input.readString() else null - - return ResourcePackSendPacket(url, hash, forced, hasPromptMessage, promptMessage) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ResourcePackSendPacket) { - output.writeString(value.url) - output.writeString(value.hash) - output.writeBoolean(value.forced) - output.writeBoolean(value.hasPromptMessage) - if (value.hasPromptMessage) output.writeString(value.promptMessage!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RespawnPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RespawnPacket.kt deleted file mode 100644 index 6160274..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/RespawnPacket.kt +++ /dev/null @@ -1,68 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Respawn | 0x3d | play | clientbound - * - * @param dimension dimension - * @param worldName worldName - * @param hashedSeed hashedSeed - * @param gamemode gamemode - * @param previousGamemode previousGamemode - * @param isDebug isDebug - * @param isFlat isFlat - * @param copyMetadata copyMetadata - * @param hasDeath death is present - * @param dimensionName dimensionName - * @param location location - * @see https://wiki.vg/Protocol#Respawn - */ - -data class RespawnPacket( - val dimension: String, - val worldName: String, - val hashedSeed: Long, - val gamemode: Byte, - val previousGamemode: UByte, - val isDebug: Boolean, - val isFlat: Boolean, - val copyMetadata: Boolean, - val hasDeath: Boolean, - val dimensionName: String?, - val location: Position?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): RespawnPacket { - val dimension = input.readString() - val worldName = input.readString() - val hashedSeed = input.readLong() - val gamemode = input.readByte() - val previousGamemode = input.readUByte() - val isDebug = input.readBoolean() - val isFlat = input.readBoolean() - val copyMetadata = input.readBoolean() - val hasDeath = input.readBoolean() - val dimensionName = if (hasDeath) input.readString() else null - val location = if (hasDeath) input.readPosition() else null - - return RespawnPacket(dimension, worldName, hashedSeed, gamemode, previousGamemode, isDebug, isFlat, copyMetadata, hasDeath, dimensionName, location) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: RespawnPacket) { - output.writeString(value.dimension) - output.writeString(value.worldName) - output.writeLong(value.hashedSeed) - output.writeByte(value.gamemode) - output.writeUByte(value.previousGamemode) - output.writeBoolean(value.isDebug) - output.writeBoolean(value.isFlat) - output.writeBoolean(value.copyMetadata) - output.writeBoolean(value.hasDeath) - if (value.hasDeath) output.writeString(value.dimensionName!!) - if (value.hasDeath) output.writePosition(value.location!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardDisplayObjectivePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardDisplayObjectivePacket.kt deleted file mode 100644 index afe729c..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardDisplayObjectivePacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Display Objective | 0x4d | play | clientbound - * - * @param position position - * @param name name - * @see https://wiki.vg/Protocol#Display_Objective - */ - -data class ScoreboardDisplayObjectivePacket( - val position: Byte, - val name: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ScoreboardDisplayObjectivePacket { - val position = input.readByte() - val name = input.readString() - - return ScoreboardDisplayObjectivePacket(position, name) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ScoreboardDisplayObjectivePacket) { - output.writeByte(value.position) - output.writeString(value.name) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardObjectivePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardObjectivePacket.kt deleted file mode 100644 index e2ff634..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardObjectivePacket.kt +++ /dev/null @@ -1,56 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Objectives | 0x54 | play | clientbound - * - * @param name name - * @param action action - * @param displayText displayText - * @param type type - * @see https://wiki.vg/Protocol#Update_Objectives - */ - -data class ScoreboardObjectivePacket( - val name: String, - val action: Byte, - val displayText: String?, - val type: Int?, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ScoreboardObjectivePacket { - val name = input.readString() - val action = input.readByte() - val displayText = when (action.toInt()) { - 0 -> input.readString() - 2 -> input.readString() - else -> null - } - val type = when (action.toInt()) { - 0 -> input.readVarInt() - 2 -> input.readVarInt() - else -> null - } - - return ScoreboardObjectivePacket(name, action, displayText, type) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ScoreboardObjectivePacket) { - output.writeString(value.name) - output.writeByte(value.action) - when (value.action.toInt()) { - 0 -> output.writeString(value.displayText!!) - 2 -> output.writeString(value.displayText!!) - else -> {} - } - when (value.action.toInt()) { - 0 -> output.writeVarInt(value.type!!) - 2 -> output.writeVarInt(value.type!!) - else -> {} - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardScorePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardScorePacket.kt deleted file mode 100644 index 65e746e..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ScoreboardScorePacket.kt +++ /dev/null @@ -1,45 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Score | 0x57 | play | clientbound - * - * @param itemName itemName - * @param action action - * @param scoreName scoreName - * @param value value - * @see https://wiki.vg/Protocol#Update_Score - */ - -data class ScoreboardScorePacket( - val itemName: String, - val action: Int, // varint - val scoreName: String, - val value: Int?, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ScoreboardScorePacket { - val itemName = input.readString() - val action = input.readVarInt() - val scoreName = input.readString() - val value = when (action) { - 1 -> null - else -> input.readVarInt() - } - - return ScoreboardScorePacket(itemName, action, scoreName, value) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ScoreboardScorePacket) { - output.writeString(value.itemName) - output.writeVarInt(value.action) - output.writeString(value.scoreName) - when (value.action) { - else -> output.writeVarInt(value.value!!) - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SelectAdvancementTabPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SelectAdvancementTabPacket.kt deleted file mode 100644 index beb18b2..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SelectAdvancementTabPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Select Advancements Tab | 0x40 | play | clientbound - * - * @param hasId id is present - * @param id id - * @see https://wiki.vg/Protocol#Select_Advancements_Tab - */ - -data class SelectAdvancementTabPacket( - val hasId: Boolean, - val id: String?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SelectAdvancementTabPacket { - val hasId = input.readBoolean() - val id = if (hasId) input.readString() else null - - return SelectAdvancementTabPacket(hasId, id) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SelectAdvancementTabPacket) { - output.writeBoolean(value.hasId) - if (value.hasId) output.writeString(value.id!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ServerDataPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ServerDataPacket.kt deleted file mode 100644 index 14563d9..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/ServerDataPacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Server Data | 0x41 | play | clientbound - * - * @param hasMotd motd is present - * @param motd motd - * @param hasIcon icon is present - * @param icon icon - * @param enforcesSecureChat enforcesSecureChat - * @see https://wiki.vg/Protocol#Server_Data - */ - -data class ServerDataPacket( - val hasMotd: Boolean, - val motd: String?, - val hasIcon: Boolean, - val icon: String?, - val enforcesSecureChat: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ServerDataPacket { - val hasMotd = input.readBoolean() - val motd = if (hasMotd) input.readString() else null - val hasIcon = input.readBoolean() - val icon = if (hasIcon) input.readString() else null - val enforcesSecureChat = input.readBoolean() - - return ServerDataPacket(hasMotd, motd, hasIcon, icon, enforcesSecureChat) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ServerDataPacket) { - output.writeBoolean(value.hasMotd) - if (value.hasMotd) output.writeString(value.motd!!) - output.writeBoolean(value.hasIcon) - if (value.hasIcon) output.writeString(value.icon!!) - output.writeBoolean(value.enforcesSecureChat) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetCooldownPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetCooldownPacket.kt deleted file mode 100644 index a4a7632..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetCooldownPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Cooldown | 0x13 | play | clientbound - * - * @param itemID itemID - * @param cooldownTicks cooldownTicks - * @see https://wiki.vg/Protocol#Set_Cooldown - */ - -data class SetCooldownPacket( - val itemID: Int, // varint - val cooldownTicks: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetCooldownPacket { - val itemID = input.readVarInt() - val cooldownTicks = input.readVarInt() - - return SetCooldownPacket(itemID, cooldownTicks) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetCooldownPacket) { - output.writeVarInt(value.itemID) - output.writeVarInt(value.cooldownTicks) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetPassengersPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetPassengersPacket.kt deleted file mode 100644 index b6fbd38..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetPassengersPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Passengers | 0x55 | play | clientbound - * - * @param entityId entityId - * @param passengers passengers - * @see https://wiki.vg/Protocol#Set_Passengers - */ - -data class SetPassengersPacket( - val entityId: Int, // varint - val passengers: List, // varint array of varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetPassengersPacket { - val entityId = input.readVarInt() - val passengers = input.readVarIntArray { arrayInput -> arrayInput.readVarInt() } - - return SetPassengersPacket(entityId, passengers) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetPassengersPacket) { - output.writeVarInt(value.entityId) - output.writeVarIntArray(value.passengers) { arrayValue, arrayOutput -> arrayOutput.writeVarInt(arrayValue) } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetSlotPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetSlotPacket.kt deleted file mode 100644 index 09b158e..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetSlotPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Container Slot | 0x12 | play | clientbound - * - * @param windowId windowId - * @param stateId stateId - * @param slot slot - * @see https://wiki.vg/Protocol#Set_Container_Slot - */ - -data class SetSlotPacket( - val windowId: Byte, - val stateId: Int, // varint - val slot: Short, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetSlotPacket { - val windowId = input.readByte() - val stateId = input.readVarInt() - val slot = input.readShort() - - return SetSlotPacket(windowId, stateId, slot) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetSlotPacket) { - output.writeByte(value.windowId) - output.writeVarInt(value.stateId) - output.writeShort(value.slot) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleSubtitlePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleSubtitlePacket.kt deleted file mode 100644 index dd36e04..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleSubtitlePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Subtitle Text | 0x59 | play | clientbound - * - * @param text text - * @see https://wiki.vg/Protocol#Set_Subtitle_Text - */ - -data class SetTitleSubtitlePacket( - val text: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetTitleSubtitlePacket { - val text = input.readString() - - return SetTitleSubtitlePacket(text) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetTitleSubtitlePacket) { - output.writeString(value.text) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleTextPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleTextPacket.kt deleted file mode 100644 index 31a99ae..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleTextPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Title Text | 0x5b | play | clientbound - * - * @param text text - * @see https://wiki.vg/Protocol#Set_Title_Text - */ - -data class SetTitleTextPacket( - val text: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetTitleTextPacket { - val text = input.readString() - - return SetTitleTextPacket(text) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetTitleTextPacket) { - output.writeString(value.text) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleTimePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleTimePacket.kt deleted file mode 100644 index 9144648..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SetTitleTimePacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Title Animation Times | 0x5c | play | clientbound - * - * @param fadeIn fadeIn - * @param stay stay - * @param fadeOut fadeOut - * @see https://wiki.vg/Protocol#Set_Title_Animation_Times - */ - -data class SetTitleTimePacket( - val fadeIn: Int, - val stay: Int, - val fadeOut: Int, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetTitleTimePacket { - val fadeIn = input.readInt() - val stay = input.readInt() - val fadeOut = input.readInt() - - return SetTitleTimePacket(fadeIn, stay, fadeOut) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetTitleTimePacket) { - output.writeInt(value.fadeIn) - output.writeInt(value.stay) - output.writeInt(value.fadeOut) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SimulationDistancePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SimulationDistancePacket.kt deleted file mode 100644 index bf9b679..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SimulationDistancePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Simulation Distance | 0x58 | play | clientbound - * - * @param distance distance - * @see https://wiki.vg/Protocol#Set_Simulation_Distance - */ - -data class SimulationDistancePacket( - val distance: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SimulationDistancePacket { - val distance = input.readVarInt() - - return SimulationDistancePacket(distance) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SimulationDistancePacket) { - output.writeVarInt(value.distance) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SoundEffectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SoundEffectPacket.kt deleted file mode 100644 index e9daaca..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SoundEffectPacket.kt +++ /dev/null @@ -1,56 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Sound Effect | 0x5e | play | clientbound - * - * @param soundId soundId - * @param soundCategory soundCategory - * @param x x - * @param y y - * @param z z - * @param volume volume - * @param pitch pitch - * @param seed seed - * @see https://wiki.vg/Protocol#Sound_Effect - */ - -data class SoundEffectPacket( - val soundId: Int, // varint - val soundCategory: Int, // varint - val x: Int, - val y: Int, - val z: Int, - val volume: Float, - val pitch: Float, - val seed: Long, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SoundEffectPacket { - val soundId = input.readVarInt() - val soundCategory = input.readVarInt() - val x = input.readInt() - val y = input.readInt() - val z = input.readInt() - val volume = input.readFloat() - val pitch = input.readFloat() - val seed = input.readLong() - - return SoundEffectPacket(soundId, soundCategory, x, y, z, volume, pitch, seed) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SoundEffectPacket) { - output.writeVarInt(value.soundId) - output.writeVarInt(value.soundCategory) - output.writeInt(value.x) - output.writeInt(value.y) - output.writeInt(value.z) - output.writeFloat(value.volume) - output.writeFloat(value.pitch) - output.writeLong(value.seed) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnEntityExperienceOrbPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnEntityExperienceOrbPacket.kt deleted file mode 100644 index 5608f47..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnEntityExperienceOrbPacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Spawn Experience Orb | 0x01 | play | clientbound - * - * @param entityId entityId - * @param x x - * @param y y - * @param z z - * @param count count - * @see https://wiki.vg/Protocol#Spawn_Experience_Orb - */ - -data class SpawnEntityExperienceOrbPacket( - val entityId: Int, // varint - val x: Double, - val y: Double, - val z: Double, - val count: Short, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SpawnEntityExperienceOrbPacket { - val entityId = input.readVarInt() - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val count = input.readShort() - - return SpawnEntityExperienceOrbPacket(entityId, x, y, z, count) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SpawnEntityExperienceOrbPacket) { - output.writeVarInt(value.entityId) - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeShort(value.count) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnEntityPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnEntityPacket.kt deleted file mode 100644 index 97e8b1a..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnEntityPacket.kt +++ /dev/null @@ -1,76 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Spawn Entity | 0x00 | play | clientbound - * - * @param entityId entityId - * @param objectUUID objectUUID - * @param type type - * @param x x - * @param y y - * @param z z - * @param pitch pitch - * @param yaw yaw - * @param headPitch headPitch - * @param objectData objectData - * @param velocityX velocityX - * @param velocityY velocityY - * @param velocityZ velocityZ - * @see https://wiki.vg/Protocol#Spawn_Entity - */ - -data class SpawnEntityPacket( - val entityId: Int, // varint - val objectUUID: UUID, - val type: Int, // varint - val x: Double, - val y: Double, - val z: Double, - val pitch: Byte, - val yaw: Byte, - val headPitch: Byte, - val objectData: Int, // varint - val velocityX: Short, - val velocityY: Short, - val velocityZ: Short, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SpawnEntityPacket { - val entityId = input.readVarInt() - val objectUUID = input.readUUID() - val type = input.readVarInt() - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val pitch = input.readByte() - val yaw = input.readByte() - val headPitch = input.readByte() - val objectData = input.readVarInt() - val velocityX = input.readShort() - val velocityY = input.readShort() - val velocityZ = input.readShort() - - return SpawnEntityPacket(entityId, objectUUID, type, x, y, z, pitch, yaw, headPitch, objectData, velocityX, velocityY, velocityZ) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SpawnEntityPacket) { - output.writeVarInt(value.entityId) - output.writeUUID(value.objectUUID) - output.writeVarInt(value.type) - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeByte(value.pitch) - output.writeByte(value.yaw) - output.writeByte(value.headPitch) - output.writeVarInt(value.objectData) - output.writeShort(value.velocityX) - output.writeShort(value.velocityY) - output.writeShort(value.velocityZ) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnPositionPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnPositionPacket.kt deleted file mode 100644 index 804535c..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SpawnPositionPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Set Default Spawn Position | 0x4c | play | clientbound - * - * @param location location - * @param angle angle - * @see https://wiki.vg/Protocol#Set_Default_Spawn_Position - */ - -data class SpawnPositionPacket( - val location: Position, - val angle: Float, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SpawnPositionPacket { - val location = input.readPosition() - val angle = input.readFloat() - - return SpawnPositionPacket(location, angle) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SpawnPositionPacket) { - output.writePosition(value.location) - output.writeFloat(value.angle) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/StatisticsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/StatisticsPacket.kt deleted file mode 100644 index 8bcf59b..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/StatisticsPacket.kt +++ /dev/null @@ -1,51 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Award Statistics | 0x04 | play | clientbound - * - * @param entries list of StatisticsPacketEntries - * @see https://wiki.vg/Protocol#Award_Statistics - */ - -data class StatisticsPacket( - val entries: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): StatisticsPacket { - val entries = input.readVarIntArray { arrayInput -> - val categoryId = arrayInput.readVarInt() - val statisticId = arrayInput.readVarInt() - val value = arrayInput.readVarInt() - - StatisticsPacketEntries(categoryId, statisticId, value) - } - - return StatisticsPacket(entries) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: StatisticsPacket) { - output.writeVarIntArray(value.entries) { arrayValue, arrayOutput -> - arrayOutput.writeVarInt(arrayValue.categoryId) - arrayOutput.writeVarInt(arrayValue.statisticId) - arrayOutput.writeVarInt(arrayValue.value) - } - } - } -} - -/** - * StatisticsPacketEntries - * - * @param categoryId categoryId - * @param statisticId statisticId - * @param value value -*/ -data class StatisticsPacketEntries( - val categoryId: Int, // varint - val statisticId: Int, // varint - val value: Int, // varint -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/StopSoundPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/StopSoundPacket.kt deleted file mode 100644 index ed3b135..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/StopSoundPacket.kt +++ /dev/null @@ -1,52 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Stop Sound | 0x5f | play | clientbound - * - * @param flags flags - * @param source source - * @param sound sound - * @see https://wiki.vg/Protocol#Stop_Sound - */ - -data class StopSoundPacket( - val flags: Byte, - val source: Int?, // varint - val sound: String?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): StopSoundPacket { - val flags = input.readByte() - val source = when (flags.toInt()) { - 3 -> input.readVarInt() - 1 -> input.readVarInt() - else -> null - } - val sound = when (flags.toInt()) { - 3 -> input.readString() - 2 -> input.readString() - else -> null - } - - return StopSoundPacket(flags, source, sound) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: StopSoundPacket) { - output.writeByte(value.flags) - when (value.flags.toInt()) { - 3 -> output.writeVarInt(value.source!!) - 1 -> output.writeVarInt(value.source!!) - else -> {} - } - when (value.flags.toInt()) { - 3 -> output.writeString(value.sound!!) - 2 -> output.writeString(value.sound!!) - else -> {} - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SystemChatPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SystemChatPacket.kt deleted file mode 100644 index c6d8084..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/SystemChatPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * System Chat Message | 0x60 | play | clientbound - * - * @param content content - * @param isActionBar isActionBar - * @see https://wiki.vg/Protocol#System_Chat_Message - */ - -data class SystemChatPacket( - val content: String, - val isActionBar: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SystemChatPacket { - val content = input.readString() - val isActionBar = input.readBoolean() - - return SystemChatPacket(content, isActionBar) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SystemChatPacket) { - output.writeString(value.content) - output.writeBoolean(value.isActionBar) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TabCompletePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TabCompletePacket.kt deleted file mode 100644 index 5ed2575..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TabCompletePacket.kt +++ /dev/null @@ -1,64 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Command Suggestions Response | 0x0d | play | clientbound - * - * @param transactionId transactionId - * @param start start - * @param length length - * @param matches list of TabCompletePacketMatches - * @see https://wiki.vg/Protocol#Command_Suggestions_Response - */ - -data class TabCompletePacket( - val transactionId: Int, // varint - val start: Int, // varint - val length: Int, // varint - val matches: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): TabCompletePacket { - val transactionId = input.readVarInt() - val start = input.readVarInt() - val length = input.readVarInt() - val matches = input.readVarIntArray { arrayInput -> - val match = arrayInput.readString() - val hasTooltip = arrayInput.readBoolean() - val tooltip = if (hasTooltip) arrayInput.readString() else null - - TabCompletePacketMatches(match, hasTooltip, tooltip) - } - - return TabCompletePacket(transactionId, start, length, matches) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: TabCompletePacket) { - output.writeVarInt(value.transactionId) - output.writeVarInt(value.start) - output.writeVarInt(value.length) - - output.writeVarIntArray(value.matches) { arrayValue, arrayOutput -> - arrayOutput.writeString(arrayValue.match) - arrayOutput.writeBoolean(arrayValue.hasTooltip) - if (arrayValue.hasTooltip) arrayOutput.writeString(arrayValue.tooltip!!) - } - } - } -} - -/** - * TabCompletePacketMatches - * - * @param match match - * @param hasTooltip tooltip is present - * @param tooltip tooltip -*/ -data class TabCompletePacketMatches( - val match: String, - val hasTooltip: Boolean, - val tooltip: String?, -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TagsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TagsPacket.kt deleted file mode 100644 index f9a8ab4..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TagsPacket.kt +++ /dev/null @@ -1,43 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Tags | 0x6a | play | clientbound - * - * @param tags list of TagsPacketTags - * @see https://wiki.vg/Protocol#Update_Tags - */ - -data class TagsPacket( - val tags: List, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): TagsPacket { - val tags = input.readVarIntArray { arrayInput -> - val tagType = arrayInput.readString() - - TagsPacketTags(tagType) - } - - return TagsPacket(tags) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: TagsPacket) { - output.writeVarIntArray(value.tags) { arrayValue, arrayOutput -> - arrayOutput.writeString(arrayValue.tagType) - } - } - } -} - -/** - * TagsPacketTags - * - * @param tagType tagType -*/ -data class TagsPacketTags( - val tagType: String, -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TeamsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TeamsPacket.kt deleted file mode 100644 index feff121..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TeamsPacket.kt +++ /dev/null @@ -1,130 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Teams | 0x56 | play | clientbound - * - * @param team team - * @param mode mode - * @param name name - * @param friendlyFire friendlyFire - * @param nameTagVisibility nameTagVisibility - * @param collisionRule collisionRule - * @param formatting formatting - * @param prefix prefix - * @param suffix suffix - * @param players players - * @see https://wiki.vg/Protocol#Update_Teams - */ - -data class TeamsPacket( - val team: String, - val mode: Byte, - val name: String?, - val friendlyFire: Byte?, - val nameTagVisibility: String?, - val collisionRule: String?, - val formatting: Int?, // varint - val prefix: String?, - val suffix: String?, - val players: List?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): TeamsPacket { - val team = input.readString() - val mode = input.readByte() - val name = when (mode.toInt()) { - 0 -> input.readString() - 2 -> input.readString() - else -> null - } - val friendlyFire = when (mode.toInt()) { - 0 -> input.readByte() - 2 -> input.readByte() - else -> null - } - val nameTagVisibility = when (mode.toInt()) { - 0 -> input.readString() - 2 -> input.readString() - else -> null - } - val collisionRule = when (mode.toInt()) { - 0 -> input.readString() - 2 -> input.readString() - else -> null - } - val formatting = when (mode.toInt()) { - 0 -> input.readVarInt() - 2 -> input.readVarInt() - else -> null - } - val prefix = when (mode.toInt()) { - 0 -> input.readString() - 2 -> input.readString() - else -> null - } - val suffix = when (mode.toInt()) { - 0 -> input.readString() - 2 -> input.readString() - else -> null - } - val players = when (mode.toInt()) { - 0 -> input.readVarIntArray { arrayInput -> arrayInput.readString() } - 3 -> input.readVarIntArray { arrayInput -> arrayInput.readString() } - 4 -> input.readVarIntArray { arrayInput -> arrayInput.readString() } - else -> null - } - - return TeamsPacket(team, mode, name, friendlyFire, nameTagVisibility, collisionRule, formatting, prefix, suffix, players) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: TeamsPacket) { - output.writeString(value.team) - output.writeByte(value.mode) - when (value.mode.toInt()) { - 0 -> output.writeString(value.name!!) - 2 -> output.writeString(value.name!!) - else -> {} - } - when (value.mode.toInt()) { - 0 -> output.writeByte(value.friendlyFire!!) - 2 -> output.writeByte(value.friendlyFire!!) - else -> {} - } - when (value.mode.toInt()) { - 0 -> output.writeString(value.nameTagVisibility!!) - 2 -> output.writeString(value.nameTagVisibility!!) - else -> {} - } - when (value.mode.toInt()) { - 0 -> output.writeString(value.collisionRule!!) - 2 -> output.writeString(value.collisionRule!!) - else -> {} - } - when (value.mode.toInt()) { - 0 -> output.writeVarInt(value.formatting!!) - 2 -> output.writeVarInt(value.formatting!!) - else -> {} - } - when (value.mode.toInt()) { - 0 -> output.writeString(value.prefix!!) - 2 -> output.writeString(value.prefix!!) - else -> {} - } - when (value.mode.toInt()) { - 0 -> output.writeString(value.suffix!!) - 2 -> output.writeString(value.suffix!!) - else -> {} - } - when (value.mode.toInt()) { - 0 -> output.writeVarIntArray(value.players!!) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - 3 -> output.writeVarIntArray(value.players!!) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - 4 -> output.writeVarIntArray(value.players!!) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - else -> {} - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TileEntityDataPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TileEntityDataPacket.kt deleted file mode 100644 index cb45bb0..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TileEntityDataPacket.kt +++ /dev/null @@ -1,37 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.NBT -import io.layercraft.packetlib.types.Position -/** - * Block Entity Data | 0x07 | play | clientbound - * - * @param location location - * @param action action - * @param nbtData nbtData - * @see https://wiki.vg/Protocol#Block_Entity_Data - */ - -data class TileEntityDataPacket( - val location: Position, - val action: Int, // varint - val nbtData: NBT, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): TileEntityDataPacket { - val location = input.readPosition() - val action = input.readVarInt() - val nbtData = input.readNbt() - - return TileEntityDataPacket(location, action, nbtData) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: TileEntityDataPacket) { - output.writePosition(value.location) - output.writeVarInt(value.action) - output.writeNbt(value.nbtData) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TradeListPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TradeListPacket.kt deleted file mode 100644 index 93c2663..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/TradeListPacket.kt +++ /dev/null @@ -1,89 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Merchant Offers | 0x26 | play | clientbound - * - * @param windowId windowId - * @param trades list of TradeListPacketTrades - * @param villagerLevel villagerLevel - * @param experience experience - * @param isRegularVillager isRegularVillager - * @param canRestock canRestock - * @see https://wiki.vg/Protocol#Merchant_Offers - */ - -data class TradeListPacket( - val windowId: Int, // varint - val trades: List, // varint array - val villagerLevel: Int, // varint - val experience: Int, // varint - val isRegularVillager: Boolean, - val canRestock: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): TradeListPacket { - val windowId = input.readVarInt() - val trades = input.readVarIntArray { arrayInput -> - val tradeDisabled = arrayInput.readBoolean() - val nbTradeUses = arrayInput.readInt() - val maximumNbTradeUses = arrayInput.readInt() - val xp = arrayInput.readInt() - val specialPrice = arrayInput.readInt() - val priceMultiplier = arrayInput.readFloat() - val demand = arrayInput.readInt() - - TradeListPacketTrades(tradeDisabled, nbTradeUses, maximumNbTradeUses, xp, specialPrice, priceMultiplier, demand) - } - val villagerLevel = input.readVarInt() - val experience = input.readVarInt() - val isRegularVillager = input.readBoolean() - val canRestock = input.readBoolean() - - return TradeListPacket(windowId, trades, villagerLevel, experience, isRegularVillager, canRestock) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: TradeListPacket) { - output.writeVarInt(value.windowId) - - output.writeVarIntArray(value.trades) { arrayValue, arrayOutput -> - arrayOutput.writeBoolean(arrayValue.tradeDisabled) - arrayOutput.writeInt(arrayValue.nbTradeUses) - arrayOutput.writeInt(arrayValue.maximumNbTradeUses) - arrayOutput.writeInt(arrayValue.xp) - arrayOutput.writeInt(arrayValue.specialPrice) - arrayOutput.writeFloat(arrayValue.priceMultiplier) - arrayOutput.writeInt(arrayValue.demand) - } - - output.writeVarInt(value.villagerLevel) - output.writeVarInt(value.experience) - output.writeBoolean(value.isRegularVillager) - output.writeBoolean(value.canRestock) - } - } -} - -/** - * TradeListPacketTrades - * - * @param tradeDisabled tradeDisabled - * @param nbTradeUses nbTradeUses - * @param maximumNbTradeUses maximumNbTradeUses - * @param xp xp - * @param specialPrice specialPrice - * @param priceMultiplier priceMultiplier - * @param demand demand -*/ -data class TradeListPacketTrades( - val tradeDisabled: Boolean, - val nbTradeUses: Int, - val maximumNbTradeUses: Int, - val xp: Int, - val specialPrice: Int, - val priceMultiplier: Float, - val demand: Int, -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UnloadChunkPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UnloadChunkPacket.kt deleted file mode 100644 index 5836cf5..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UnloadChunkPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Unload Chunk | 0x1b | play | clientbound - * - * @param chunkX chunkX - * @param chunkZ chunkZ - * @see https://wiki.vg/Protocol#Unload_Chunk - */ - -data class UnloadChunkPacket( - val chunkX: Int, - val chunkZ: Int, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UnloadChunkPacket { - val chunkX = input.readInt() - val chunkZ = input.readInt() - - return UnloadChunkPacket(chunkX, chunkZ) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UnloadChunkPacket) { - output.writeInt(value.chunkX) - output.writeInt(value.chunkZ) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UnlockRecipesPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UnlockRecipesPacket.kt deleted file mode 100644 index 4323bd1..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UnlockRecipesPacket.kt +++ /dev/null @@ -1,74 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Recipe Book | 0x39 | play | clientbound - * - * @param action action - * @param craftingBookOpen craftingBookOpen - * @param filteringCraftable filteringCraftable - * @param smeltingBookOpen smeltingBookOpen - * @param filteringSmeltable filteringSmeltable - * @param blastFurnaceOpen blastFurnaceOpen - * @param filteringBlastFurnace filteringBlastFurnace - * @param smokerBookOpen smokerBookOpen - * @param filteringSmoker filteringSmoker - * @param recipes1 recipes1 - * @param recipes2 recipes2 - * @see https://wiki.vg/Protocol#Update_Recipe_Book - */ - -data class UnlockRecipesPacket( - val action: Int, // varint - val craftingBookOpen: Boolean, - val filteringCraftable: Boolean, - val smeltingBookOpen: Boolean, - val filteringSmeltable: Boolean, - val blastFurnaceOpen: Boolean, - val filteringBlastFurnace: Boolean, - val smokerBookOpen: Boolean, - val filteringSmoker: Boolean, - val recipes1: List, // varint array - val recipes2: List?, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UnlockRecipesPacket { - val action = input.readVarInt() - val craftingBookOpen = input.readBoolean() - val filteringCraftable = input.readBoolean() - val smeltingBookOpen = input.readBoolean() - val filteringSmeltable = input.readBoolean() - val blastFurnaceOpen = input.readBoolean() - val filteringBlastFurnace = input.readBoolean() - val smokerBookOpen = input.readBoolean() - val filteringSmoker = input.readBoolean() - val recipes1 = input.readVarIntArray { arrayInput -> arrayInput.readString() } - val recipes2 = when (action) { - 0 -> input.readVarIntArray { arrayInput -> arrayInput.readString() } - else -> null - } - - return UnlockRecipesPacket(action, craftingBookOpen, filteringCraftable, smeltingBookOpen, filteringSmeltable, blastFurnaceOpen, filteringBlastFurnace, smokerBookOpen, filteringSmoker, recipes1, recipes2) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UnlockRecipesPacket) { - output.writeVarInt(value.action) - output.writeBoolean(value.craftingBookOpen) - output.writeBoolean(value.filteringCraftable) - output.writeBoolean(value.smeltingBookOpen) - output.writeBoolean(value.filteringSmeltable) - output.writeBoolean(value.blastFurnaceOpen) - output.writeBoolean(value.filteringBlastFurnace) - output.writeBoolean(value.smokerBookOpen) - output.writeBoolean(value.filteringSmoker) - output.writeVarIntArray(value.recipes1) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - when (value.action) { - 0 -> output.writeVarIntArray(value.recipes2!!) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - else -> {} - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateHealthPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateHealthPacket.kt deleted file mode 100644 index ef2ff7f..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateHealthPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Health | 0x53 | play | clientbound - * - * @param health health - * @param food food - * @param foodSaturation foodSaturation - * @see https://wiki.vg/Protocol#Set_Health - */ - -data class UpdateHealthPacket( - val health: Float, - val food: Int, // varint - val foodSaturation: Float, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateHealthPacket { - val health = input.readFloat() - val food = input.readVarInt() - val foodSaturation = input.readFloat() - - return UpdateHealthPacket(health, food, foodSaturation) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateHealthPacket) { - output.writeFloat(value.health) - output.writeVarInt(value.food) - output.writeFloat(value.foodSaturation) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateLightPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateLightPacket.kt deleted file mode 100644 index bd24dd7..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateLightPacket.kt +++ /dev/null @@ -1,60 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Light | 0x23 | play | clientbound - * - * @param chunkX chunkX - * @param chunkZ chunkZ - * @param trustEdges trustEdges - * @param skyLightMask skyLightMask - * @param blockLightMask blockLightMask - * @param emptySkyLightMask emptySkyLightMask - * @param emptyBlockLightMask emptyBlockLightMask - * @param skyLight skyLight - * @param blockLight blockLight - * @see https://wiki.vg/Protocol#Update_Light - */ - -data class UpdateLightPacket( - val chunkX: Int, // varint - val chunkZ: Int, // varint - val trustEdges: Boolean, - val skyLightMask: List, // varint array - val blockLightMask: List, // varint array - val emptySkyLightMask: List, // varint array - val emptyBlockLightMask: List, // varint array - val skyLight: List>, // varint array - val blockLight: List>, // varint array -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateLightPacket { - val chunkX = input.readVarInt() - val chunkZ = input.readVarInt() - val trustEdges = input.readBoolean() - val skyLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val blockLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val emptySkyLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val emptyBlockLightMask = input.readVarIntArray { arrayInput -> arrayInput.readLong() } - val skyLight = input.readVarIntArray { arrayInput1 -> arrayInput1.readVarIntArray { arrayInput -> arrayInput.readUByte() } } - val blockLight = input.readVarIntArray { arrayInput1 -> arrayInput1.readVarIntArray { arrayInput -> arrayInput.readUByte() } } - - return UpdateLightPacket(chunkX, chunkZ, trustEdges, skyLightMask, blockLightMask, emptySkyLightMask, emptyBlockLightMask, skyLight, blockLight) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateLightPacket) { - output.writeVarInt(value.chunkX) - output.writeVarInt(value.chunkZ) - output.writeBoolean(value.trustEdges) - output.writeVarIntArray(value.skyLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.blockLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.emptySkyLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.emptyBlockLightMask) { arrayValue, arrayOutput -> arrayOutput.writeLong(arrayValue) } - output.writeVarIntArray(value.skyLight) { arrayValue1, arrayOutput1 -> arrayOutput1.writeVarIntArray(arrayValue1) { arrayValue, arrayOutput -> arrayOutput.writeUByte(arrayValue) } } - output.writeVarIntArray(value.blockLight) { arrayValue1, arrayOutput1 -> arrayOutput1.writeVarIntArray(arrayValue1) { arrayValue, arrayOutput -> arrayOutput.writeUByte(arrayValue) } } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateTimePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateTimePacket.kt deleted file mode 100644 index 217813f..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateTimePacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Update Time | 0x5a | play | clientbound - * - * @param age age - * @param time time - * @see https://wiki.vg/Protocol#Update_Time - */ - -data class UpdateTimePacket( - val age: Long, - val time: Long, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateTimePacket { - val age = input.readLong() - val time = input.readLong() - - return UpdateTimePacket(age, time) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateTimePacket) { - output.writeLong(value.age) - output.writeLong(value.time) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateViewDistancePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateViewDistancePacket.kt deleted file mode 100644 index 116e87d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateViewDistancePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Render Distance | 0x4b | play | clientbound - * - * @param viewDistance viewDistance - * @see https://wiki.vg/Protocol#Set_Render_Distance - */ - -data class UpdateViewDistancePacket( - val viewDistance: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateViewDistancePacket { - val viewDistance = input.readVarInt() - - return UpdateViewDistancePacket(viewDistance) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateViewDistancePacket) { - output.writeVarInt(value.viewDistance) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateViewPositionPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateViewPositionPacket.kt deleted file mode 100644 index 55864a5..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/UpdateViewPositionPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Center Chunk | 0x4a | play | clientbound - * - * @param chunkX chunkX - * @param chunkZ chunkZ - * @see https://wiki.vg/Protocol#Set_Center_Chunk - */ - -data class UpdateViewPositionPacket( - val chunkX: Int, // varint - val chunkZ: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateViewPositionPacket { - val chunkX = input.readVarInt() - val chunkZ = input.readVarInt() - - return UpdateViewPositionPacket(chunkX, chunkZ) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateViewPositionPacket) { - output.writeVarInt(value.chunkX) - output.writeVarInt(value.chunkZ) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/VehicleMovePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/VehicleMovePacket.kt deleted file mode 100644 index 5bec980..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/VehicleMovePacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Move Vehicle | 0x2a | play | clientbound - * - * @param x x - * @param y y - * @param z z - * @param yaw yaw - * @param pitch pitch - * @see https://wiki.vg/Protocol#Move_Vehicle - */ - -data class VehicleMovePacket( - val x: Double, - val y: Double, - val z: Double, - val yaw: Float, - val pitch: Float, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): VehicleMovePacket { - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val yaw = input.readFloat() - val pitch = input.readFloat() - - return VehicleMovePacket(x, y, z, yaw, pitch) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: VehicleMovePacket) { - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeFloat(value.yaw) - output.writeFloat(value.pitch) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WindowItemsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WindowItemsPacket.kt deleted file mode 100644 index bf428de..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WindowItemsPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Container Content | 0x10 | play | clientbound - * - * @param windowId windowId - * @param stateId stateId - * @see https://wiki.vg/Protocol#Set_Container_Content - */ - -data class WindowItemsPacket( - val windowId: UByte, - val stateId: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WindowItemsPacket { - val windowId = input.readUByte() - val stateId = input.readVarInt() - - return WindowItemsPacket(windowId, stateId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WindowItemsPacket) { - output.writeUByte(value.windowId) - output.writeVarInt(value.stateId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderCenterPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderCenterPacket.kt deleted file mode 100644 index bd55419..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderCenterPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Border Center | 0x43 | play | clientbound - * - * @param x x - * @param z z - * @see https://wiki.vg/Protocol#Set_Border_Center - */ - -data class WorldBorderCenterPacket( - val x: Double, - val z: Double, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WorldBorderCenterPacket { - val x = input.readDouble() - val z = input.readDouble() - - return WorldBorderCenterPacket(x, z) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WorldBorderCenterPacket) { - output.writeDouble(value.x) - output.writeDouble(value.z) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderLerpSizePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderLerpSizePacket.kt deleted file mode 100644 index be40efc..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderLerpSizePacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Border Lerp Size | 0x44 | play | clientbound - * - * @param oldDiameter oldDiameter - * @param newDiameter newDiameter - * @param speed speed - * @see https://wiki.vg/Protocol#Set_Border_Lerp_Size - */ - -data class WorldBorderLerpSizePacket( - val oldDiameter: Double, - val newDiameter: Double, - val speed: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WorldBorderLerpSizePacket { - val oldDiameter = input.readDouble() - val newDiameter = input.readDouble() - val speed = input.readVarInt() - - return WorldBorderLerpSizePacket(oldDiameter, newDiameter, speed) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WorldBorderLerpSizePacket) { - output.writeDouble(value.oldDiameter) - output.writeDouble(value.newDiameter) - output.writeVarInt(value.speed) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderSizePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderSizePacket.kt deleted file mode 100644 index efed8c9..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderSizePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Border Size | 0x45 | play | clientbound - * - * @param diameter diameter - * @see https://wiki.vg/Protocol#Set_Border_Size - */ - -data class WorldBorderSizePacket( - val diameter: Double, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WorldBorderSizePacket { - val diameter = input.readDouble() - - return WorldBorderSizePacket(diameter) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WorldBorderSizePacket) { - output.writeDouble(value.diameter) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderWarningDelayPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderWarningDelayPacket.kt deleted file mode 100644 index ed4b49d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderWarningDelayPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Border Warning Delay | 0x46 | play | clientbound - * - * @param warningTime warningTime - * @see https://wiki.vg/Protocol#Set_Border_Warning_Delay - */ - -data class WorldBorderWarningDelayPacket( - val warningTime: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WorldBorderWarningDelayPacket { - val warningTime = input.readVarInt() - - return WorldBorderWarningDelayPacket(warningTime) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WorldBorderWarningDelayPacket) { - output.writeVarInt(value.warningTime) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderWarningReachPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderWarningReachPacket.kt deleted file mode 100644 index 5ef08cb..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldBorderWarningReachPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Border Warning Distance | 0x47 | play | clientbound - * - * @param warningBlocks warningBlocks - * @see https://wiki.vg/Protocol#Set_Border_Warning_Distance - */ - -data class WorldBorderWarningReachPacket( - val warningBlocks: Int, // varint -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WorldBorderWarningReachPacket { - val warningBlocks = input.readVarInt() - - return WorldBorderWarningReachPacket(warningBlocks) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WorldBorderWarningReachPacket) { - output.writeVarInt(value.warningBlocks) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldEventPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldEventPacket.kt deleted file mode 100644 index dc2c32d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldEventPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * World Event | 0x21 | play | clientbound - * - * @param effectId effectId - * @param location location - * @param data data - * @param global global - * @see https://wiki.vg/Protocol#World_Event - */ - -data class WorldEventPacket( - val effectId: Int, - val location: Position, - val data: Int, - val global: Boolean, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WorldEventPacket { - val effectId = input.readInt() - val location = input.readPosition() - val data = input.readInt() - val global = input.readBoolean() - - return WorldEventPacket(effectId, location, data, global) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WorldEventPacket) { - output.writeInt(value.effectId) - output.writePosition(value.location) - output.writeInt(value.data) - output.writeBoolean(value.global) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldParticlesPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldParticlesPacket.kt deleted file mode 100644 index 802dc44..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/clientbound/WorldParticlesPacket.kt +++ /dev/null @@ -1,64 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Particle | 0x22 | play | clientbound - * - * @param particleId particleId - * @param longDistance longDistance - * @param x x - * @param y y - * @param z z - * @param offsetX offsetX - * @param offsetY offsetY - * @param offsetZ offsetZ - * @param particleData particleData - * @param particles particles - * @see https://wiki.vg/Protocol#Particle_2 - */ - -data class WorldParticlesPacket( - val particleId: Int, // varint - val longDistance: Boolean, - val x: Double, - val y: Double, - val z: Double, - val offsetX: Float, - val offsetY: Float, - val offsetZ: Float, - val particleData: Float, - val particles: Int, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WorldParticlesPacket { - val particleId = input.readVarInt() - val longDistance = input.readBoolean() - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val offsetX = input.readFloat() - val offsetY = input.readFloat() - val offsetZ = input.readFloat() - val particleData = input.readFloat() - val particles = input.readInt() - - return WorldParticlesPacket(particleId, longDistance, x, y, z, offsetX, offsetY, offsetZ, particleData, particles) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WorldParticlesPacket) { - output.writeVarInt(value.particleId) - output.writeBoolean(value.longDistance) - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeFloat(value.offsetX) - output.writeFloat(value.offsetY) - output.writeFloat(value.offsetZ) - output.writeFloat(value.particleData) - output.writeInt(value.particles) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/AbilitiesPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/AbilitiesPacket.kt deleted file mode 100644 index eaee212..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/AbilitiesPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Player Abilities | 0x1b | play | serverbound - * - * @param flags flags - * @see https://wiki.vg/Protocol#Player_Abilities_2 - */ - -data class AbilitiesPacket( - val flags: Byte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): AbilitiesPacket { - val flags = input.readByte() - - return AbilitiesPacket(flags) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: AbilitiesPacket) { - output.writeByte(value.flags) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/AdvancementTabPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/AdvancementTabPacket.kt deleted file mode 100644 index 40b9f25..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/AdvancementTabPacket.kt +++ /dev/null @@ -1,39 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Seen Advancements | 0x25 | play | serverbound - * - * @param action action - * @param tabId tabId - * @see https://wiki.vg/Protocol#Seen_Advancements - */ - -data class AdvancementTabPacket( - val action: Int, // varint - val tabId: String?, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): AdvancementTabPacket { - val action = input.readVarInt() - val tabId = when (action) { - 0 -> input.readString() - 1 -> null - else -> null - } - - return AdvancementTabPacket(action, tabId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: AdvancementTabPacket) { - output.writeVarInt(value.action) - when (value.action) { - 0 -> output.writeString(value.tabId!!) - else -> {} - } - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ArmAnimationPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ArmAnimationPacket.kt deleted file mode 100644 index 3985504..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ArmAnimationPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Swing Arm | 0x2f | play | serverbound - * - * @param hand hand - * @see https://wiki.vg/Protocol#Swing_Arm - */ - -data class ArmAnimationPacket( - val hand: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ArmAnimationPacket { - val hand = input.readVarInt() - - return ArmAnimationPacket(hand) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ArmAnimationPacket) { - output.writeVarInt(value.hand) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/BlockDigPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/BlockDigPacket.kt deleted file mode 100644 index 17b72a6..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/BlockDigPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Player Action | 0x1c | play | serverbound - * - * @param status status - * @param location location - * @param face face - * @param sequence sequence - * @see https://wiki.vg/Protocol#Player_Action - */ - -data class BlockDigPacket( - val status: Int, // varint - val location: Position, - val face: Byte, - val sequence: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): BlockDigPacket { - val status = input.readVarInt() - val location = input.readPosition() - val face = input.readByte() - val sequence = input.readVarInt() - - return BlockDigPacket(status, location, face, sequence) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: BlockDigPacket) { - output.writeVarInt(value.status) - output.writePosition(value.location) - output.writeByte(value.face) - output.writeVarInt(value.sequence) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/BlockPlacePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/BlockPlacePacket.kt deleted file mode 100644 index dc8bdcb..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/BlockPlacePacket.kt +++ /dev/null @@ -1,56 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Use Item On | 0x31 | play | serverbound - * - * @param hand hand - * @param location location - * @param direction direction - * @param cursorX cursorX - * @param cursorY cursorY - * @param cursorZ cursorZ - * @param insideBlock insideBlock - * @param sequence sequence - * @see https://wiki.vg/Protocol#Use_Item_On - */ - -data class BlockPlacePacket( - val hand: Int, // varint - val location: Position, - val direction: Int, // varint - val cursorX: Float, - val cursorY: Float, - val cursorZ: Float, - val insideBlock: Boolean, - val sequence: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): BlockPlacePacket { - val hand = input.readVarInt() - val location = input.readPosition() - val direction = input.readVarInt() - val cursorX = input.readFloat() - val cursorY = input.readFloat() - val cursorZ = input.readFloat() - val insideBlock = input.readBoolean() - val sequence = input.readVarInt() - - return BlockPlacePacket(hand, location, direction, cursorX, cursorY, cursorZ, insideBlock, sequence) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: BlockPlacePacket) { - output.writeVarInt(value.hand) - output.writePosition(value.location) - output.writeVarInt(value.direction) - output.writeFloat(value.cursorX) - output.writeFloat(value.cursorY) - output.writeFloat(value.cursorZ) - output.writeBoolean(value.insideBlock) - output.writeVarInt(value.sequence) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatCommandPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatCommandPacket.kt deleted file mode 100644 index 0ffdd02..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatCommandPacket.kt +++ /dev/null @@ -1 +0,0 @@ -// TODO \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatMessagePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatMessagePacket.kt deleted file mode 100644 index 0ffdd02..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatMessagePacket.kt +++ /dev/null @@ -1 +0,0 @@ -// TODO \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatSessionUpdatePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatSessionUpdatePacket.kt deleted file mode 100644 index 32f406e..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ChatSessionUpdatePacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Player Session | 0x20 | play | serverbound - * - * @param sessionUUID sessionUUID - * @param expireTime expireTime - * @param publicKey publicKey - * @param signature signature - * @see https://wiki.vg/Protocol#Player_Session - */ - -data class ChatSessionUpdatePacket( - val sessionUUID: UUID, - val expireTime: Long, - val publicKey: ByteArray, - val signature: ByteArray, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ChatSessionUpdatePacket { - val sessionUUID = input.readUUID() - val expireTime = input.readLong() - val publicKey = input.readVarIntByteArray() - val signature = input.readVarIntByteArray() - - return ChatSessionUpdatePacket(sessionUUID, expireTime, publicKey, signature) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ChatSessionUpdatePacket) { - output.writeUUID(value.sessionUUID) - output.writeLong(value.expireTime) - output.writeVarIntByteArray(value.publicKey) - output.writeVarIntByteArray(value.signature) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ClientCommandPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ClientCommandPacket.kt deleted file mode 100644 index 151373b..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ClientCommandPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Client Command | 0x06 | play | serverbound - * - * @param actionId actionId - * @see https://wiki.vg/Protocol#Client_Command - */ - -data class ClientCommandPacket( - val actionId: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ClientCommandPacket { - val actionId = input.readVarInt() - - return ClientCommandPacket(actionId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ClientCommandPacket) { - output.writeVarInt(value.actionId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CloseWindowPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CloseWindowPacket.kt deleted file mode 100644 index d38fe24..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CloseWindowPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Close Container | 0x0b | play | serverbound - * - * @param windowId windowId - * @see https://wiki.vg/Protocol#Close_Container_2 - */ - -data class CloseWindowPacket( - val windowId: UByte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CloseWindowPacket { - val windowId = input.readUByte() - - return CloseWindowPacket(windowId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CloseWindowPacket) { - output.writeUByte(value.windowId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CraftRecipeRequestPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CraftRecipeRequestPacket.kt deleted file mode 100644 index 158dad3..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CraftRecipeRequestPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Place Recipe | 0x1a | play | serverbound - * - * @param windowId windowId - * @param recipe recipe - * @param makeAll makeAll - * @see https://wiki.vg/Protocol#Place_Recipe - */ - -data class CraftRecipeRequestPacket( - val windowId: Byte, - val recipe: String, - val makeAll: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CraftRecipeRequestPacket { - val windowId = input.readByte() - val recipe = input.readString() - val makeAll = input.readBoolean() - - return CraftRecipeRequestPacket(windowId, recipe, makeAll) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CraftRecipeRequestPacket) { - output.writeByte(value.windowId) - output.writeString(value.recipe) - output.writeBoolean(value.makeAll) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CustomPayloadPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CustomPayloadPacket.kt deleted file mode 100644 index 4c31f24..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/CustomPayloadPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Plugin Message | 0x0c | play | serverbound - * - * @param channel channel - * @param data data - * @see https://wiki.vg/Protocol#Plugin_Message_2 - */ - -data class CustomPayloadPacket( - val channel: String, - val data: ByteArray, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): CustomPayloadPacket { - val channel = input.readString() - val data = input.readRemainingByteArray() - - return CustomPayloadPacket(channel, data) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: CustomPayloadPacket) { - output.writeString(value.channel) - output.writeRemainingByteArray(value.data) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/DisplayedRecipePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/DisplayedRecipePacket.kt deleted file mode 100644 index 87bf83a..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/DisplayedRecipePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Seen Recipe | 0x22 | play | serverbound - * - * @param recipeId recipeId - * @see https://wiki.vg/Protocol#Set_Seen_Recipe - */ - -data class DisplayedRecipePacket( - val recipeId: String, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): DisplayedRecipePacket { - val recipeId = input.readString() - - return DisplayedRecipePacket(recipeId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: DisplayedRecipePacket) { - output.writeString(value.recipeId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EditBookPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EditBookPacket.kt deleted file mode 100644 index b08462f..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EditBookPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Edit Book | 0x0d | play | serverbound - * - * @param hand hand - * @param pages pages - * @param hasTitle title is present - * @param title title - * @see https://wiki.vg/Protocol#Edit_Book - */ - -data class EditBookPacket( - val hand: Int, // varint - val pages: List, // varint array - val hasTitle: Boolean, - val title: String?, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EditBookPacket { - val hand = input.readVarInt() - val pages = input.readVarIntArray { arrayInput -> arrayInput.readString() } - val hasTitle = input.readBoolean() - val title = if (hasTitle) input.readString() else null - - return EditBookPacket(hand, pages, hasTitle, title) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EditBookPacket) { - output.writeVarInt(value.hand) - output.writeVarIntArray(value.pages) { arrayValue, arrayOutput -> arrayOutput.writeString(arrayValue) } - output.writeBoolean(value.hasTitle) - if (value.hasTitle) output.writeString(value.title!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EnchantItemPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EnchantItemPacket.kt deleted file mode 100644 index b64b813..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EnchantItemPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Click Container Button | 0x09 | play | serverbound - * - * @param windowId windowId - * @param enchantment enchantment - * @see https://wiki.vg/Protocol#Click_Container_Button - */ - -data class EnchantItemPacket( - val windowId: Byte, - val enchantment: Byte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EnchantItemPacket { - val windowId = input.readByte() - val enchantment = input.readByte() - - return EnchantItemPacket(windowId, enchantment) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EnchantItemPacket) { - output.writeByte(value.windowId) - output.writeByte(value.enchantment) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EntityActionPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EntityActionPacket.kt deleted file mode 100644 index 6a80c26..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/EntityActionPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Player Command | 0x1d | play | serverbound - * - * @param entityId entityId - * @param actionId actionId - * @param jumpBoost jumpBoost - * @see https://wiki.vg/Protocol#Player_Command - */ - -data class EntityActionPacket( - val entityId: Int, // varint - val actionId: Int, // varint - val jumpBoost: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): EntityActionPacket { - val entityId = input.readVarInt() - val actionId = input.readVarInt() - val jumpBoost = input.readVarInt() - - return EntityActionPacket(entityId, actionId, jumpBoost) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: EntityActionPacket) { - output.writeVarInt(value.entityId) - output.writeVarInt(value.actionId) - output.writeVarInt(value.jumpBoost) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/FlyingPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/FlyingPacket.kt deleted file mode 100644 index 33a5dad..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/FlyingPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Player On Ground | 0x16 | play | serverbound - * - * @param onGround onGround - * @see https://wiki.vg/Protocol#Set_Player_On_Ground - */ - -data class FlyingPacket( - val onGround: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): FlyingPacket { - val onGround = input.readBoolean() - - return FlyingPacket(onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: FlyingPacket) { - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/GenerateStructurePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/GenerateStructurePacket.kt deleted file mode 100644 index f8b8dcb..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/GenerateStructurePacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Jigsaw Generate | 0x10 | play | serverbound - * - * @param location location - * @param levels levels - * @param keepJigsaws keepJigsaws - * @see https://wiki.vg/Protocol#Jigsaw_Generate - */ - -data class GenerateStructurePacket( - val location: Position, - val levels: Int, // varint - val keepJigsaws: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): GenerateStructurePacket { - val location = input.readPosition() - val levels = input.readVarInt() - val keepJigsaws = input.readBoolean() - - return GenerateStructurePacket(location, levels, keepJigsaws) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: GenerateStructurePacket) { - output.writePosition(value.location) - output.writeVarInt(value.levels) - output.writeBoolean(value.keepJigsaws) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/HeldItemSlotPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/HeldItemSlotPacket.kt deleted file mode 100644 index 5b5a29d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/HeldItemSlotPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Held Item | 0x28 | play | serverbound - * - * @param slotId slotId - * @see https://wiki.vg/Protocol#Set_Held_Item_2 - */ - -data class HeldItemSlotPacket( - val slotId: Short, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): HeldItemSlotPacket { - val slotId = input.readShort() - - return HeldItemSlotPacket(slotId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: HeldItemSlotPacket) { - output.writeShort(value.slotId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/KeepAlivePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/KeepAlivePacket.kt deleted file mode 100644 index 794b209..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/KeepAlivePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Keep Alive | 0x11 | play | serverbound - * - * @param keepAliveId keepAliveId - * @see https://wiki.vg/Protocol#Keep_Alive_2 - */ - -data class KeepAlivePacket( - val keepAliveId: Long, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): KeepAlivePacket { - val keepAliveId = input.readLong() - - return KeepAlivePacket(keepAliveId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: KeepAlivePacket) { - output.writeLong(value.keepAliveId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/LockDifficultyPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/LockDifficultyPacket.kt deleted file mode 100644 index e81aeda..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/LockDifficultyPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Lock Difficulty | 0x12 | play | serverbound - * - * @param locked locked - * @see https://wiki.vg/Protocol#Lock_Difficulty - */ - -data class LockDifficultyPacket( - val locked: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): LockDifficultyPacket { - val locked = input.readBoolean() - - return LockDifficultyPacket(locked) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: LockDifficultyPacket) { - output.writeBoolean(value.locked) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/LookPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/LookPacket.kt deleted file mode 100644 index c0957ea..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/LookPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Player Rotation | 0x15 | play | serverbound - * - * @param yaw yaw - * @param pitch pitch - * @param onGround onGround - * @see https://wiki.vg/Protocol#Set_Player_Rotation - */ - -data class LookPacket( - val yaw: Float, - val pitch: Float, - val onGround: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): LookPacket { - val yaw = input.readFloat() - val pitch = input.readFloat() - val onGround = input.readBoolean() - - return LookPacket(yaw, pitch, onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: LookPacket) { - output.writeFloat(value.yaw) - output.writeFloat(value.pitch) - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/MessageAcknowledgementPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/MessageAcknowledgementPacket.kt deleted file mode 100644 index 63601a5..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/MessageAcknowledgementPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Message Acknowledgment | 0x03 | play | serverbound - * - * @param count count - * @see https://wiki.vg/Protocol#Message_Acknowledgment - */ - -data class MessageAcknowledgementPacket( - val count: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): MessageAcknowledgementPacket { - val count = input.readVarInt() - - return MessageAcknowledgementPacket(count) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: MessageAcknowledgementPacket) { - output.writeVarInt(value.count) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/NameItemPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/NameItemPacket.kt deleted file mode 100644 index b54d00a..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/NameItemPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Rename Item | 0x23 | play | serverbound - * - * @param name name - * @see https://wiki.vg/Protocol#Rename_Item - */ - -data class NameItemPacket( - val name: String, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): NameItemPacket { - val name = input.readString() - - return NameItemPacket(name) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: NameItemPacket) { - output.writeString(value.name) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PickItemPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PickItemPacket.kt deleted file mode 100644 index f765996..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PickItemPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Pick Item | 0x19 | play | serverbound - * - * @param slot slot - * @see https://wiki.vg/Protocol#Pick_Item - */ - -data class PickItemPacket( - val slot: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PickItemPacket { - val slot = input.readVarInt() - - return PickItemPacket(slot) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PickItemPacket) { - output.writeVarInt(value.slot) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PongPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PongPacket.kt deleted file mode 100644 index 655fc3d..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PongPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Pong (play) | 0x1f | play | serverbound - * - * @param id id - * @see https://wiki.vg/Protocol#Pong_.28play.29 - */ - -data class PongPacket( - val id: Int, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PongPacket { - val id = input.readInt() - - return PongPacket(id) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PongPacket) { - output.writeInt(value.id) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PositionLookPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PositionLookPacket.kt deleted file mode 100644 index 2d633b1..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PositionLookPacket.kt +++ /dev/null @@ -1,48 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Player Position and Rotation | 0x14 | play | serverbound - * - * @param x x - * @param y y - * @param z z - * @param yaw yaw - * @param pitch pitch - * @param onGround onGround - * @see https://wiki.vg/Protocol#Set_Player_Position_and_Rotation - */ - -data class PositionLookPacket( - val x: Double, - val y: Double, - val z: Double, - val yaw: Float, - val pitch: Float, - val onGround: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PositionLookPacket { - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val yaw = input.readFloat() - val pitch = input.readFloat() - val onGround = input.readBoolean() - - return PositionLookPacket(x, y, z, yaw, pitch, onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PositionLookPacket) { - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeFloat(value.yaw) - output.writeFloat(value.pitch) - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PositionPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PositionPacket.kt deleted file mode 100644 index 9610ece..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/PositionPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Player Position | 0x13 | play | serverbound - * - * @param x x - * @param y y - * @param z z - * @param onGround onGround - * @see https://wiki.vg/Protocol#Set_Player_Position - */ - -data class PositionPacket( - val x: Double, - val y: Double, - val z: Double, - val onGround: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PositionPacket { - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val onGround = input.readBoolean() - - return PositionPacket(x, y, z, onGround) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PositionPacket) { - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeBoolean(value.onGround) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/QueryBlockNbtPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/QueryBlockNbtPacket.kt deleted file mode 100644 index 0b06943..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/QueryBlockNbtPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Query Block Entity Tag | 0x01 | play | serverbound - * - * @param transactionId transactionId - * @param location location - * @see https://wiki.vg/Protocol#Query_Block_Entity_Tag - */ - -data class QueryBlockNbtPacket( - val transactionId: Int, // varint - val location: Position, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): QueryBlockNbtPacket { - val transactionId = input.readVarInt() - val location = input.readPosition() - - return QueryBlockNbtPacket(transactionId, location) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: QueryBlockNbtPacket) { - output.writeVarInt(value.transactionId) - output.writePosition(value.location) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/QueryEntityNbtPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/QueryEntityNbtPacket.kt deleted file mode 100644 index 7fa7f10..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/QueryEntityNbtPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Query Entity Tag | 0x0e | play | serverbound - * - * @param transactionId transactionId - * @param entityId entityId - * @see https://wiki.vg/Protocol#Query_Entity_Tag - */ - -data class QueryEntityNbtPacket( - val transactionId: Int, // varint - val entityId: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): QueryEntityNbtPacket { - val transactionId = input.readVarInt() - val entityId = input.readVarInt() - - return QueryEntityNbtPacket(transactionId, entityId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: QueryEntityNbtPacket) { - output.writeVarInt(value.transactionId) - output.writeVarInt(value.entityId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/RecipeBookPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/RecipeBookPacket.kt deleted file mode 100644 index 79cd0ae..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/RecipeBookPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Change Recipe Book Settings | 0x21 | play | serverbound - * - * @param bookId bookId - * @param bookOpen bookOpen - * @param filterActive filterActive - * @see https://wiki.vg/Protocol#Change_Recipe_Book_Settings - */ - -data class RecipeBookPacket( - val bookId: Int, // varint - val bookOpen: Boolean, - val filterActive: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): RecipeBookPacket { - val bookId = input.readVarInt() - val bookOpen = input.readBoolean() - val filterActive = input.readBoolean() - - return RecipeBookPacket(bookId, bookOpen, filterActive) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: RecipeBookPacket) { - output.writeVarInt(value.bookId) - output.writeBoolean(value.bookOpen) - output.writeBoolean(value.filterActive) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ResourcePackReceivePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ResourcePackReceivePacket.kt deleted file mode 100644 index efa33c8..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/ResourcePackReceivePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Resource Pack | 0x24 | play | serverbound - * - * @param result result - * @see https://wiki.vg/Protocol#Resource_Pack_2 - */ - -data class ResourcePackReceivePacket( - val result: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ResourcePackReceivePacket { - val result = input.readVarInt() - - return ResourcePackReceivePacket(result) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ResourcePackReceivePacket) { - output.writeVarInt(value.result) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SelectTradePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SelectTradePacket.kt deleted file mode 100644 index de620ea..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SelectTradePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Select Trade | 0x26 | play | serverbound - * - * @param slot slot - * @see https://wiki.vg/Protocol#Select_Trade - */ - -data class SelectTradePacket( - val slot: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SelectTradePacket { - val slot = input.readVarInt() - - return SelectTradePacket(slot) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SelectTradePacket) { - output.writeVarInt(value.slot) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetBeaconEffectPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetBeaconEffectPacket.kt deleted file mode 100644 index 54c42fd..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetBeaconEffectPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Beacon Effect | 0x27 | play | serverbound - * - * @param hasPrimaryEffect primary_effect is present - * @param primaryEffect primary_effect - * @param hasSecondaryEffect secondary_effect is present - * @param secondaryEffect secondary_effect - * @see https://wiki.vg/Protocol#Set_Beacon_Effect - */ - -data class SetBeaconEffectPacket( - val hasPrimaryEffect: Boolean, - val primaryEffect: Int?, // varint - val hasSecondaryEffect: Boolean, - val secondaryEffect: Int?, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetBeaconEffectPacket { - val hasPrimaryEffect = input.readBoolean() - val primaryEffect = if (hasPrimaryEffect) input.readVarInt() else null - val hasSecondaryEffect = input.readBoolean() - val secondaryEffect = if (hasSecondaryEffect) input.readVarInt() else null - - return SetBeaconEffectPacket(hasPrimaryEffect, primaryEffect, hasSecondaryEffect, secondaryEffect) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetBeaconEffectPacket) { - output.writeBoolean(value.hasPrimaryEffect) - if (value.hasPrimaryEffect) output.writeVarInt(value.primaryEffect!!) - output.writeBoolean(value.hasSecondaryEffect) - if (value.hasSecondaryEffect) output.writeVarInt(value.secondaryEffect!!) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetCreativeSlotPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetCreativeSlotPacket.kt deleted file mode 100644 index 7b22783..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetCreativeSlotPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Set Creative Mode Slot | 0x2b | play | serverbound - * - * @param slot slot - * @see https://wiki.vg/Protocol#Set_Creative_Mode_Slot - */ - -data class SetCreativeSlotPacket( - val slot: Short, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetCreativeSlotPacket { - val slot = input.readShort() - - return SetCreativeSlotPacket(slot) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetCreativeSlotPacket) { - output.writeShort(value.slot) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetDifficultyPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetDifficultyPacket.kt deleted file mode 100644 index 02f2c61..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SetDifficultyPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Change Difficulty | 0x02 | play | serverbound - * - * @param newDifficulty newDifficulty - * @see https://wiki.vg/Protocol#Change_Difficulty_2 - */ - -data class SetDifficultyPacket( - val newDifficulty: UByte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SetDifficultyPacket { - val newDifficulty = input.readUByte() - - return SetDifficultyPacket(newDifficulty) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SetDifficultyPacket) { - output.writeUByte(value.newDifficulty) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SettingsPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SettingsPacket.kt deleted file mode 100644 index f9fee00..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SettingsPacket.kt +++ /dev/null @@ -1,56 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Client Information | 0x07 | play | serverbound - * - * @param locale locale - * @param viewDistance viewDistance - * @param chatFlags chatFlags - * @param chatColors chatColors - * @param skinParts skinParts - * @param mainHand mainHand - * @param enableTextFiltering enableTextFiltering - * @param enableServerListing enableServerListing - * @see https://wiki.vg/Protocol#Client_Information - */ - -data class SettingsPacket( - val locale: String, - val viewDistance: Byte, - val chatFlags: Int, // varint - val chatColors: Boolean, - val skinParts: UByte, - val mainHand: Int, // varint - val enableTextFiltering: Boolean, - val enableServerListing: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SettingsPacket { - val locale = input.readString() - val viewDistance = input.readByte() - val chatFlags = input.readVarInt() - val chatColors = input.readBoolean() - val skinParts = input.readUByte() - val mainHand = input.readVarInt() - val enableTextFiltering = input.readBoolean() - val enableServerListing = input.readBoolean() - - return SettingsPacket(locale, viewDistance, chatFlags, chatColors, skinParts, mainHand, enableTextFiltering, enableServerListing) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SettingsPacket) { - output.writeString(value.locale) - output.writeByte(value.viewDistance) - output.writeVarInt(value.chatFlags) - output.writeBoolean(value.chatColors) - output.writeUByte(value.skinParts) - output.writeVarInt(value.mainHand) - output.writeBoolean(value.enableTextFiltering) - output.writeBoolean(value.enableServerListing) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SpectatePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SpectatePacket.kt deleted file mode 100644 index 651ec2b..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SpectatePacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.util.UUID -/** - * Teleport To Entity | 0x30 | play | serverbound - * - * @param target target - * @see https://wiki.vg/Protocol#Teleport_To_Entity - */ - -data class SpectatePacket( - val target: UUID, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SpectatePacket { - val target = input.readUUID() - - return SpectatePacket(target) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SpectatePacket) { - output.writeUUID(value.target) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SteerBoatPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SteerBoatPacket.kt deleted file mode 100644 index d2e6d78..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SteerBoatPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Paddle Boat | 0x18 | play | serverbound - * - * @param leftPaddle leftPaddle - * @param rightPaddle rightPaddle - * @see https://wiki.vg/Protocol#Paddle_Boat - */ - -data class SteerBoatPacket( - val leftPaddle: Boolean, - val rightPaddle: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SteerBoatPacket { - val leftPaddle = input.readBoolean() - val rightPaddle = input.readBoolean() - - return SteerBoatPacket(leftPaddle, rightPaddle) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SteerBoatPacket) { - output.writeBoolean(value.leftPaddle) - output.writeBoolean(value.rightPaddle) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SteerVehiclePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SteerVehiclePacket.kt deleted file mode 100644 index 3cc1aa7..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/SteerVehiclePacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Player Input | 0x1e | play | serverbound - * - * @param sideways sideways - * @param forward forward - * @param jump jump - * @see https://wiki.vg/Protocol#Player_Input - */ - -data class SteerVehiclePacket( - val sideways: Float, - val forward: Float, - val jump: UByte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): SteerVehiclePacket { - val sideways = input.readFloat() - val forward = input.readFloat() - val jump = input.readUByte() - - return SteerVehiclePacket(sideways, forward, jump) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: SteerVehiclePacket) { - output.writeFloat(value.sideways) - output.writeFloat(value.forward) - output.writeUByte(value.jump) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/TabCompletePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/TabCompletePacket.kt deleted file mode 100644 index 601f391..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/TabCompletePacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Command Suggestions Request | 0x08 | play | serverbound - * - * @param transactionId transactionId - * @param text text - * @see https://wiki.vg/Protocol#Command_Suggestions_Request - */ - -data class TabCompletePacket( - val transactionId: Int, // varint - val text: String, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): TabCompletePacket { - val transactionId = input.readVarInt() - val text = input.readString() - - return TabCompletePacket(transactionId, text) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: TabCompletePacket) { - output.writeVarInt(value.transactionId) - output.writeString(value.text) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/TeleportConfirmPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/TeleportConfirmPacket.kt deleted file mode 100644 index 1d86611..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/TeleportConfirmPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Confirm Teleportation | 0x00 | play | serverbound - * - * @param teleportId teleportId - * @see https://wiki.vg/Protocol#Confirm_Teleportation - */ - -data class TeleportConfirmPacket( - val teleportId: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): TeleportConfirmPacket { - val teleportId = input.readVarInt() - - return TeleportConfirmPacket(teleportId) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: TeleportConfirmPacket) { - output.writeVarInt(value.teleportId) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateCommandBlockMinecartPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateCommandBlockMinecartPacket.kt deleted file mode 100644 index 5605669..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateCommandBlockMinecartPacket.kt +++ /dev/null @@ -1,36 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Program Command Block Minecart | 0x2a | play | serverbound - * - * @param entityId entityId - * @param command command - * @param trackOutput track_output - * @see https://wiki.vg/Protocol#Program_Command_Block_Minecart - */ - -data class UpdateCommandBlockMinecartPacket( - val entityId: Int, // varint - val command: String, - val trackOutput: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateCommandBlockMinecartPacket { - val entityId = input.readVarInt() - val command = input.readString() - val trackOutput = input.readBoolean() - - return UpdateCommandBlockMinecartPacket(entityId, command, trackOutput) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateCommandBlockMinecartPacket) { - output.writeVarInt(value.entityId) - output.writeString(value.command) - output.writeBoolean(value.trackOutput) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateCommandBlockPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateCommandBlockPacket.kt deleted file mode 100644 index d60c802..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateCommandBlockPacket.kt +++ /dev/null @@ -1,40 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Program Command Block | 0x29 | play | serverbound - * - * @param location location - * @param command command - * @param mode mode - * @param flags flags - * @see https://wiki.vg/Protocol#Program_Command_Block - */ - -data class UpdateCommandBlockPacket( - val location: Position, - val command: String, - val mode: Int, // varint - val flags: UByte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateCommandBlockPacket { - val location = input.readPosition() - val command = input.readString() - val mode = input.readVarInt() - val flags = input.readUByte() - - return UpdateCommandBlockPacket(location, command, mode, flags) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateCommandBlockPacket) { - output.writePosition(value.location) - output.writeString(value.command) - output.writeVarInt(value.mode) - output.writeUByte(value.flags) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateJigsawBlockPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateJigsawBlockPacket.kt deleted file mode 100644 index 9cf3f24..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateJigsawBlockPacket.kt +++ /dev/null @@ -1,48 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Program Jigsaw Block | 0x2c | play | serverbound - * - * @param location location - * @param name name - * @param target target - * @param pool pool - * @param finalState finalState - * @param jointType jointType - * @see https://wiki.vg/Protocol#Program_Jigsaw_Block - */ - -data class UpdateJigsawBlockPacket( - val location: Position, - val name: String, - val target: String, - val pool: String, - val finalState: String, - val jointType: String, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateJigsawBlockPacket { - val location = input.readPosition() - val name = input.readString() - val target = input.readString() - val pool = input.readString() - val finalState = input.readString() - val jointType = input.readString() - - return UpdateJigsawBlockPacket(location, name, target, pool, finalState, jointType) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateJigsawBlockPacket) { - output.writePosition(value.location) - output.writeString(value.name) - output.writeString(value.target) - output.writeString(value.pool) - output.writeString(value.finalState) - output.writeString(value.jointType) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateSignPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateSignPacket.kt deleted file mode 100644 index 3b9ad79..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateSignPacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Update Sign | 0x2e | play | serverbound - * - * @param location location - * @param text1 text1 - * @param text2 text2 - * @param text3 text3 - * @param text4 text4 - * @see https://wiki.vg/Protocol#Update_Sign - */ - -data class UpdateSignPacket( - val location: Position, - val text1: String, - val text2: String, - val text3: String, - val text4: String, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateSignPacket { - val location = input.readPosition() - val text1 = input.readString() - val text2 = input.readString() - val text3 = input.readString() - val text4 = input.readString() - - return UpdateSignPacket(location, text1, text2, text3, text4) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateSignPacket) { - output.writePosition(value.location) - output.writeString(value.text1) - output.writeString(value.text2) - output.writeString(value.text3) - output.writeString(value.text4) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateStructureBlockPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateStructureBlockPacket.kt deleted file mode 100644 index c6a71ac..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UpdateStructureBlockPacket.kt +++ /dev/null @@ -1,88 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import io.layercraft.packetlib.types.Position -/** - * Program Structure Block | 0x2d | play | serverbound - * - * @param location location - * @param action action - * @param mode mode - * @param name name - * @param offsetX offset_x - * @param offsetY offset_y - * @param offsetZ offset_z - * @param sizeX size_x - * @param sizeY size_y - * @param sizeZ size_z - * @param mirror mirror - * @param rotation rotation - * @param metadata metadata - * @param integrity integrity - * @param seed seed - * @param flags flags - * @see https://wiki.vg/Protocol#Program_Structure_Block - */ - -data class UpdateStructureBlockPacket( - val location: Position, - val action: Int, // varint - val mode: Int, // varint - val name: String, - val offsetX: Byte, - val offsetY: Byte, - val offsetZ: Byte, - val sizeX: Byte, - val sizeY: Byte, - val sizeZ: Byte, - val mirror: Int, // varint - val rotation: Int, // varint - val metadata: String, - val integrity: Float, - val seed: Int, // varint - val flags: UByte, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UpdateStructureBlockPacket { - val location = input.readPosition() - val action = input.readVarInt() - val mode = input.readVarInt() - val name = input.readString() - val offsetX = input.readByte() - val offsetY = input.readByte() - val offsetZ = input.readByte() - val sizeX = input.readByte() - val sizeY = input.readByte() - val sizeZ = input.readByte() - val mirror = input.readVarInt() - val rotation = input.readVarInt() - val metadata = input.readString() - val integrity = input.readFloat() - val seed = input.readVarInt() - val flags = input.readUByte() - - return UpdateStructureBlockPacket(location, action, mode, name, offsetX, offsetY, offsetZ, sizeX, sizeY, sizeZ, mirror, rotation, metadata, integrity, seed, flags) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UpdateStructureBlockPacket) { - output.writePosition(value.location) - output.writeVarInt(value.action) - output.writeVarInt(value.mode) - output.writeString(value.name) - output.writeByte(value.offsetX) - output.writeByte(value.offsetY) - output.writeByte(value.offsetZ) - output.writeByte(value.sizeX) - output.writeByte(value.sizeY) - output.writeByte(value.sizeZ) - output.writeVarInt(value.mirror) - output.writeVarInt(value.rotation) - output.writeString(value.metadata) - output.writeFloat(value.integrity) - output.writeVarInt(value.seed) - output.writeUByte(value.flags) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UseEntityPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UseEntityPacket.kt deleted file mode 100644 index 8609f3e..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UseEntityPacket.kt +++ /dev/null @@ -1,78 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Interact | 0x0f | play | serverbound - * - * @param target target - * @param mouse mouse - * @param x x - * @param y y - * @param z z - * @param hand hand - * @param sneaking sneaking - * @see https://wiki.vg/Protocol#Interact - */ - -data class UseEntityPacket( - val target: Int, // varint - val mouse: Int, // varint - val x: Float?, - val y: Float?, - val z: Float?, - val hand: Int?, // varint - val sneaking: Boolean, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UseEntityPacket { - val target = input.readVarInt() - val mouse = input.readVarInt() - val x = when (mouse) { - 2 -> input.readFloat() - else -> null - } - val y = when (mouse) { - 2 -> input.readFloat() - else -> null - } - val z = when (mouse) { - 2 -> input.readFloat() - else -> null - } - val hand = when (mouse) { - 0 -> input.readVarInt() - 2 -> input.readVarInt() - else -> null - } - val sneaking = input.readBoolean() - - return UseEntityPacket(target, mouse, x, y, z, hand, sneaking) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UseEntityPacket) { - output.writeVarInt(value.target) - output.writeVarInt(value.mouse) - when (value.mouse) { - 2 -> output.writeFloat(value.x!!) - else -> {} - } - when (value.mouse) { - 2 -> output.writeFloat(value.y!!) - else -> {} - } - when (value.mouse) { - 2 -> output.writeFloat(value.z!!) - else -> {} - } - when (value.mouse) { - 0 -> output.writeVarInt(value.hand!!) - 2 -> output.writeVarInt(value.hand!!) - else -> {} - } - output.writeBoolean(value.sneaking) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UseItemPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UseItemPacket.kt deleted file mode 100644 index 63ba261..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/UseItemPacket.kt +++ /dev/null @@ -1,32 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Use Item | 0x32 | play | serverbound - * - * @param hand hand - * @param sequence sequence - * @see https://wiki.vg/Protocol#Use_Item - */ - -data class UseItemPacket( - val hand: Int, // varint - val sequence: Int, // varint -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): UseItemPacket { - val hand = input.readVarInt() - val sequence = input.readVarInt() - - return UseItemPacket(hand, sequence) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: UseItemPacket) { - output.writeVarInt(value.hand) - output.writeVarInt(value.sequence) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/VehicleMovePacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/VehicleMovePacket.kt deleted file mode 100644 index a5cd2d4..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/VehicleMovePacket.kt +++ /dev/null @@ -1,44 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Move Vehicle | 0x17 | play | serverbound - * - * @param x x - * @param y y - * @param z z - * @param yaw yaw - * @param pitch pitch - * @see https://wiki.vg/Protocol#Move_Vehicle_2 - */ - -data class VehicleMovePacket( - val x: Double, - val y: Double, - val z: Double, - val yaw: Float, - val pitch: Float, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): VehicleMovePacket { - val x = input.readDouble() - val y = input.readDouble() - val z = input.readDouble() - val yaw = input.readFloat() - val pitch = input.readFloat() - - return VehicleMovePacket(x, y, z, yaw, pitch) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: VehicleMovePacket) { - output.writeDouble(value.x) - output.writeDouble(value.y) - output.writeDouble(value.z) - output.writeFloat(value.yaw) - output.writeFloat(value.pitch) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/WindowClickPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/WindowClickPacket.kt deleted file mode 100644 index 413b2d9..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/play/serverbound/WindowClickPacket.kt +++ /dev/null @@ -1,64 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.play.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Click Container | 0x0a | play | serverbound - * - * @param windowId windowId - * @param stateId stateId - * @param slot slot - * @param mouseButton mouseButton - * @param mode mode - * @param changedSlots list of WindowClickPacketChangedSlots - * @see https://wiki.vg/Protocol#Click_Container - */ - -data class WindowClickPacket( - val windowId: UByte, - val stateId: Int, // varint - val slot: Short, - val mouseButton: Byte, - val mode: Int, // varint - val changedSlots: List, // varint array -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): WindowClickPacket { - val windowId = input.readUByte() - val stateId = input.readVarInt() - val slot = input.readShort() - val mouseButton = input.readByte() - val mode = input.readVarInt() - val changedSlots = input.readVarIntArray { arrayInput -> - val location = arrayInput.readShort() - - WindowClickPacketChangedSlots(location) - } - - return WindowClickPacket(windowId, stateId, slot, mouseButton, mode, changedSlots) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: WindowClickPacket) { - output.writeUByte(value.windowId) - output.writeVarInt(value.stateId) - output.writeShort(value.slot) - output.writeByte(value.mouseButton) - output.writeVarInt(value.mode) - - output.writeVarIntArray(value.changedSlots) { arrayValue, arrayOutput -> - arrayOutput.writeShort(arrayValue.location) - } - } - } -} - -/** - * WindowClickPacketChangedSlots - * - * @param location location -*/ -data class WindowClickPacketChangedSlots( - val location: Short, -) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/clientbound/PingPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/clientbound/PingPacket.kt deleted file mode 100644 index faf14a4..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/clientbound/PingPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.status.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Ping Response | 0x01 | status | clientbound - * - * @param time time - * @see https://wiki.vg/Protocol#Ping_Response - */ - -data class PingPacket( - val time: Long, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PingPacket { - val time = input.readLong() - - return PingPacket(time) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PingPacket) { - output.writeLong(value.time) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/clientbound/ServerInfoPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/clientbound/ServerInfoPacket.kt deleted file mode 100644 index 6d46ad5..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/clientbound/ServerInfoPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.status.clientbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Status Response | 0x00 | status | clientbound - * - * @param response response - * @see https://wiki.vg/Protocol#Status_Response - */ - -data class ServerInfoPacket( - val response: String, -) : ClientBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): ServerInfoPacket { - val response = input.readString() - - return ServerInfoPacket(response) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: ServerInfoPacket) { - output.writeString(value.response) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/serverbound/PingPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/serverbound/PingPacket.kt deleted file mode 100644 index 9edec83..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/serverbound/PingPacket.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.status.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Ping Request | 0x01 | status | serverbound - * - * @param time time - * @see https://wiki.vg/Protocol#Ping_Request - */ - -data class PingPacket( - val time: Long, -) : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PingPacket { - val time = input.readLong() - - return PingPacket(time) - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PingPacket) { - output.writeLong(value.time) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/serverbound/PingStartPacket.kt b/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/serverbound/PingStartPacket.kt deleted file mode 100644 index e3ad425..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/packets/v1_19_3/status/serverbound/PingStartPacket.kt +++ /dev/null @@ -1,23 +0,0 @@ -package io.layercraft.packetlib.packets.v1_19_3.status.serverbound - -import io.layercraft.packetlib.packets.* -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -/** - * Status Request | 0x00 | status | serverbound - * - - * @see https://wiki.vg/Protocol#Status_Request - */ - -class PingStartPacket() : ServerBoundPacket { - companion object : PacketSerializer { - override fun deserialize(input: MCProtocolDeserializer<*>): PingStartPacket { - return PingStartPacket() - } - - override fun serialize(output: MCProtocolSerializer<*>, value: PingStartPacket) { - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/types/Bitfield.kt b/src/main/kotlin/io/layercraft/packetlib/types/Bitfield.kt deleted file mode 100644 index 3ccee40..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/types/Bitfield.kt +++ /dev/null @@ -1,14 +0,0 @@ -package io.layercraft.packetlib.types - -class Bitfield( - private val bytes: ByteArray, -) { - fun toByteArray(): ByteArray { - return bytes - } - companion object { - fun valueOf(bytes: ByteArray): Bitfield { - return Bitfield(bytes) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/types/ChunkBlockEntity.kt b/src/main/kotlin/io/layercraft/packetlib/types/ChunkBlockEntity.kt deleted file mode 100644 index 2fb0948..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/types/ChunkBlockEntity.kt +++ /dev/null @@ -1,29 +0,0 @@ -package io.layercraft.packetlib.types - -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer - -data class ChunkBlockEntity( - val chunkXz: Byte, - val y: Short, - val type: Int, - val data: NBT, -) { - companion object { - fun read(deserializer: MCProtocolDeserializer<*>): ChunkBlockEntity { - val packedXZ = deserializer.readByte() - val y = deserializer.readShort() - val type = deserializer.readVarInt() - val data = deserializer.readNbt() - - return ChunkBlockEntity(packedXZ, y, type, data) - } - - fun write(entity: ChunkBlockEntity, serializeInterface: MCProtocolSerializer<*>) { - serializeInterface.writeByte(entity.chunkXz) - serializeInterface.writeShort(entity.y) - serializeInterface.writeVarInt(entity.type) - serializeInterface.writeNbt(entity.data) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/types/Position.kt b/src/main/kotlin/io/layercraft/packetlib/types/Position.kt deleted file mode 100644 index c5224df..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/types/Position.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.layercraft.packetlib.types - -/** - * Position - * - * @property x - * @property y - * @property z - * @see https://wiki.vg/Protocol#Position - */ -data class Position( - val x: Int, - val y: Int, - val z: Int, -) { - - companion object { - fun positionToLong(position: Position): Long = with(position) { - x.toLong() and 0x3FFFFFF shl 38 or (z.toLong() and 0x3FFFFFF shl 12) or (y.toLong() and 0xFFF) - } - - fun longToPosition(long: Long): Position = Position( - (long shr 38).toInt(), - (long and 0xFFF).toInt(), - (long shl 26 shr 38).toInt(), - ) - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/types/VarNumbersUtils.kt b/src/main/kotlin/io/layercraft/packetlib/types/VarNumbersUtils.kt deleted file mode 100644 index 19a5558..0000000 --- a/src/main/kotlin/io/layercraft/packetlib/types/VarNumbersUtils.kt +++ /dev/null @@ -1,95 +0,0 @@ -package io.layercraft.packetlib.types - -import io.layercraft.packetlib.serialization.MCProtocolDeserializer -import io.layercraft.packetlib.serialization.MCProtocolSerializer -import java.io.EOFException - -const val SEGMENT_BITS = 0x7F -const val CONTINUE_BIT = 0x80 - -object MinecraftVarIntUtils { - fun readVarInt(input: MCProtocolDeserializer<*>): Int { - if (input.remaining <= 0) throw EOFException("Premature end of stream") - var numRead = 0 - var result = 0 - var read: Byte - do { - read = input.readByte() - val value = (read.toInt() and SEGMENT_BITS) - result = result or (value shl (7 * numRead)) - numRead++ - if (numRead > 5) { - throw RuntimeException("VarInt is too big") - } - } while (read.toInt() and CONTINUE_BIT != 0) - return result - } - - fun writeVarInt(value: Int, output: MCProtocolSerializer<*>) { - var write = value - while (true) { - if (write and -CONTINUE_BIT == 0) { - output.writeByte(write.toByte()) - return - } - output.writeByte((write and 0x7F or 0x80).toByte()) - write = write ushr 7 - } - } - - fun varIntBytesCount(value: Int): Int { - return when { - value and -0x80 == 0 -> 1 - value and -0x4000 == 0 -> 2 - value and -0x200000 == 0 -> 3 - value and -0x10000000 == 0 -> 4 - else -> 5 - } - } -} - -object MinecraftVarLongUtils { - fun readVarLong(input: MCProtocolDeserializer<*>): Long { - if (input.remaining <= 0) throw EOFException("Premature end of stream") - var numRead = 0 - var result: Long = 0 - var read: Byte - do { - read = input.readByte() - val value = (read.toLong() and SEGMENT_BITS.toLong()) - result = result or (value shl (7 * numRead)) - numRead++ - if (numRead > 10) { - throw RuntimeException("VarLong is too big") - } - } while (read.toInt() and CONTINUE_BIT != 0) - return result - } - - fun writeVarLong(value: Long, output: MCProtocolSerializer<*>) { - var write = value - while (true) { - if (write and -CONTINUE_BIT.toLong() == 0L) { - output.writeByte(write.toByte()) - return - } - output.writeByte((write and SEGMENT_BITS.toLong() or CONTINUE_BIT.toLong()).toByte()) - write = write ushr 7 - } - } - - fun varLongBytesCount(value: Long): Int { - return when (value) { - in 0..127 -> 1 - in 128..16383 -> 2 - in 16384..2097151 -> 3 - in 2097152..268435455 -> 4 - in 268435456..34359738367 -> 5 - in 34359738368..4398046511103 -> 6 - in 4398046511104..562949953421311 -> 7 - in 562949953421312..72057594037927935 -> 8 - in 72057594037927936..9223372036854775807 -> 9 - else -> 10 - } - } -} \ No newline at end of file diff --git a/src/test/kotlin/io/layercraft/packetlib/utils/MinecraftNumberUtilsTest.kt b/src/test/kotlin/io/layercraft/packetlib/utils/MinecraftNumberUtilsTest.kt deleted file mode 100644 index 1de65b7..0000000 --- a/src/test/kotlin/io/layercraft/packetlib/utils/MinecraftNumberUtilsTest.kt +++ /dev/null @@ -1,70 +0,0 @@ -package io.layercraft.packetlib.utils - -import io.layercraft.packetlib.MinecraftByteBufferSerialize -import io.layercraft.packetlib.types.MinecraftVarIntUtils -import io.layercraft.packetlib.types.MinecraftVarLongUtils -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import java.nio.ByteBuffer - -internal class MinecraftNumberUtilsTest { - - private fun numberToBytes(number: Long): ByteArray { - val bytebuffer = ByteBuffer.allocate(1024) - val serialize = MinecraftByteBufferSerialize(bytebuffer) - serialize.writeVarLong(number) - - val array = ByteArray(bytebuffer.position()) - bytebuffer.rewind() - bytebuffer.get(array) - - return array - } - - private fun numberToBytes(number: Int): ByteArray { - val bytebuffer = ByteBuffer.allocate(1024) - val serialize = MinecraftByteBufferSerialize(bytebuffer) - serialize.writeVarInt(number) - - val array = ByteArray(bytebuffer.position()) - bytebuffer.rewind() - bytebuffer.get(array) - - return array - } - - @Test - fun varLongBytesCount() { - assertEquals(numberToBytes(0).size, MinecraftVarLongUtils.varLongBytesCount(0)) - assertEquals(numberToBytes(1).size, MinecraftVarLongUtils.varLongBytesCount(1)) - assertEquals(numberToBytes(127).size, MinecraftVarLongUtils.varLongBytesCount(127)) - assertEquals(numberToBytes(128).size, MinecraftVarLongUtils.varLongBytesCount(128)) - assertEquals(numberToBytes(255).size, MinecraftVarLongUtils.varLongBytesCount(255)) - assertEquals(numberToBytes(2147483647).size, MinecraftVarLongUtils.varLongBytesCount(2147483647)) - assertEquals(numberToBytes(2147483648).size, MinecraftVarLongUtils.varLongBytesCount(2147483648)) - assertEquals(numberToBytes(9223372036854775807).size, MinecraftVarLongUtils.varLongBytesCount(9223372036854775807)) - - for (i in 0..100) { - val random = (Math.random() * Long.MAX_VALUE).toLong() - assertEquals(numberToBytes(random).size, MinecraftVarLongUtils.varLongBytesCount(random)) - } - } - - @Test - fun varIntBytesCount() { - assertEquals(numberToBytes(0).size, MinecraftVarIntUtils.varIntBytesCount(0)) - assertEquals(numberToBytes(1).size, MinecraftVarIntUtils.varIntBytesCount(1)) - assertEquals(numberToBytes(127).size, MinecraftVarIntUtils.varIntBytesCount(127)) - assertEquals(numberToBytes(128).size, MinecraftVarIntUtils.varIntBytesCount(128)) - assertEquals(numberToBytes(255).size, MinecraftVarIntUtils.varIntBytesCount(255)) - assertEquals(numberToBytes(256).size, MinecraftVarIntUtils.varIntBytesCount(256)) - assertEquals(numberToBytes(32767).size, MinecraftVarIntUtils.varIntBytesCount(32767)) - assertEquals(numberToBytes(32768).size, MinecraftVarIntUtils.varIntBytesCount(32768)) - assertEquals(numberToBytes(2147483647).size, MinecraftVarIntUtils.varIntBytesCount(2147483647)) - - for (i in 0..100) { - val random = (Math.random() * Int.MAX_VALUE).toInt() - assertEquals(numberToBytes(random).size, MinecraftVarIntUtils.varIntBytesCount(random)) - } - } -} \ No newline at end of file diff --git a/types/build.gradle.kts b/types/build.gradle.kts new file mode 100644 index 0000000..d5a7c89 --- /dev/null +++ b/types/build.gradle.kts @@ -0,0 +1,16 @@ +group = "io.layercraft" +version = "1.0.0" + +dependencies { + testImplementation(kotlin("test")) + testImplementation(kotlin("test-junit5")) + testImplementation("org.junit.jupiter:junit-jupiter:5.9.0") +} + +tasks.test { + useJUnitPlatform() +} + +kotlin { + jvmToolchain(17) +} \ No newline at end of file diff --git a/types/src/main/kotlin/io/layercraft/packetlib/types/Bitfield.kt b/types/src/main/kotlin/io/layercraft/packetlib/types/Bitfield.kt new file mode 100644 index 0000000..ee4c0fe --- /dev/null +++ b/types/src/main/kotlin/io/layercraft/packetlib/types/Bitfield.kt @@ -0,0 +1,5 @@ +package io.layercraft.packetlib.types + +class Bitfield( + val bytes: ByteArray, +) \ No newline at end of file diff --git a/types/src/main/kotlin/io/layercraft/packetlib/types/ChunkBlockEntity.kt b/types/src/main/kotlin/io/layercraft/packetlib/types/ChunkBlockEntity.kt new file mode 100644 index 0000000..6d95045 --- /dev/null +++ b/types/src/main/kotlin/io/layercraft/packetlib/types/ChunkBlockEntity.kt @@ -0,0 +1,8 @@ +package io.layercraft.packetlib.types + +data class ChunkBlockEntity( + val chunkXz: Byte, + val y: Short, + val type: Int, + val data: NBT, +) \ No newline at end of file diff --git a/src/main/kotlin/io/layercraft/packetlib/types/NBT.kt b/types/src/main/kotlin/io/layercraft/packetlib/types/NBT.kt similarity index 100% rename from src/main/kotlin/io/layercraft/packetlib/types/NBT.kt rename to types/src/main/kotlin/io/layercraft/packetlib/types/NBT.kt diff --git a/types/src/main/kotlin/io/layercraft/packetlib/types/Position.kt b/types/src/main/kotlin/io/layercraft/packetlib/types/Position.kt new file mode 100644 index 0000000..c262386 --- /dev/null +++ b/types/src/main/kotlin/io/layercraft/packetlib/types/Position.kt @@ -0,0 +1,15 @@ +package io.layercraft.packetlib.types + +/** + * Position + * + * @property x + * @property y + * @property z + * @see https://wiki.vg/Protocol#Position + */ +data class Position( + val x: Int, + val y: Int, + val z: Int, +) \ No newline at end of file