diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/EntityPlayerS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/EntityPlayerS2CP.kt index cfe2d797e..1a5fbad8f 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/EntityPlayerS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/EntityPlayerS2CP.kt @@ -49,11 +49,7 @@ class EntityPlayerS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { entityUUID = buffer.readUUID() } - val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { - Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt()) - } else { - buffer.readVec3d() - } + val position: Vec3d = buffer.readVec3d() val yaw = buffer.readAngle() val pitch = buffer.readAngle() diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityExperienceOrbS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityExperienceOrbS2CP.kt index ab27b19f5..4075919af 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityExperienceOrbS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityExperienceOrbS2CP.kt @@ -12,7 +12,6 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.play.entity.spawn -import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.minosoft.data.entities.data.EntityData import de.bixilon.minosoft.data.entities.entities.ExperienceOrb import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent @@ -20,7 +19,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.factory.LoadPacket import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer -import de.bixilon.minosoft.protocol.protocol.ProtocolVersions import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType @@ -32,11 +30,7 @@ class EntityExperienceOrbS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { connection = buffer.connection, entityType = buffer.connection.registries.entityTypeRegistry[ExperienceOrb.RESOURCE_LOCATION]!!, data = EntityData(buffer.connection), - position = if (buffer.versionId < ProtocolVersions.V_16W06A) { - Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt()) - } else { - buffer.readVec3d() - }, + position = buffer.readVec3d(), count = buffer.readUnsignedShort(), ) diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityMobSpawnS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityMobSpawnS2CP.kt index 6a8830828..114d9ae25 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityMobSpawnS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityMobSpawnS2CP.kt @@ -44,11 +44,7 @@ class EntityMobSpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { } else { buffer.readVarInt() } - val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { - Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt()) - } else { - buffer.readVec3d() - } + val position: Vec3d = buffer.readVec3d() val rotation = EntityRotation(buffer.readAngle().toDouble(), buffer.readAngle().toDouble()) val headYaw = buffer.readAngle() val velocity = buffer.readVelocity() diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityObjectSpawnS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityObjectSpawnS2CP.kt index ce9ca97d1..f205bffcf 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityObjectSpawnS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityObjectSpawnS2CP.kt @@ -45,11 +45,7 @@ class EntityObjectSpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { } else { buffer.readVarInt() } - val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { - Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt()) - } else { - buffer.readVec3d() - } + val position: Vec3d = buffer.readVec3d() val rotation = EntityRotation(buffer.readAngle().toDouble(), buffer.readAngle().toDouble()) // ToDo: Is yaw/pitch swapped? if (buffer.versionId >= ProtocolVersions.V_22W14A) { val headYaw = buffer.readAngle() diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/GlobalEntitySpawnS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/GlobalEntitySpawnS2CP.kt index 986e5b4cc..a46b4cf41 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/GlobalEntitySpawnS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/GlobalEntitySpawnS2CP.kt @@ -20,7 +20,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.factory.LoadPacket import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer -import de.bixilon.minosoft.protocol.protocol.ProtocolVersions import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType @@ -32,11 +31,7 @@ class GlobalEntitySpawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { val entity: LightningBolt init { - val position: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { - Vec3d(buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt(), buffer.readFixedPointNumberInt()) - } else { - buffer.readVec3d() - } + val position: Vec3d = buffer.readVec3d() entity = LightningBolt(buffer.connection, buffer.connection.registries.entityTypeRegistry[LightningBolt.RESOURCE_LOCATION]!!, EntityData(buffer.connection), position) } diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt index 715d37960..acf6778fb 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt @@ -295,7 +295,7 @@ open class InByteBuffer { return Vec3(readFloat(), readFloat(), readFloat()) } - fun readVec3d(): Vec3d { + open fun readVec3d(): Vec3d { return Vec3d(readDouble(), readDouble(), readDouble()) } diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt b/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt index 30c7812e3..01f01c2d8 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt @@ -12,6 +12,7 @@ */ package de.bixilon.minosoft.protocol.protocol +import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.kotlinglm.vec3.Vec3i import de.bixilon.kutil.array.ArrayUtil.cast import de.bixilon.kutil.bit.BitByte.isBitMask @@ -405,4 +406,11 @@ class PlayInByteBuffer : InByteBuffer { readFloat() } } + + override fun readVec3d(): Vec3d { + if (versionId < ProtocolVersions.V_16W06A) { + return Vec3d(readFixedPointNumberInt(), readFixedPointNumberInt(), readFixedPointNumberInt()) + } + return super.readVec3d() + } }