diff --git a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/LegacyEntityRewriter.java b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/LegacyEntityRewriter.java index ea9c401b..53a6bb71 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/LegacyEntityRewriter.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/LegacyEntityRewriter.java @@ -113,7 +113,7 @@ public abstract class LegacyEntityRewriter> metaType) { + protected PacketHandler getMobSpawnRewriter(Type> metaType, IdSetter idSetter) { return wrapper -> { int entityId = wrapper.get(Type.VAR_INT, 0); EntityType type = tracker(wrapper.user()).entityType(entityId); @@ -123,7 +123,7 @@ public abstract class LegacyEntityRewriter> metaType) { + return getMobSpawnRewriter(metaType, (wrapper, id) -> wrapper.set(Type.UNSIGNED_BYTE, 0, (short) id)); + } + + public PacketHandler getMobSpawnRewriter1_11(Type> metaType) { + return getMobSpawnRewriter(metaType, (wrapper, id) -> wrapper.set(Type.VAR_INT, 1, id)); + } + protected PacketHandler getObjectTrackerHandler() { return wrapper -> addTrackedEntity(wrapper, wrapper.get(Type.VAR_INT, 0), objectTypeFromId(wrapper.get(Type.BYTE, 0))); } @@ -165,4 +173,10 @@ public abstract class LegacyEntityRewriter { - int entityId = wrapper.get(Type.VAR_INT, 0); - EntityType type = tracker(wrapper.user()).entityType(entityId); - - List list = wrapper.get(Types1_9.METADATA_LIST, 0); - handleMetadata(wrapper.get(Type.VAR_INT, 0), list, wrapper.user()); - - EntityData entityData = entityDataForType(type); - if (entityData != null) { - wrapper.set(Type.UNSIGNED_BYTE, 0, (short) entityData.replacementId()); - if (entityData.hasBaseMeta()) { - entityData.defaultMeta().createMeta(new WrappedMetadata(list)); - } - } - - // Sub 1.11 clients will error if the list is empty - if (list.isEmpty()) { - list.add(new Metadata(0, MetaType1_9.Byte, (byte) 0)); + List metadata = wrapper.get(Types1_9.METADATA_LIST, 0); + if (metadata.isEmpty()) { + metadata.add(new Metadata(0, MetaType1_9.Byte, (byte) 0)); } }); } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java index 4123d40c..753ea278 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java @@ -89,7 +89,7 @@ public class EntityPackets1_12 extends LegacyEntityRewriter