From c468ec714c74a4b9d3d2072f14860a981cf784ce Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 28 May 2023 12:15:42 +0200 Subject: [PATCH] Handle servers not sending 1.16 expected tags Fixes #548 --- .../protocol1_16_4to1_17/Protocol1_16_4To1_17.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java index a645b160..54599513 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java @@ -53,6 +53,7 @@ import java.util.Map; public final class Protocol1_16_4To1_17 extends BackwardsProtocol { public static final BackwardsMappings MAPPINGS = new BackwardsMappings("1.17", "1.16.2", Protocol1_17To1_16_4.class); + private static final RegistryType[] TAG_REGISTRY_TYPES = {RegistryType.BLOCK, RegistryType.ITEM, RegistryType.FLUID, RegistryType.ENTITY}; private static final int[] EMPTY_ARRAY = {}; private final EntityPackets1_17 entityRewriter = new EntityPackets1_17(this); private final BlockItemPackets1_17 blockItemPackets = new BlockItemPackets1_17(this); @@ -98,8 +99,14 @@ public final class Protocol1_16_4To1_17 extends BackwardsProtocol tagList = tags.get(type.resourceLocation()); + if (tagList == null) { + // Higher versions may not send the otherwise expected tags + wrapper.write(Type.VAR_INT, 0); + continue; + } + IdRewriteFunction rewriter = tagRewriter.getRewriter(type); wrapper.write(Type.VAR_INT, tagList.size()); @@ -120,11 +127,6 @@ public final class Protocol1_16_4To1_17 extends BackwardsProtocol