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 e995b821..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), getObjectTypeFromId(wrapper.get(Type.BYTE, 0))); + return wrapper -> addTrackedEntity(wrapper, wrapper.get(Type.VAR_INT, 0), objectTypeFromId(wrapper.get(Type.BYTE, 0))); } protected PacketHandler getTrackerAndMetaHandler(Type> metaType, EntityType entityType) { @@ -161,12 +169,14 @@ 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)); } }); } @@ -380,7 +369,7 @@ public class EntityPackets1_11 extends LegacyEntityRewriter