From 0a4bc4126fee3fa6f7dc61b3fa652221965cba25 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Thu, 2 Apr 2026 04:09:20 +0200 Subject: [PATCH] Fixed massive SyncPacket failure --- .../network/packets/data/large/SyncPacket.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java b/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java index 8ef77a69a..dcd940a50 100644 --- a/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java +++ b/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java @@ -82,9 +82,11 @@ public final class SyncPacket extends LargeAbstractPacket { buffer.writeInt(syncType.ordinal()); buffer.writeInt(enumSyncAction.ordinal()); buffer.writeInt(operationID); + buffer.writeInt(revision); + + // UPDATE/REMOVE UNIQUE FIELDS buffer.writeBoolean(hasKey); if (hasKey) ByteBufUtils.writeString(buffer, operationKey); - buffer.writeInt(revision); buffer.writeBoolean(hasNbt); if (hasNbt) ByteBufUtils.writeBigNBT(buffer, syncData); @@ -135,9 +137,16 @@ public final class SyncPacket extends LargeAbstractPacket { int syncTypeOrdinal = data.readInt(); int syncActionOrdinal = data.readInt(); operationID = data.readInt(); - if (data.readBoolean()) operationKey = ByteBufUtils.readString(data); revision = data.readInt(); - if (data.readBoolean()) syncData = ByteBufUtils.readBigNBT(data); + + EnumSyncAction action = EnumSyncAction.values()[syncActionOrdinal]; + + // These fields only exist for UPDATE/REMOVE + if (action != EnumSyncAction.RELOAD) { + if (data.readBoolean()) operationKey = ByteBufUtils.readString(data); + if (data.readBoolean()) syncData = ByteBufUtils.readBigNBT(data); + } else + syncData = ByteBufUtils.readBigNBT(data); syncType = SyncType.byOrdinal(syncTypeOrdinal); @@ -146,7 +155,6 @@ public final class SyncPacket extends LargeAbstractPacket { return; } - EnumSyncAction action = EnumSyncAction.values()[syncActionOrdinal]; handleSync(syncType, action, operationID, operationKey, revision, syncData); }