From cf8c427af1c522df12e70febc442c7d462531d6a Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Sat, 7 Oct 2023 19:14:31 +0200 Subject: [PATCH] fix 1.7 network errors, read/handle legacy tab list correctly --- .../packets/s2c/play/entity/spawn/EntityPlayerS2CP.kt | 2 +- .../protocol/packets/s2c/play/sound/NamedSoundS2CP.kt | 2 +- .../protocol/packets/s2c/play/tab/LegacyTabListS2CP.kt | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityPlayerS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityPlayerS2CP.kt index e01578405..fa2990baf 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityPlayerS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/entity/spawn/EntityPlayerS2CP.kt @@ -32,7 +32,7 @@ import java.util.* class EntityPlayerS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { val entityId: Int - val entityUUID: UUID? + val entityUUID: UUID val entity: PlayerEntity init { 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 636f6fc92..f3695cc9e 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 @@ -33,7 +33,7 @@ class NamedSoundS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { val pitch: Float lateinit var position: Vec3d private set - lateinit var category: SoundCategories + var category: SoundCategories? = null private set var seed: Long = 0L private set diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/tab/LegacyTabListS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/tab/LegacyTabListS2CP.kt index ae7d99d9f..45fb77d94 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/tab/LegacyTabListS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/tab/LegacyTabListS2CP.kt @@ -12,7 +12,9 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.play.tab +import de.bixilon.minosoft.data.entities.entities.player.additional.AdditionalDataUpdate import de.bixilon.minosoft.data.entities.entities.player.additional.PlayerAdditional +import de.bixilon.minosoft.modding.event.events.TabListEntryChangeEvent import de.bixilon.minosoft.protocol.ProtocolUtil.encodeNetwork import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket @@ -34,9 +36,9 @@ class LegacyTabListS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { buffer.readVarInt() } if (buffer.readBoolean()) { - items[name] = ping // update latency or add - } else { items[name] = null // remove + } else { + items[name] = ping // update latency or add } } @@ -58,6 +60,7 @@ class LegacyTabListS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { connection.tabList.name[name] = item } item.ping = ping + connection.events.fire(TabListEntryChangeEvent(connection, mapOf(uuid to AdditionalDataUpdate(ping = ping)))) } }