diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CatAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CatAttributes.java index 578ed490..1ce945b5 100644 --- a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CatAttributes.java +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CatAttributes.java @@ -6,9 +6,9 @@ import de.oliver.fancynpcs.v1_21_6.ReflectionHelper; import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.Registries; -import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.animal.Cat; import net.minecraft.world.entity.animal.CatVariant; import net.minecraft.world.item.DyeColor; @@ -82,10 +82,7 @@ public class CatAttributes { } private static HolderLookup.RegistryLookup getCatVariantRegistry() { - return VanillaRegistries - .createLookup() - .lookup(Registries.CAT_VARIANT) - .orElseThrow(); + return MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.CAT_VARIANT); } private static void setCollarColor(Npc npc, String value) { diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/ChickenAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/ChickenAttributes.java index a89c3ff9..59ad7c9b 100644 --- a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/ChickenAttributes.java +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/ChickenAttributes.java @@ -6,9 +6,9 @@ import de.oliver.fancynpcs.v1_21_6.ReflectionHelper; import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.Registries; -import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.animal.Chicken; import net.minecraft.world.entity.animal.ChickenVariant; import org.bukkit.entity.EntityType; @@ -48,10 +48,7 @@ public class ChickenAttributes { } private static HolderLookup.RegistryLookup getChickenVariantRegistry() { - return VanillaRegistries - .createLookup() - .lookup(Registries.CHICKEN_VARIANT) - .orElseThrow(); + return MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.CHICKEN_VARIANT); } } diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CowAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CowAttributes.java index 70a7f74f..668133cf 100644 --- a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CowAttributes.java +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/CowAttributes.java @@ -6,9 +6,9 @@ import de.oliver.fancynpcs.v1_21_6.ReflectionHelper; import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.Registries; -import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.animal.Cow; import net.minecraft.world.entity.animal.CowVariant; import org.bukkit.entity.EntityType; @@ -48,10 +48,7 @@ public class CowAttributes { } private static HolderLookup.RegistryLookup getCowVariantRegistry() { - return VanillaRegistries - .createLookup() - .lookup(Registries.COW_VARIANT) - .orElseThrow(); + return MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.COW_VARIANT); } } diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/FrogAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/FrogAttributes.java index 36ba0dde..99f13552 100644 --- a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/FrogAttributes.java +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/FrogAttributes.java @@ -6,9 +6,9 @@ import de.oliver.fancynpcs.v1_21_6.ReflectionHelper; import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.Registries; -import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.animal.frog.Frog; import net.minecraft.world.entity.animal.frog.FrogVariant; import org.bukkit.entity.EntityType; @@ -48,9 +48,6 @@ public class FrogAttributes { } private static HolderLookup.RegistryLookup getFrogVariantRegistry() { - return VanillaRegistries - .createLookup() - .lookup(Registries.FROG_VARIANT) - .orElseThrow(); + return MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.FROG_VARIANT); } } diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/HorseAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/HorseAttributes.java index 7adec4c4..ee2ee8ac 100644 --- a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/HorseAttributes.java +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/HorseAttributes.java @@ -68,17 +68,14 @@ public class HorseAttributes { switch (value.toLowerCase()) { case "standing" -> { horse.setEating(false); - //TODO fix -// horse.setForceStanding(false); + horse.setStanding(0); } case "rearing" -> { - //TODO fix -// horse.setForceStanding(true); + horse.setStanding(20); horse.setEating(false); } case "eating" -> { - //TODO fix -// horse.setForceStanding(false); + horse.setStanding(0); horse.setEating(true); } } diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/PigAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/PigAttributes.java index 61ab8b02..ef372635 100644 --- a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/PigAttributes.java +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/PigAttributes.java @@ -6,9 +6,9 @@ import de.oliver.fancynpcs.v1_21_6.ReflectionHelper; import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.Registries; -import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.animal.Pig; import net.minecraft.world.entity.animal.PigVariant; @@ -67,10 +67,7 @@ public class PigAttributes { } private static HolderLookup.RegistryLookup getPigVariantRegistry() { - return VanillaRegistries - .createLookup() - .lookup(Registries.PIG_VARIANT) - .orElseThrow(); + return MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.PIG_VARIANT); } } diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/SnifferAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/SnifferAttributes.java new file mode 100644 index 00000000..da750d27 --- /dev/null +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/SnifferAttributes.java @@ -0,0 +1,36 @@ +package de.oliver.fancynpcs.v1_21_6.attributes; + +import de.oliver.fancynpcs.api.Npc; +import de.oliver.fancynpcs.api.NpcAttribute; +import de.oliver.fancynpcs.v1_21_6.ReflectionHelper; +import net.minecraft.world.entity.animal.sniffer.Sniffer; +import org.bukkit.entity.EntityType; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class SnifferAttributes { + + public static List getAllAttributes() { + List attributes = new ArrayList<>(); + + attributes.add(new NpcAttribute( + "state", + Arrays.stream(Sniffer.State.values()) + .map(Enum::name) + .toList(), + List.of(EntityType.SNIFFER), + SnifferAttributes::setState + )); + + return attributes; + } + + private static void setState(Npc npc, String value) { + final Sniffer sniffer = ReflectionHelper.getEntity(npc); + + Sniffer.State state = Sniffer.State.valueOf(value.toUpperCase()); + sniffer.transitionTo(state); + } +} diff --git a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/WolfAttributes.java b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/WolfAttributes.java index 75872ac0..710e6601 100644 --- a/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/WolfAttributes.java +++ b/plugins/fancynpcs/implementation_1_21_6/src/main/java/de/oliver/fancynpcs/v1_21_6/attributes/WolfAttributes.java @@ -7,8 +7,8 @@ import net.minecraft.core.Holder; import net.minecraft.core.HolderLookup; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; -import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.animal.wolf.Wolf; import net.minecraft.world.entity.animal.wolf.WolfVariant; import net.minecraft.world.item.DyeColor; @@ -122,9 +122,6 @@ public class WolfAttributes { } private static HolderLookup.RegistryLookup getWolfVariantRegistry() { - return VanillaRegistries - .createLookup() - .lookup(Registries.WOLF_VARIANT) - .orElseThrow(); + return MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.WOLF_VARIANT); } } diff --git a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/AttributeManagerImpl.java b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/AttributeManagerImpl.java index 7c42ae6c..5326f70e 100644 --- a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/AttributeManagerImpl.java +++ b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/AttributeManagerImpl.java @@ -30,7 +30,7 @@ public class AttributeManagerImpl implements AttributeManager { private void init() { String mcVersion = Bukkit.getMinecraftVersion(); switch (mcVersion) { - case "1.21.6" -> attributes = Attributes_1_21_6.getAllAttributes(); + case "1.21.6 Release Candidate 1" -> attributes = Attributes_1_21_6.getAllAttributes(); case "1.21.5" -> attributes = Attributes_1_21_5.getAllAttributes(); case "1.21.4" -> attributes = Attributes_1_21_4.getAllAttributes(); case "1.21.2", "1.21.3" -> attributes = Attributes_1_21_3.getAllAttributes(); diff --git a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java index 9361c2e4..fe15151f 100644 --- a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java +++ b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java @@ -155,7 +155,7 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin { String mcVersion = Bukkit.getMinecraftVersion(); switch (mcVersion) { - case "1.21.6" -> npcAdapter = Npc_1_21_6::new; + case "1.21.6 Release Candidate 1" -> npcAdapter = Npc_1_21_6::new; case "1.21.5" -> npcAdapter = Npc_1_21_5::new; case "1.21.4" -> npcAdapter = Npc_1_21_4::new; case "1.21.2", "1.21.3" -> npcAdapter = Npc_1_21_3::new;