From b1f87d12bdee075a52ce3f928ab2ef44de992030 Mon Sep 17 00:00:00 2001 From: D3v1s0m Date: Tue, 12 Sep 2023 23:49:08 +0530 Subject: [PATCH] Added pig_saddled property --- .../entity/EntityPropertyRegistryImpl.java | 33 ++++++++++--------- .../znpcsplus/npc/NpcTypeRegistryImpl.java | 3 +- 2 files changed, 20 insertions(+), 16 deletions(-) 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 36c26ce..9c7a4ef 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java @@ -97,9 +97,6 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { // Sniffer registerType("sniffer_state", null); // TODO: Nothing on wiki.vg, look in mc source - // Pig - registerType("pig_saddle", false); // TODO - // Rabbit registerType("rabbit_type", 0); // TODO: Figure this out @@ -118,9 +115,6 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { registerType("wolf_collar_color", DyeColor.RED); // TODO registerType("wolf_angry", false); // TODO - // Parrot - registerType("parrot_variant", 0); // TODO - // Villager registerType("villager_type", VillagerType.PLAINS); registerType("villager_profession", VillagerProfession.NONE); @@ -283,12 +277,11 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { else if (ver.isNewerThanOrEquals(ServerVersion.V_1_9)) horseIndex = 12; else horseIndex = 16; int horseEating = ver.isNewerThanOrEquals(ServerVersion.V_1_12) ? 0x10 : 0x20; - boolean v1_8 = ver.isOlderThan(ServerVersion.V_1_9); - register(new BitsetProperty("is_tame", horseIndex, 0x02, false, v1_8)); - register(new BitsetProperty("is_saddled", horseIndex, 0x04, false, v1_8)); - register(new BitsetProperty("is_eating", horseIndex, horseEating, false, v1_8)); - register(new BitsetProperty("is_rearing", horseIndex, horseEating << 1, false, v1_8)); - register(new BitsetProperty("has_mouth_open", horseIndex, horseEating << 2, false, v1_8)); + register(new BitsetProperty("is_tame", horseIndex, 0x02, false, legacyBooleans)); + register(new BitsetProperty("is_saddled", horseIndex, 0x04, false, legacyBooleans)); + register(new BitsetProperty("is_eating", horseIndex, horseEating, false, legacyBooleans)); + register(new BitsetProperty("is_rearing", horseIndex, horseEating << 1, false, legacyBooleans)); + register(new BitsetProperty("has_mouth_open", horseIndex, horseEating << 2, false, legacyBooleans)); // Horse if (ver.isNewerThanOrEquals(ServerVersion.V_1_8) && ver.isOlderThan(ServerVersion.V_1_9)) { @@ -317,7 +310,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { // Chested Horse if (ver.isOlderThan(ServerVersion.V_1_11)) { - register(new BitsetProperty("has_chest", horseIndex, 0x08, false, v1_8)); + register(new BitsetProperty("has_chest", horseIndex, 0x08, false, legacyBooleans)); linkProperties("is_saddled", "has_chest", "is_eating", "is_rearing", "has_mouth_open"); } else { register(new BooleanProperty("has_chest", horseVariantIndex, false, legacyBooleans)); @@ -332,7 +325,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { else if (ver.isNewerThanOrEquals(ServerVersion.V_1_10)) sizeIndex = 12; else if (ver.isNewerThanOrEquals(ServerVersion.V_1_9)) sizeIndex = 11; else sizeIndex = 16; - register(new IntegerProperty("size", sizeIndex, 1, v1_8)); + register(new IntegerProperty("size", sizeIndex, 1, legacyBooleans)); // Ocelot if (ver.isOlderThan(ServerVersion.V_1_14)) { @@ -340,10 +333,20 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { if (ver.isNewerThanOrEquals(ServerVersion.V_1_10)) ocelotIndex = 15; else if (ver.isNewerThanOrEquals(ServerVersion.V_1_9)) ocelotIndex = 14; else ocelotIndex = 18; - if (v1_8) register(new EncodedByteProperty<>("ocelot_type", OcelotType.OCELOT, ocelotIndex, obj -> (byte) obj.ordinal())); + if (legacyBooleans) register(new EncodedByteProperty<>("ocelot_type", OcelotType.OCELOT, ocelotIndex, obj -> (byte) obj.ordinal())); else register(new EncodedIntegerProperty<>("ocelot_type", OcelotType.OCELOT, ocelotIndex, Enum::ordinal)); } + // Pig + int pigIndex; + if (ver.isNewerThanOrEquals(ServerVersion.V_1_17)) pigIndex = 17; + else if (ver.isNewerThanOrEquals(ServerVersion.V_1_15)) pigIndex = 16; + else if (ver.isNewerThanOrEquals(ServerVersion.V_1_14)) pigIndex = 15; + else if (ver.isNewerThanOrEquals(ServerVersion.V_1_10)) pigIndex = 13; + else if (ver.isNewerThanOrEquals(ServerVersion.V_1_9)) pigIndex = 12; + else pigIndex = 16; + register(new BooleanProperty("pig_saddled", pigIndex, false, legacyBooleans)); + if (!ver.isNewerThanOrEquals(ServerVersion.V_1_11)) return; // Spellcaster Illager int spellIndex = 12; 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 5249a7f..6c41b0e 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java @@ -111,7 +111,8 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry { .setHologramOffset(-1.275)); register(builder(p, "pig", EntityTypes.PIG) - .setHologramOffset(-1.075)); + .setHologramOffset(-1.075) + .addProperties("pig_saddled")); register(builder(p, "rabbit", EntityTypes.RABBIT) .setHologramOffset(-1.475));