diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java index b70e22e..071aea3 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java @@ -95,6 +95,9 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { registerType("angry", false); registerType("has_nectar", false); + // Blaze + registerType("blaze_on_fire", false); + // Pufferfish registerType("puff_state", null); // TODO: Make a puff state enum class @@ -177,9 +180,6 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { registerType("piglin_dancing", false); // TODO registerType("piglin_charging_crossbow", false); // TODO - // Blaze - registerType("blaze_is_on_fire", false); // TODO - // Creeper registerType("creeper_state", null); // TODO: -1 = idle, 1 = fuse registerType("creeper_charged", false); // TODO 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 7daf843..ee9e6bc 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java @@ -50,4 +50,7 @@ public interface MetadataFactory { // Bee EntityData beeAngry(boolean angry); EntityData beeHasNectar(boolean hasNectar); + + // Blaze + EntityData blazeOnFire(boolean onFire); } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_10MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_10MetadataFactory.java index 21e0019..c4d5fff 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_10MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_10MetadataFactory.java @@ -64,4 +64,9 @@ public class V1_10MetadataFactory extends V1_9MetadataFactory { public EntityData batHanging(boolean hanging) { return newEntityData(12, EntityDataTypes.BYTE, (byte) (hanging ? 0x01 : 0)); } + + @Override + public EntityData blazeOnFire(boolean onFire) { + return newEntityData(12, EntityDataTypes.BYTE, (byte) (onFire ? 0x01 : 0)); + } } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_14MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_14MetadataFactory.java index ae76069..9f0256a 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_14MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_14MetadataFactory.java @@ -70,4 +70,9 @@ public class V1_14MetadataFactory extends V1_13MetadataFactory { public EntityData batHanging(boolean hanging) { return newEntityData(14, EntityDataTypes.BYTE, (byte) (hanging ? 0x01 : 0)); } + + @Override + public EntityData blazeOnFire(boolean onFire) { + return newEntityData(14, EntityDataTypes.BYTE, (byte) (onFire ? 0x01 : 0)); + } } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_15MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_15MetadataFactory.java index d2d192e..64ad73c 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_15MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_15MetadataFactory.java @@ -54,4 +54,9 @@ public class V1_15MetadataFactory extends V1_14MetadataFactory { public EntityData beeHasNectar(boolean hasNectar) { return newEntityData(16, EntityDataTypes.BYTE, (byte) (hasNectar ? 0x08 : 0)); } + + @Override + public EntityData blazeOnFire(boolean onFire) { + return newEntityData(15, EntityDataTypes.BYTE, (byte) (onFire ? 0x01 : 0)); + } } 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 2667def..1c7a9bc 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 @@ -94,4 +94,9 @@ public class V1_17MetadataFactory extends V1_16MetadataFactory { public EntityData beeHasNectar(boolean hasNectar) { return newEntityData(17, EntityDataTypes.BYTE, (byte) (hasNectar ? 0x08 : 0)); } + + @Override + public EntityData blazeOnFire(boolean onFire) { + return newEntityData(16, EntityDataTypes.BYTE, (byte) (onFire ? 0x01 : 0)); + } } 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 07d03b6..877d59b 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 @@ -119,6 +119,11 @@ public class V1_8MetadataFactory implements MetadataFactory { throw new UnsupportedOperationException("The bee properties entity data isn't supported on this version"); } + @Override + public EntityData blazeOnFire(boolean onFire) { + return newEntityData(16, EntityDataTypes.BYTE, (byte) (onFire ? 1 : 0)); + } + @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 4555cf3..858dc4b 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 @@ -32,6 +32,11 @@ public class V1_9MetadataFactory extends V1_8MetadataFactory { return newEntityData(11, EntityDataTypes.BYTE, (byte) (hanging ? 0x01 : 0)); } + @Override + public EntityData blazeOnFire(boolean onFire) { + return newEntityData(16, EntityDataTypes.BYTE, (byte) (onFire ? 1 : 0)); + } + @Override public EntityData name(Component name) { return newEntityData(2, EntityDataTypes.STRING, AdventureSerializer.getGsonSerializer().serialize(name)); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java index d4ae6ba..bdd5808 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java @@ -50,7 +50,8 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry { .addProperties("hanging")); register(builder(p, "blaze", EntityTypes.BLAZE) - .setHologramOffset(-0.175)); + .setHologramOffset(-0.175) + .addProperties("blaze_on_fire")); register(builder(p, "cat", EntityTypes.CAT) .setHologramOffset(-1.275)); 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 9b0985c..c33f648 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 @@ -172,12 +172,11 @@ public class V1_8PacketFactory implements PacketFactory { add(data, metadataFactory.batHanging(properties.getProperty(propertyRegistry.getByName("hanging", Boolean.class)))); } else if (entity.getType().equals(EntityTypes.BEE)) { - add(data, metadataFactory.beeAngry( - properties.getProperty(propertyRegistry.getByName("angry", Boolean.class)) - )); - add(data, metadataFactory.beeHasNectar( - properties.getProperty(propertyRegistry.getByName("has_nectar", Boolean.class)) - )); + add(data, metadataFactory.beeAngry(properties.getProperty(propertyRegistry.getByName("angry", Boolean.class)))); + add(data, metadataFactory.beeHasNectar(properties.getProperty(propertyRegistry.getByName("has_nectar", Boolean.class)))); + } + else if (entity.getType().equals(EntityTypes.BLAZE)) { + add(data, metadataFactory.blazeOnFire(properties.getProperty(propertyRegistry.getByName("blaze_on_fire", Boolean.class)))); } if (properties.hasProperty(propertyRegistry.getByName("name"))) { add(data, metadataFactory.name(PapiUtil.set(textSerializer, player, properties.getProperty(propertyRegistry.getByName("name", Component.class)))));