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