From 2aa261acaece787130a16df03cc65b7f67a9cb53 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 19 Dec 2022 18:35:10 +0100 Subject: [PATCH] InByteBuffer: uniformed position delta reading --- .../packets/s2c/play/entity/move/MovementRotationS2CP.kt | 6 +----- .../packets/s2c/play/entity/move/RelativeMoveS2CP.kt | 6 +----- .../bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt | 7 +++++++ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/MovementRotationS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/MovementRotationS2CP.kt index 6f70c8651..54147d661 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/MovementRotationS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/MovementRotationS2CP.kt @@ -25,11 +25,7 @@ import de.bixilon.minosoft.util.logging.LogMessageType @LoadPacket(threadSafe = false) class MovementRotationS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { val entityId: Int = buffer.readEntityId() - var delta: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { - Vec3d(buffer.readFixedPointNumberByte(), buffer.readFixedPointNumberByte(), buffer.readFixedPointNumberByte()) - } else { - Vec3d(buffer.readShort() / 4096f, buffer.readShort() / 4096f, buffer.readShort() / 4096f) // / 128 / 32 - } + var delta: Vec3d = buffer.readPositionDelta() val yaw: Int = buffer.readAngle() val pitch: Int = buffer.readAngle() val onGround = if (buffer.versionId >= ProtocolVersions.V_14W25B) { diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/RelativeMoveS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/RelativeMoveS2CP.kt index 467568470..76325b2bd 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/RelativeMoveS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/move/RelativeMoveS2CP.kt @@ -25,11 +25,7 @@ import de.bixilon.minosoft.util.logging.LogMessageType @LoadPacket(threadSafe = false) class RelativeMoveS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { val entityId: Int = buffer.readEntityId() - val delta: Vec3d = if (buffer.versionId < ProtocolVersions.V_16W06A) { - Vec3d(buffer.readFixedPointNumberByte(), buffer.readFixedPointNumberByte(), buffer.readFixedPointNumberByte()) - } else { - Vec3d(buffer.readShort() / 4096f, buffer.readShort() / 4096f, buffer.readShort() / 4096f) // / 128 / 32 - } + val delta: Vec3d = buffer.readPositionDelta() val onGround = if (buffer.versionId >= ProtocolVersions.V_14W25B) { buffer.readBoolean() } else { 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 01f01c2d8..7a101367c 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt @@ -413,4 +413,11 @@ class PlayInByteBuffer : InByteBuffer { } return super.readVec3d() } + + fun readPositionDelta(): Vec3d { + if (versionId < ProtocolVersions.V_16W06A) { + return Vec3d(readFixedPointNumberByte(), readFixedPointNumberByte(), readFixedPointNumberByte()) + } + return Vec3d(readShort() / 4096.0, readShort() / 4096.0, readShort() / 4096.0) // / 128 / 32 + } }