diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java index d21f7aa..340f923 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java @@ -21,9 +21,10 @@ import java.util.Collection; */ public interface MetadataFactory { EntityData skinLayers(boolean cape, boolean jacket, boolean leftSleeve, boolean rightSleeve, boolean leftLeg, boolean rightLeg, boolean hat); - Collection effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra, boolean shaking); + EntityData effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra); EntityData silent(boolean enabled); Collection name(Component name); EntityData noGravity(); EntityData pose(EntityPose pose); + EntityData shaking(); } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java index 5320364..624c02e 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java @@ -3,8 +3,6 @@ package lol.pyr.znpcsplus.metadata; import com.github.retrooper.packetevents.protocol.entity.data.EntityData; import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes; -import java.util.Collection; - public class V1_17MetadataFactory extends V1_16MetadataFactory { @Override public EntityData skinLayers(boolean cape, boolean jacket, boolean leftSleeve, boolean rightSleeve, boolean leftLeg, boolean rightLeg, boolean hat) { @@ -12,10 +10,12 @@ public class V1_17MetadataFactory extends V1_16MetadataFactory { } @Override - public Collection effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra, boolean shaking) { - return list( - newEntityData(0, EntityDataTypes.BYTE, (byte) ((onFire ? 0x01 : 0) | (invisible ? 0x20 : 0) | (glowing ? 0x40 : 0) | (usingElytra ? 0x80 : 0))), - newEntityData(7, EntityDataTypes.INT, shaking ? 140 : 0) - ); + public EntityData effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra) { + return newEntityData(0, EntityDataTypes.BYTE, (byte) ((onFire ? 0x01 : 0) | (invisible ? 0x20 : 0) | (glowing ? 0x40 : 0) | (usingElytra ? 0x80 : 0))); + } + + @Override + public EntityData shaking() { + return newEntityData(7, EntityDataTypes.INT, 140); } } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java index 3fee8ff..b41cc24 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java @@ -18,8 +18,8 @@ public class V1_8MetadataFactory implements MetadataFactory { } @Override - public Collection effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra, boolean shaking) { - return list(newEntityData(0, EntityDataTypes.BYTE, (byte) ((onFire ? 0x01 : 0) | (invisible ? 0x20 : 0)))); + public EntityData effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra) { + return newEntityData(0, EntityDataTypes.BYTE, (byte) ((onFire ? 0x01 : 0) | (invisible ? 0x20 : 0))); } @Override @@ -40,6 +40,11 @@ public class V1_8MetadataFactory implements MetadataFactory { throw new UnsupportedOperationException("The pose entity data isn't supported on this version"); } + @Override + public EntityData shaking() { + throw new UnsupportedOperationException("The shaking entity data isn't supported on this version"); + } + @Override public EntityData silent(boolean enabled) { return newEntityData(4, EntityDataTypes.BYTE, (byte) (enabled ? 1 : 0)); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_9MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_9MetadataFactory.java index ff864c6..54cdb16 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_9MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_9MetadataFactory.java @@ -14,8 +14,8 @@ public class V1_9MetadataFactory extends V1_8MetadataFactory { } @Override - public Collection effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra, boolean shaking) { - return list(newEntityData(0, EntityDataTypes.BYTE, (byte) ((onFire ? 0x01 : 0) | (invisible ? 0x20 : 0) | (glowing ? 0x40 : 0) | (usingElytra ? 0x80 : 0)))); + public EntityData effects(boolean onFire, boolean glowing, boolean invisible, boolean usingElytra) { + return newEntityData(0, EntityDataTypes.BYTE, (byte) ((onFire ? 0x01 : 0) | (invisible ? 0x20 : 0) | (glowing ? 0x40 : 0) | (usingElytra ? 0x80 : 0))); } @Override diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java index 7f21e33..fc09651 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java @@ -20,11 +20,11 @@ public class V1_17PacketFactory extends V1_16PacketFactory { @Override public Map generateMetadata(Player player, PacketEntity entity, PropertyHolder properties) { Map data = super.generateMetadata(player, entity, properties); - addAll(data, metadataFactory.effects(properties.getProperty(propertyRegistry.getByName("fire", Boolean.class)), + add(data, metadataFactory.effects(properties.getProperty(propertyRegistry.getByName("fire", Boolean.class)), properties.hasProperty(propertyRegistry.getByName("glow", Boolean.class)), properties.getProperty(propertyRegistry.getByName("invisible", Boolean.class)), - false, - properties.getProperty(propertyRegistry.getByName("shaking", Boolean.class)))); + false)); + if (properties.getProperty(propertyRegistry.getByName("shaking", Boolean.class))) add(data, metadataFactory.shaking()); return data; } } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_8PacketFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_8PacketFactory.java index c03c5c7..3c6ca5f 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_8PacketFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_8PacketFactory.java @@ -135,11 +135,10 @@ public class V1_8PacketFactory implements PacketFactory { properties.getProperty(propertyRegistry.getByName("skin_right_leg", Boolean.class)), properties.getProperty(propertyRegistry.getByName("skin_hat", Boolean.class)) )); - addAll(data, metadataFactory.effects( + add(data, metadataFactory.effects( properties.getProperty(propertyRegistry.getByName("fire", Boolean.class)), false, properties.getProperty(propertyRegistry.getByName("invisible", Boolean.class)), - false, false) ); add(data, metadataFactory.silent(properties.getProperty(propertyRegistry.getByName("silent", Boolean.class)))); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_9PacketFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_9PacketFactory.java index 86bbc14..e492692 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_9PacketFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_9PacketFactory.java @@ -20,10 +20,9 @@ public class V1_9PacketFactory extends V1_8PacketFactory { @Override public Map generateMetadata(Player player, PacketEntity entity, PropertyHolder properties) { Map data = super.generateMetadata(player, entity, properties); - addAll(data, metadataFactory.effects(properties.getProperty(propertyRegistry.getByName("fire", Boolean.class)), + add(data, metadataFactory.effects(properties.getProperty(propertyRegistry.getByName("fire", Boolean.class)), properties.hasProperty(propertyRegistry.getByName("glow", Boolean.class)), properties.getProperty(propertyRegistry.getByName("invisible", Boolean.class)), - false, false)); return data; }