diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/NamedSoundS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/NamedSoundS2CP.kt index d1e1d424d..977f2caf9 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/NamedSoundS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/NamedSoundS2CP.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.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolVersions import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels @@ -56,11 +55,7 @@ class NamedSoundS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { position = Vec3(buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4) } volume = buffer.readFloat() - pitch = if (buffer.versionId < ProtocolVersions.V_16W20A) { - buffer.readByte() * ProtocolDefinition.PITCH_CALCULATION_CONSTANT / 100.0f - } else { - buffer.readFloat() - } + pitch = buffer.readSoundPitch() if (buffer.versionId >= ProtocolVersions.V_22W14A) { magicRandom = buffer.readLong() diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/SoundEventS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/SoundEventS2CP.kt index 15bb8dc99..fb1b8a0fe 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/SoundEventS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/sound/SoundEventS2CP.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.ProtocolDefinition import de.bixilon.minosoft.protocol.protocol.ProtocolVersions import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels @@ -64,11 +63,7 @@ class SoundEventS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { } position = Vec3i(buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4, buffer.readFixedPointNumberInt() * 4) volume = buffer.readFloat() - pitch = if (buffer.versionId < ProtocolVersions.V_16W20A) { - buffer.readByte() * ProtocolDefinition.PITCH_CALCULATION_CONSTANT / 100.0f - } else { - buffer.readFloat() - } + pitch = buffer.readSoundPitch() if (buffer.versionId >= ProtocolVersions.V_22W14A) { seed = buffer.readLong() 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 78253eb3a..30c7812e3 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/PlayInByteBuffer.kt @@ -397,4 +397,12 @@ class PlayInByteBuffer : InByteBuffer { parameters[ChatParameter.SENDER] = readChatComponent() readOptional { readChatComponent() }?.let { parameters[ChatParameter.TARGET] = it } } + + fun readSoundPitch(): Float { + return if (versionId < ProtocolVersions.V_16W20A) { + readByte() * ProtocolDefinition.SOUND_PITCH_DIVIDER / 100.0f + } else { + readFloat() + } + } }