diff --git a/UltimateStacker-Plugin/pom.xml b/UltimateStacker-Plugin/pom.xml index 8d14825..1d62e49 100644 --- a/UltimateStacker-Plugin/pom.xml +++ b/UltimateStacker-Plugin/pom.xml @@ -128,7 +128,7 @@ org.spigotmc spigot-api - 1.18-R0.1-SNAPSHOT + 1.20-R0.1-SNAPSHOT provided diff --git a/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/stackable/entity/Check.java b/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/stackable/entity/Check.java index 90fee5b..f1b7633 100644 --- a/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/stackable/entity/Check.java +++ b/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/stackable/entity/Check.java @@ -39,8 +39,17 @@ public enum Check { TROPICALFISH_BODY_COLOR(true), TROPICALFISH_PATTERN_COLOR(true), PHANTOM_SIZE(true), - CAT_TYPE(false); - + CAT_TYPE(false), + AXOLOTL_VARIANT(false), + AXOLOTL_PLAYING_DEAD(true), + GLOW_SQUID_DARK_TICKS(true), + GOAT_HAS_HORNS(false), + FROG_VARIANT(true), + TADPOLE_AGE(false), + WARDEN_ANGER_LEVEL(false), + SNIFFER_HAS_SEEDS(true), + FOX_TYPE(false), + HOGLIN_IMMUNE(true); private final boolean isEnabledByDefault; private final static Map checks = new HashMap(); diff --git a/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/tasks/StackingTask.java b/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/tasks/StackingTask.java index 717d17a..fe2cb1d 100644 --- a/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/tasks/StackingTask.java +++ b/UltimateStacker-Plugin/src/main/java/com.craftaro.ultimatestacker/tasks/StackingTask.java @@ -17,32 +17,7 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.entity.AbstractHorse; -import org.bukkit.entity.Ageable; -import org.bukkit.entity.ArmorStand; -import org.bukkit.entity.Cat; -import org.bukkit.entity.ChestedHorse; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Horse; -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Llama; -import org.bukkit.entity.Ocelot; -import org.bukkit.entity.Parrot; -import org.bukkit.entity.Phantom; -import org.bukkit.entity.Pig; -import org.bukkit.entity.PufferFish; -import org.bukkit.entity.Rabbit; -import org.bukkit.entity.Sheep; -import org.bukkit.entity.Skeleton; -import org.bukkit.entity.Slime; -import org.bukkit.entity.Snowman; -import org.bukkit.entity.Tameable; -import org.bukkit.entity.TropicalFish; -import org.bukkit.entity.Villager; -import org.bukkit.entity.Wolf; -import org.bukkit.entity.Zombie; +import org.bukkit.entity.*; import org.bukkit.inventory.EntityEquipment; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; @@ -634,6 +609,64 @@ public class StackingTask extends TimerTask { entityList.removeIf(entity -> ((Phantom) entity).getSize() != phantom.getSize()); break; } + case AXOLOTL_VARIANT: { + if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_17) + || !(initialEntity instanceof Axolotl)) break; + Axolotl axolotl = (Axolotl) initialEntity; + entityList.removeIf(entity -> ((Axolotl) entity).getVariant() != axolotl.getVariant()); + break; + } + case GOAT_HAS_HORNS: { + if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_17) + || !(initialEntity instanceof Goat)) break; + Goat goat = (Goat) initialEntity; + boolean hasLeftHorn = goat.hasLeftHorn(); + boolean hasRightHorn = goat.hasRightHorn(); + entityList.removeIf(entity -> { + Goat otherGoat = (Goat) entity; + return otherGoat.hasLeftHorn() != hasLeftHorn || otherGoat.hasRightHorn() != hasRightHorn; + }); + break; + } + case FROG_VARIANT: { + if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_19) + || !(initialEntity instanceof Frog)) break; + Frog frog = (Frog) initialEntity; + entityList.removeIf(entity -> ((Frog) entity).getVariant() != frog.getVariant()); + break; + } + case TADPOLE_AGE: { + if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_19) + || !(initialEntity instanceof Tadpole)) break; + Tadpole tadpole = (Tadpole) initialEntity; + entityList.removeIf(entity -> ((Tadpole) entity).getAge() != tadpole.getAge()); + break; + } + case WARDEN_ANGER_LEVEL: { + if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_19) + || !(initialEntity instanceof Warden)) break; + Warden warden = (Warden) initialEntity; + entityList.removeIf(entity -> ((Warden) entity).getAnger() != warden.getAnger()); + break; + } + case FOX_TYPE: { + if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_14) + || !(initialEntity instanceof Fox)) break; + Fox fox = (Fox) initialEntity; + entityList.removeIf(entity -> ((Fox) entity).getFoxType() != fox.getFoxType()); + break; + } + case HOGLIN_IMMUNE: { + if (!ServerVersion.isServerVersionAtLeast(ServerVersion.V1_16) + || !(initialEntity instanceof Hoglin)) break; + Hoglin hoglin = (Hoglin) initialEntity; + if (hoglin.isImmuneToZombification()) { + entityList.removeIf(entity -> !((Hoglin) entity).isImmuneToZombification()); + } else { + entityList.removeIf(entity -> ((Hoglin) entity).isImmuneToZombification()); + } + break; + } } }