diff --git a/README.md b/README.md index 447e49150f..8993207a99 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ The Denizen Scripting Language - Spigot Impl An implementation of the Denizen Scripting Language for Spigot servers, with strong Citizens interlinks to emphasize the power of using Denizen with NPCs! -**Version 1.2.6**: Compatible with Spigot 1.16.5, 1.17.1, 1.18.2, and 1.19.3! +**Version 1.2.6**: Compatible with Spigot 1.17.1, 1.18.2, and 1.19.3! **Learn about Denizen from the Beginner's guide:** https://guide.denizenscript.com/guides/background/index.html diff --git a/dist/pom.xml b/dist/pom.xml index 51cddd2b69..e4e68a8581 100644 --- a/dist/pom.xml +++ b/dist/pom.xml @@ -26,12 +26,6 @@ compile true - - com.denizenscript - denizen-v1_16 - ${project.parent.version} - compile - com.denizenscript denizen-v1_17 diff --git a/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperEntityProperties.java b/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperEntityProperties.java index d456a37c76..96676b4abf 100644 --- a/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperEntityProperties.java +++ b/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperEntityProperties.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.paper.properties; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.EntityFormObject; import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizen.objects.LocationTag; @@ -170,7 +168,6 @@ public void adjust(Mechanism mechanism) { // Causes a goat to ram the specified entity. // --> if (mechanism.matches("goat_ram") && mechanism.requireObject(EntityTag.class) - && NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && entity.getBukkitEntity() instanceof Goat) { ((Goat) entity.getBukkitEntity()).ram(mechanism.valueAsType(EntityTag.class).getLivingEntity()); } diff --git a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java index 24fb2fe4af..0fcbd68fdc 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java +++ b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java @@ -4,7 +4,6 @@ import com.denizenscript.denizen.events.bukkit.SavesReloadEvent; import com.denizenscript.denizen.events.server.ServerPrestartScriptEvent; import com.denizenscript.denizen.events.server.ServerStartScriptEvent; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.InventoryTag; import com.denizenscript.denizen.objects.NPCTag; import com.denizenscript.denizen.objects.PlayerTag; @@ -42,7 +41,6 @@ import com.denizenscript.denizen.npc.TraitRegistry; import com.denizenscript.denizen.npc.DenizenNPCHelper; import com.denizenscript.denizen.utilities.packets.NetworkInterceptHelper; -import com.denizenscript.denizen.utilities.world.VoidGenerator; import com.denizenscript.denizen.utilities.world.VoidGenerator1_17; import com.denizenscript.denizencore.DenizenCore; import com.denizenscript.denizencore.objects.ObjectFetcher; @@ -608,10 +606,7 @@ private boolean suggestClosestModifier(CommandSender sender, String command, Str @Override public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) { if (CoreUtilities.toLowerCase(id).equals("void")) { - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - return new VoidGenerator1_17(); - } - return new VoidGenerator(); + return new VoidGenerator1_17(); } return null; } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java index b73f0656da..61fadf7f33 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java @@ -646,7 +646,7 @@ public static boolean runFlaggedCheck(ScriptPath path, String switchName, Abstra } public boolean runLocationFlaggedCheck(ScriptPath path, String switchName, Location location) { - if (!path.switches.containsKey(switchName)) { // NOTE: opti to avoid 'getFlagTracker' call, also prevents pre-1.16 borks + if (!path.switches.containsKey(switchName)) { // NOTE: opti to avoid 'getFlagTracker' call return true; } return runFlaggedCheck(path, switchName, location == null ? null : new LocationTag(location).getFlagTracker()); diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java b/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java index 3f5b8dc652..802f627fd5 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java @@ -12,8 +12,6 @@ import com.denizenscript.denizen.events.server.*; import com.denizenscript.denizen.events.vehicle.*; import com.denizenscript.denizen.events.world.*; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.utilities.depends.Depends; import com.denizenscript.denizencore.events.ScriptEvent; import com.denizenscript.denizencore.events.ScriptEventCouldMatcher; @@ -78,9 +76,7 @@ public static void registerMainEvents() { ScriptEvent.registerScriptEvent(BrewsScriptEvent.class); ScriptEvent.registerScriptEvent(CauldronLevelChangeScriptEvent.class); ScriptEvent.registerScriptEvent(FurnaceBurnsItemScriptEvent.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - ScriptEvent.registerScriptEvent(FurnaceStartsSmeltingScriptEvent.class); - } + ScriptEvent.registerScriptEvent(FurnaceStartsSmeltingScriptEvent.class); ScriptEvent.registerScriptEvent(LeafDecaysScriptEvent.class); ScriptEvent.registerScriptEvent(LiquidLevelChangeScriptEvent.class); ScriptEvent.registerScriptEvent(LiquidSpreadScriptEvent.class); @@ -262,17 +258,11 @@ public static void registerMainEvents() { ScriptEvent.registerScriptEvent(VehicleMoveScriptEvent.class); // World events - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - ScriptEvent.registerScriptEvent(ChunkLoadEntitiesScriptEvent.class); - } + ScriptEvent.registerScriptEvent(ChunkLoadEntitiesScriptEvent.class); ScriptEvent.registerScriptEvent(ChunkLoadScriptEvent.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - ScriptEvent.registerScriptEvent(ChunkUnloadEntitiesScriptEvent.class); - } + ScriptEvent.registerScriptEvent(ChunkUnloadEntitiesScriptEvent.class); ScriptEvent.registerScriptEvent(ChunkUnloadScriptEvent.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - ScriptEvent.registerScriptEvent(GenericGameEventScriptEvent.class); - } + ScriptEvent.registerScriptEvent(GenericGameEventScriptEvent.class); ScriptEvent.registerScriptEvent(LightningStrikesScriptEvent.class); ScriptEvent.registerScriptEvent(LingeringPotionSplashScriptEvent.class); ScriptEvent.registerScriptEvent(LootGenerateScriptEvent.class); diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerPlacesHangingScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerPlacesHangingScriptEvent.java index 718a6d89dc..3d51136ec3 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerPlacesHangingScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerPlacesHangingScriptEvent.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.events.player; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizen.objects.ItemTag; import com.denizenscript.denizen.objects.LocationTag; @@ -9,7 +7,6 @@ import com.denizenscript.denizen.events.BukkitScriptEvent; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.scripts.ScriptEntryData; -import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -89,7 +86,7 @@ public void onPlayerPlacesHanging(HangingPlaceEvent event) { EntityTag.rememberEntity(hangingEntity); hanging = new EntityTag(hangingEntity); location = new LocationTag(event.getBlock().getLocation()); - item = NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) ? new ItemTag(event.getItemStack()) : new ItemTag(Material.AIR); + item = new ItemTag(event.getItemStack()); this.event = event; fire(event); EntityTag.forgetEntity(hangingEntity); diff --git a/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java b/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java index 80fdaf1c73..f6531c976d 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java +++ b/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java @@ -56,9 +56,6 @@ public static boolean initialize(JavaPlugin plugin) { if (NMSHandler.class.isAssignableFrom(clazz)) { // Found and loaded - good to go! instance = (NMSHandler) clazz.newInstance(); - if (version.isAtMost(NMSVersion.v1_16)) { - enchantmentHelper = new EnchantmentHelper(); - } return true; } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/nms/NMSVersion.java b/plugin/src/main/java/com/denizenscript/denizen/nms/NMSVersion.java index 53daa19d83..edf6ed423d 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/nms/NMSVersion.java +++ b/plugin/src/main/java/com/denizenscript/denizen/nms/NMSVersion.java @@ -3,7 +3,6 @@ public enum NMSVersion { NOT_SUPPORTED, - v1_16, v1_17, v1_18, v1_19; diff --git a/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java b/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java index 7e1fd595d8..a4e4af43d8 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java +++ b/plugin/src/main/java/com/denizenscript/denizen/npc/traits/SleepingTrait.java @@ -2,12 +2,10 @@ import com.denizenscript.denizen.Denizen; import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.utilities.Utilities; import com.denizenscript.denizencore.utilities.debugging.Debug; import net.citizensnpcs.api.persistence.Persist; import net.citizensnpcs.api.trait.Trait; -import net.citizensnpcs.util.PlayerAnimation; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.data.type.Bed; @@ -59,12 +57,7 @@ else if (npc.getEntity() instanceof Player) { ((Player) npc.getEntity()).sleep(bedLocation.clone(), true); } else { - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - NMSHandler.entityHelper.setPose(npc.getEntity(), Pose.SLEEPING); - } - else { - PlayerAnimation.SLEEP.play((Player) npc.getEntity()); - } + NMSHandler.entityHelper.setPose(npc.getEntity(), Pose.SLEEPING); } } else { @@ -130,12 +123,7 @@ public void wakeUp() { if (((Player) npc.getEntity()).isSleeping()) { ((Player) npc.getEntity()).wakeup(false); } - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - NMSHandler.entityHelper.setPose(npc.getEntity(), Pose.STANDING); - } - else { - PlayerAnimation.STOP_SLEEPING.play((Player) npc.getEntity()); - } + NMSHandler.entityHelper.setPose(npc.getEntity(), Pose.STANDING); } bedLocation = null; } diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java index 1e1dd3adb6..485a030d25 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java @@ -1,6 +1,5 @@ package com.denizenscript.denizen.objects; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizencore.DenizenCore; import com.denizenscript.denizencore.flags.AbstractFlagTracker; import com.denizenscript.denizencore.flags.FlaggableObject; @@ -98,14 +97,12 @@ public static boolean matches(String arg) { ///////////// public BiomeTag(Biome biome) { - String key = biome.name(); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - if (biome.getKey().getNamespace().equals("minecraft")) { - key = biome.getKey().getKey(); - } - else { - key = biome.getKey().toString(); - } + String key; + if (biome.getKey().getNamespace().equals("minecraft")) { + key = biome.getKey().getKey(); + } + else { + key = biome.getKey().toString(); } this.biome = NMSHandler.instance.getBiomeNMS(Bukkit.getWorlds().get(0), key); } diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java index ad9a536d4c..24fcc01f79 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java @@ -469,12 +469,10 @@ public static void register() { // --> tagProcessor.registerTag(CuboidTag.class, "cuboid", (attribute, object) -> { int yMin = 0, yMax = 255; - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - World world = object.getBukkitWorld(); - if (world != null) { - yMin = world.getMinHeight(); - yMax = world.getMaxHeight(); - } + World world = object.getBukkitWorld(); + if (world != null) { + yMin = world.getMinHeight(); + yMax = world.getMaxHeight(); } return new CuboidTag(new LocationTag(object.getWorldName(), object.getX() * 16, yMin, object.getZ() * 16, 0, 0), new LocationTag(object.getWorldName(), object.getX() * 16 + 15, yMax, object.getZ() * 16 + 15, 0, 0)); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java index efd87f6831..700901c586 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java @@ -2,7 +2,6 @@ import com.denizenscript.denizen.events.BukkitScriptEvent; import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.nms.abstracts.BiomeNMS; import com.denizenscript.denizencore.utilities.debugging.Debug; import com.denizenscript.denizen.utilities.flags.WorldFlagHandler; @@ -953,14 +952,13 @@ else if (time >= 12500) { // By default, automatically checks the playersSleepingPercentage gamerule, // but this can optionally be overridden by specifying a percentage integer. // Any integer above 100 will always yield 'false'. Requires at least one player to be sleeping to return 'true'. - // NOTE: In 1.16, input is ignored and assumed to be 100%. // --> registerTag(ElementTag.class, "enough_sleeping", (attribute, world) -> { - int percentage = 100; + int percentage; if (attribute.hasParam()) { percentage = attribute.getIntParam(); } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { + else { percentage = world.getGameRuleOrDefault(GameRule.PLAYERS_SLEEPING_PERCENTAGE); } return new ElementTag(NMSHandler.worldHelper.areEnoughSleeping(world.getWorld(), percentage)); @@ -975,14 +973,13 @@ else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { // By default, automatically checks the playersSleepingPercentage gamerule, // but this can optionally be overridden by specifying a percentage integer. // Any integer above 100 will always yield 'false'. Requires at least one player to be sleeping to return 'true'. - // NOTE: In 1.16, input is ignored and assumed to be 100%. // --> registerTag(ElementTag.class, "enough_deep_sleeping", (attribute, world) -> { - int percentage = 100; + int percentage; if (attribute.hasParam()) { percentage = attribute.getIntParam(); } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { + else { percentage = world.getGameRuleOrDefault(GameRule.PLAYERS_SLEEPING_PERCENTAGE); } return new ElementTag(NMSHandler.worldHelper.areEnoughDeepSleeping(world.getWorld(), percentage)); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/PropertyRegistry.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/PropertyRegistry.java index 29d7dd5459..be7e21c0df 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/PropertyRegistry.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/PropertyRegistry.java @@ -53,9 +53,7 @@ public static void registerMainProperties() { PropertyParser.registerProperty(EntityCritical.class, EntityTag.class); PropertyParser.registerProperty(EntityCustomName.class, EntityTag.class); PropertyParser.registerProperty(EntityCustomNameVisible.class, EntityTag.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - PropertyParser.registerProperty(EntityDarkDuration.class, EntityTag.class); - } + PropertyParser.registerProperty(EntityDarkDuration.class, EntityTag.class); PropertyParser.registerProperty(EntityDirection.class, EntityTag.class); PropertyParser.registerProperty(EntityDisabledSlots.class, EntityTag.class); PropertyParser.registerProperty(EntityPotionEffects.class, EntityTag.class); @@ -63,15 +61,11 @@ public static void registerMainProperties() { PropertyParser.registerProperty(EntityExplosionFire.class, EntityTag.class); PropertyParser.registerProperty(EntityExplosionRadius.class, EntityTag.class); PropertyParser.registerProperty(EntityFirework.class, EntityTag.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - PropertyParser.registerProperty(EntityFireworkLifetime.class, EntityTag.class); - } + PropertyParser.registerProperty(EntityFireworkLifetime.class, EntityTag.class); PropertyParser.registerProperty(EntityFixed.class, EntityTag.class); PropertyParser.registerProperty(EntityFlags.class, EntityTag.class); PropertyParser.registerProperty(EntityFlower.class, EntityTag.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - PropertyParser.registerProperty(EntityFreezeDuration.class, EntityTag.class); - } + PropertyParser.registerProperty(EntityFreezeDuration.class, EntityTag.class); PropertyParser.registerProperty(EntityFramed.class, EntityTag.class); PropertyParser.registerProperty(EntityGravity.class, EntityTag.class); PropertyParser.registerProperty(EntityHasNectar.class, EntityTag.class); @@ -84,9 +78,7 @@ public static void registerMainProperties() { PropertyParser.registerProperty(EntityImmune.class, EntityTag.class); PropertyParser.registerProperty(EntityInventory.class, EntityTag.class); PropertyParser.registerProperty(EntityInvulnerable.class, EntityTag.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - PropertyParser.registerProperty(EntityInWaterTime.class, EntityTag.class); - } + PropertyParser.registerProperty(EntityInWaterTime.class, EntityTag.class); PropertyParser.registerProperty(EntityIsShowingBottom.class, EntityTag.class); PropertyParser.registerProperty(EntityItem.class, EntityTag.class); PropertyParser.registerProperty(EntityItemInHand.class, EntityTag.class); @@ -101,9 +93,7 @@ public static void registerMainProperties() { PropertyParser.registerProperty(EntityPatrolTarget.class, EntityTag.class); PropertyParser.registerProperty(EntityPickupStatus.class, EntityTag.class); PropertyParser.registerProperty(EntityPlayerCreated.class, EntityTag.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - PropertyParser.registerProperty(EntityPlayingDead.class, EntityTag.class); - } + PropertyParser.registerProperty(EntityPlayingDead.class, EntityTag.class); PropertyParser.registerProperty(EntityPotion.class, EntityTag.class); PropertyParser.registerProperty(EntityPowered.class, EntityTag.class); PropertyParser.registerProperty(EntityProfession.class, EntityTag.class); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityCharged.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityCharged.java index f64d745c0d..deed805ee7 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityCharged.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityCharged.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.objects.properties.entity; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.objects.core.ElementTag; @@ -21,7 +19,7 @@ public static boolean describes(ObjectTag object) { Entity entity = ((EntityTag) object).getBukkitEntity(); return entity instanceof WitherSkull || entity instanceof Vex - || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && entity instanceof Guardian); + || entity instanceof Guardian; } public static EntityCharged getFrom(ObjectTag entity) { @@ -107,7 +105,7 @@ public boolean isVex() { } public boolean isGuardian() { - return NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && entity.getBukkitEntity() instanceof Guardian; + return entity.getBukkitEntity() instanceof Guardian; } public WitherSkull getWitherSkull() { diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityColor.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityColor.java index 4e18478775..e81b6f1a0d 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityColor.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityColor.java @@ -4,7 +4,6 @@ import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.ColorTag; import com.denizenscript.denizen.objects.EntityTag; -import com.denizenscript.denizen.utilities.MultiVersionHelper1_17; import com.denizenscript.denizen.utilities.MultiVersionHelper1_19; import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.Mechanism; @@ -42,7 +41,8 @@ public static boolean describes(ObjectTag entity) { type == EntityType.ZOMBIE_VILLAGER || type == EntityType.TRADER_LLAMA || type == EntityType.TROPICAL_FISH || - (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && MultiVersionHelper1_17.colorIsApplicable(type)) || + type == EntityType.GOAT || + type == EntityType.AXOLOTL || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19) && MultiVersionHelper1_19.colorIsApplicable(type)); } @@ -114,9 +114,10 @@ public String getColor(boolean includeDeprecated) { catch (Exception e) { return null; } - } - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && MultiVersionHelper1_17.colorIsApplicable(type)) { - return MultiVersionHelper1_17.getColor(colored.getBukkitEntity()); + case GOAT: + return ((Goat) colored.getBukkitEntity()).isScreaming() ? "screaming" : "normal"; + case AXOLOTL: + return ((Axolotl) colored.getBukkitEntity()).getVariant().name(); } if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19) && MultiVersionHelper1_19.colorIsApplicable(type)) { return MultiVersionHelper1_19.getColor(colored.getBukkitEntity()); @@ -165,9 +166,13 @@ public ListTag getAllowedColors() { case VILLAGER: case ZOMBIE_VILLAGER: return listForEnum(Villager.Type.values()); - } - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && MultiVersionHelper1_17.colorIsApplicable(type)) { - return MultiVersionHelper1_17.getAllowedColors(type); + case GOAT: + ListTag result = new ListTag(); + result.add("screaming"); + result.add("normal"); + return result; + case AXOLOTL: + return EntityColor.listForEnum(Axolotl.Variant.values()); } if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19) && MultiVersionHelper1_19.colorIsApplicable(type)) { return MultiVersionHelper1_19.getAllowedColors(type); @@ -393,8 +398,11 @@ else if (type == EntityType.ZOMBIE_VILLAGER && mechanism.requireEnum(Villager.Ty else if (type == EntityType.ARROW && mechanism.requireObject(ColorTag.class)) { ((Arrow) colored.getBukkitEntity()).setColor(mechanism.valueAsType(ColorTag.class).getColor()); } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && MultiVersionHelper1_17.colorIsApplicable(type)) { - MultiVersionHelper1_17.setColor(colored.getBukkitEntity(), mechanism); + else if (type == EntityType.GOAT) { + ((Goat) colored.getBukkitEntity()).setScreaming(CoreUtilities.toLowerCase(mechanism.getValue().asString()).equals("screaming")); + } + else if (type == EntityType.AXOLOTL && mechanism.requireEnum(Axolotl.Variant.class)) { + ((Axolotl) colored.getBukkitEntity()).setVariant(Axolotl.Variant.valueOf(mechanism.getValue().asString().toUpperCase())); } else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19) && MultiVersionHelper1_19.colorIsApplicable(type)) { MultiVersionHelper1_19.setColor(colored.getBukkitEntity(), mechanism); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemFrameInvisible.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemFrameInvisible.java index 87924ba25e..ef8be4f917 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemFrameInvisible.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemFrameInvisible.java @@ -1,7 +1,6 @@ package com.denizenscript.denizen.objects.properties.item; import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.nms.util.jnbt.ByteTag; import com.denizenscript.denizen.nms.util.jnbt.CompoundTag; import com.denizenscript.denizen.nms.util.jnbt.Tag; @@ -21,7 +20,7 @@ public class ItemFrameInvisible implements Property { public static boolean describes(ObjectTag object) { return object instanceof ItemTag && (((ItemTag) object).getBukkitMaterial() == Material.ITEM_FRAME - || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && (((ItemTag) object).getBukkitMaterial().name().equals("GLOW_ITEM_FRAME")))); + || ((ItemTag) object).getBukkitMaterial() == Material.GLOW_ITEM_FRAME); } public static ItemFrameInvisible getFrom(ObjectTag object) { diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemInventory.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemInventory.java index 34cee29f7f..1e9933449d 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemInventory.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemInventory.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.objects.properties.item; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.properties.inventory.InventoryContents; import com.denizenscript.denizen.utilities.Conversion; import com.denizenscript.denizen.objects.InventoryTag; @@ -39,7 +37,7 @@ public static boolean describes(ObjectTag item) { && ((BlockStateMeta) meta).getBlockState() instanceof InventoryHolder) { return true; } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && meta instanceof BundleMeta) { + else if (meta instanceof BundleMeta) { return true; } return false; @@ -117,16 +115,13 @@ public ListTag getInventoryContents() { } return InventoryContents.getFrom(inventory).getContents(false); } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - ListTag result = new ListTag(); - for (ItemStack item : ((BundleMeta) item.getItemMeta()).getItems()) { - if (item != null && item.getType() != Material.AIR) { - result.addObject(new ItemTag(item)); - } + ListTag result = new ListTag(); + for (ItemStack item : ((BundleMeta) item.getItemMeta()).getItems()) { + if (item != null && item.getType() != Material.AIR) { + result.addObject(new ItemTag(item)); } - return result; } - return null; + return result; } @Override @@ -168,7 +163,7 @@ public void adjust(Mechanism mechanism) { bsm.setBlockState((BlockState) invHolder); item.setItemMeta(bsm); } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { + else { BundleMeta bundle = (BundleMeta) item.getItemMeta(); bundle.setItems(items); item.setItemMeta(bundle); @@ -200,7 +195,7 @@ else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { bsm.setBlockState((BlockState) invHolder); item.setItemMeta(bsm); } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { + else { BundleMeta bundle = (BundleMeta) item.getItemMeta(); bundle.setItems(Arrays.asList(itemArray)); item.setItemMeta(bundle); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialBlockType.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialBlockType.java index e4ed47904c..7544f2670c 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialBlockType.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialBlockType.java @@ -1,9 +1,6 @@ package com.denizenscript.denizen.objects.properties.material; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.MaterialTag; -import com.denizenscript.denizen.utilities.MultiVersionHelper1_17; import com.denizenscript.denizencore.objects.Mechanism; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.objects.core.ElementTag; @@ -28,8 +25,8 @@ public static boolean describes(ObjectTag material) { || data instanceof TechnicalPiston || data instanceof Campfire || data instanceof Scaffolding - || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && (data instanceof PointedDripstone - || data instanceof CaveVinesPlant)); + || data instanceof PointedDripstone + || data instanceof CaveVinesPlant; } public static MaterialBlockType getFrom(ObjectTag _material) { @@ -85,11 +82,11 @@ public boolean isCampfire() { } public boolean isDripstone() { - return NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && material.getModernData() instanceof PointedDripstone; + return material.getModernData() instanceof PointedDripstone; } public boolean isCaveVines() { - return NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && material.getModernData() instanceof CaveVinesPlant; + return material.getModernData() instanceof CaveVinesPlant; } public boolean isScaffolding() { @@ -112,13 +109,13 @@ public Scaffolding getScaffolding() { return (Scaffolding) material.getModernData(); } - /*public PointedDripstone getDripstone() { // TODO: 1.17 + public PointedDripstone getDripstone() { return (PointedDripstone) material.getModernData(); } public CaveVinesPlant getCaveVines() { return (CaveVinesPlant) material.getModernData(); - }*/ + } @Override public String getPropertyString() { @@ -135,10 +132,10 @@ else if (isScaffolding()) { return getScaffolding().isBottom() ? "BOTTOM" : "NORMAL"; } else if (isDripstone()) { - return ((PointedDripstone) material.getModernData()).getThickness().name(); // TODO: 1.17 + return getDripstone().getThickness().name(); } else if (isCaveVines()) { - return ((CaveVinesPlant) material.getModernData()).isBerries() ? "BERRIES" : "NORMAL"; // TODO: 1.17 + return getCaveVines().isBerries() ? "BERRIES" : "NORMAL"; } return null; // Unreachable. } @@ -179,11 +176,11 @@ else if (isPistonHead() && mechanism.requireEnum(TechnicalPiston.Type.class)) { else if (isScaffolding()) { getScaffolding().setBottom(CoreUtilities.equalsIgnoreCase(mechanism.getValue().asString(), "bottom")); } - else if (isDripstone()) { - MultiVersionHelper1_17.materialBlockTypeRunMech(mechanism, this); + else if (isDripstone() && mechanism.requireEnum(PointedDripstone.Thickness.class)) { + ((PointedDripstone) material.getModernData()).setThickness(PointedDripstone.Thickness.valueOf(mechanism.getValue().asString().toUpperCase())); } else if (isCaveVines()) { - ((CaveVinesPlant) material.getModernData()).setBerries(CoreUtilities.equalsIgnoreCase(mechanism.getValue().asString(), "berries")); // TODO: 1.17 + getCaveVines().setBerries(CoreUtilities.equalsIgnoreCase(mechanism.getValue().asString(), "berries")); } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialCount.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialCount.java index d226e00613..8216dc9335 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialCount.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialCount.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.objects.properties.material; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.MaterialTag; import com.denizenscript.denizencore.objects.Mechanism; import com.denizenscript.denizencore.objects.ObjectTag; @@ -28,7 +26,7 @@ public static boolean describes(ObjectTag material) { return data instanceof SeaPickle || data instanceof TurtleEgg || data instanceof RespawnAnchor - || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && data instanceof Candle); + || data instanceof Candle; } public static MaterialCount getFrom(ObjectTag _material) { @@ -102,7 +100,7 @@ public boolean isRespawnAnchor() { } public boolean isCandle() { - return NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && material.getModernData() instanceof Candle; + return material.getModernData() instanceof Candle; } public TurtleEgg getTurtleEgg() { @@ -117,9 +115,9 @@ public RespawnAnchor getRespawnAnchor() { return (RespawnAnchor) material.getModernData(); } - /*public Candle getCandle() { // TODO: 1.17 + public Candle getCandle() { return (Candle) material.getModernData(); - }*/ + } public int getCurrent() { if (isSeaPickle()) { @@ -132,7 +130,7 @@ else if (isRespawnAnchor()) { return getRespawnAnchor().getCharges(); } else if (isCandle()) { - return ((Candle) material.getModernData()).getCandles(); // TODO: 1.17 + return getCandle().getCandles(); } throw new UnsupportedOperationException(); } @@ -148,7 +146,7 @@ else if (isRespawnAnchor()) { return getRespawnAnchor().getMaximumCharges(); } else if (isCandle()) { - return ((Candle) material.getModernData()).getMaximumCandles(); // TODO: 1.17 + return getCandle().getMaximumCandles(); } throw new UnsupportedOperationException(); } @@ -209,7 +207,7 @@ else if (isRespawnAnchor()) { getRespawnAnchor().setCharges(count); } else if (isCandle()) { - ((Candle) material.getModernData()).setCandles(count); // TODO: 1.17 + getCandle().setCandles(count); } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialDirectional.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialDirectional.java index 647f0910d4..ea703c99c8 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialDirectional.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialDirectional.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.objects.properties.material; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.MaterialTag; import com.denizenscript.denizencore.utilities.debugging.Debug; import com.denizenscript.denizencore.objects.core.ElementTag; @@ -33,7 +31,7 @@ public static boolean describes(ObjectTag material) { || data instanceof Rotatable || data instanceof Rail || data instanceof Jigsaw - || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && data instanceof PointedDripstone); + || data instanceof PointedDripstone; } public static MaterialDirectional getFrom(ObjectTag _material) { @@ -95,7 +93,7 @@ else if (material.isRotatable()) { } } else if (material.isDripstone()) { - for (BlockFace face : ((PointedDripstone) material.material.getModernData()).getVerticalDirections()) { // TODO: 1.17 + for (BlockFace face : material.getDripstone().getVerticalDirections()) { toReturn.add(face.name()); } } @@ -168,7 +166,7 @@ else if (isDirectional()) { return getDirectional().getFacing().getDirection(); } else if (isDripstone()) { - return ((PointedDripstone) material.getModernData()).getVerticalDirection().getDirection(); // TODO: 1.17 + return getDripstone().getVerticalDirection().getDirection(); } else if (isJigsaw()) { switch (getJigsaw().getOrientation()) { @@ -211,7 +209,7 @@ else if (isDirectional()) { return getDirectional().getFacing().name(); } else if (isDripstone()) { - return ((PointedDripstone) material.getModernData()).getVerticalDirection().name(); // TODO: 1.17 + return getDripstone().getVerticalDirection().name(); } else if (isJigsaw()) { return getJigsaw().getOrientation().name(); @@ -232,7 +230,7 @@ public boolean isDirectional() { } public boolean isDripstone() { - return NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && material.getModernData() instanceof PointedDripstone; + return material.getModernData() instanceof PointedDripstone; } public boolean isRail() { @@ -259,9 +257,9 @@ public Jigsaw getJigsaw() { return (Jigsaw) material.getModernData(); } - /*public PointedDripstone getDripstone() { // TODO: 1.17 + public PointedDripstone getDripstone() { return (PointedDripstone) material.getModernData(); - }*/ + } public Rail getRail() { return (Rail) material.getModernData(); @@ -309,7 +307,7 @@ else if (isDirectional()) { getDirectional().setFacing(face); } else if (isDripstone()) { - ((PointedDripstone) material.getModernData()).setVerticalDirection(face); // TODO: 1.17 + getDripstone().setVerticalDirection(face); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialMode.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialMode.java index 40c0e26cbb..0abf9f097f 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialMode.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/material/MaterialMode.java @@ -3,7 +3,6 @@ import com.denizenscript.denizen.nms.NMSHandler; import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.MaterialTag; -import com.denizenscript.denizen.utilities.MultiVersionHelper1_17; import com.denizenscript.denizencore.objects.Mechanism; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.objects.core.ElementTag; @@ -30,8 +29,8 @@ public static boolean describes(ObjectTag material) { || data instanceof StructureBlock || data instanceof DaylightDetector || data instanceof CommandBlock - || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && (data instanceof SculkSensor - || data instanceof BigDripleaf)) + || data instanceof SculkSensor + || data instanceof BigDripleaf || (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19) && (data instanceof SculkCatalyst || data instanceof SculkShrieker)); } @@ -105,11 +104,11 @@ public boolean isCommandBlock() { } public boolean isBigDripleaf() { - return NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && material.getModernData() instanceof BigDripleaf; + return material.getModernData() instanceof BigDripleaf; } public boolean isSculkSensor() { - return NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && material.getModernData() instanceof SculkSensor; + return material.getModernData() instanceof SculkSensor; } public boolean isSculkCatalyst() { @@ -144,13 +143,13 @@ public CommandBlock getCommandBlock() { return (CommandBlock) material.getModernData(); } - /*public SculkSensor getSculkSensor() { // TODO: 1.17 + public SculkSensor getSculkSensor() { return (SculkSensor) material.getModernData(); } public BigDripleaf getBigDripleaf() { return (BigDripleaf) material.getModernData(); - }*/ + } /*public SculkCatalyst getSculkCatalyst() { // TODO: 1.19 return (SculkCatalyst) material.getModernData(); @@ -181,10 +180,10 @@ else if (isCommandBlock()) { return getCommandBlock().isConditional() ? "CONDITIONAL" : "NORMAL"; } else if (isSculkSensor()) { - return ((SculkSensor) material.getModernData()).getPhase().name(); // TODO: 1.17 + return getSculkSensor().getPhase().name(); } else if (isBigDripleaf()) { - return ((BigDripleaf) material.getModernData()).getTilt().name(); // TODO: 1.17 + return getBigDripleaf().getTilt().name(); } else if (isSculkCatalyst()) { return ((SculkCatalyst) material.getModernData()).isBloom() ? "BLOOM" : "NORMAL"; // TODO: 1.19 @@ -241,8 +240,11 @@ else if (isDaylightDetector()) { else if (isCommandBlock()) { getCommandBlock().setConditional(CoreUtilities.equalsIgnoreCase(mechanism.getValue().asString(), "conditional")); } - else if (isSculkSensor() || isBigDripleaf()) { - MultiVersionHelper1_17.materialModeRunMech(mechanism, this); + else if (isSculkSensor() && mechanism.requireEnum(SculkSensor.Phase.class)) { + ((SculkSensor) material.getModernData()).setPhase(SculkSensor.Phase.valueOf(mechanism.getValue().asString().toUpperCase())); + } + else if (isBigDripleaf() && mechanism.requireEnum(BigDripleaf.Tilt.class)) { + ((BigDripleaf) material.getModernData()).setTilt(BigDripleaf.Tilt.valueOf(mechanism.getValue().asString().toUpperCase())); } else if (isSculkCatalyst()) { ((SculkCatalyst) material.getModernData()).setBloom(CoreUtilities.equalsIgnoreCase(mechanism.getValue().asString(), "bloom")); // TODO: 1.19 diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/BukkitCommandRegistry.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/BukkitCommandRegistry.java index 7b7021c484..79fd56b2ea 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/BukkitCommandRegistry.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/BukkitCommandRegistry.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.scripts.commands; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.scripts.commands.core.*; import com.denizenscript.denizen.scripts.commands.entity.*; import com.denizenscript.denizen.scripts.commands.item.*; @@ -125,9 +123,7 @@ public static void registerCommands() { registerCommand(BlockCrackCommand.class); registerCommand(ClickableCommand.class); registerCommand(CompassCommand.class); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - registerCommand(DebugBlockCommand.class); - } + registerCommand(DebugBlockCommand.class); registerCommand(DisguiseCommand.class); registerCommand(ExperienceCommand.class); registerCommand(FakeSpawnCommand.class); diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ModifyBlockCommand.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ModifyBlockCommand.java index ad01374963..8735ba8629 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ModifyBlockCommand.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ModifyBlockCommand.java @@ -1,7 +1,6 @@ package com.denizenscript.denizen.scripts.commands.world; import com.denizenscript.denizen.Denizen; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.*; import com.denizenscript.denizen.utilities.Utilities; import com.denizenscript.denizen.utilities.command.TabCompleteHelper; @@ -476,12 +475,10 @@ public static void setBlock(Location location, MaterialTag material, boolean phy return; } if (natural != null && material.getMaterial() == Material.AIR) { - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - int xp = NMSHandler.blockHelper.getExpDrop(location.getBlock(), natural.getItemStack()); - if (xp > 0) { - ExperienceOrb orb = (ExperienceOrb) location.getWorld().spawnEntity(location, EntityType.EXPERIENCE_ORB); - orb.setExperience(xp); - } + int xp = NMSHandler.blockHelper.getExpDrop(location.getBlock(), natural.getItemStack()); + if (xp > 0) { + ExperienceOrb orb = (ExperienceOrb) location.getWorld().spawnEntity(location, EntityType.EXPERIENCE_ORB); + orb.setExperience(xp); } location.getBlock().breakNaturally(natural.getItemStack()); } diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlayEffectCommand.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlayEffectCommand.java index 809beca665..af8160088a 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlayEffectCommand.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlayEffectCommand.java @@ -2,7 +2,8 @@ import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.*; -import com.denizenscript.denizen.utilities.MultiVersionHelper1_17; +import com.denizenscript.denizencore.objects.ObjectTag; +import com.denizenscript.denizencore.objects.core.DurationTag; import com.denizenscript.denizencore.utilities.debugging.Debug; import com.denizenscript.denizen.nms.NMSHandler; import com.denizenscript.denizen.nms.interfaces.Particle; @@ -292,8 +293,7 @@ else if (clazz == ItemStack.class) { ItemTag itemType = ItemTag.valueOf(special_data.asString(), scriptEntry.getContext()); dataObject = itemType.getItemStack(); } - // Intentionally list last due to requiring 1.17+ - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && clazz == org.bukkit.Particle.DustTransition.class) { + else if (clazz == org.bukkit.Particle.DustTransition.class) { ListTag dataList = ListTag.valueOf(special_data.asString(), scriptEntry.getContext()); if (dataList.size() != 3) { Debug.echoError("DustTransition special_data must have 3 list entries for particle: " + particleEffect.getName()); @@ -306,14 +306,24 @@ else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && clazz == org.buk dataObject = new org.bukkit.Particle.DustTransition(fromColor.getColor(), toColor.getColor(), size); } } - else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && clazz == Vibration.class) { + else if (clazz == Vibration.class) { ListTag dataList = ListTag.valueOf(special_data.asString(), scriptEntry.getContext()); if (dataList.size() != 3) { Debug.echoError("Vibration special_data must have 3 list entries for particle: " + particleEffect.getName()); return; } else { - dataObject = MultiVersionHelper1_17.getPlayEffectVibrationObject(dataList, scriptEntry); + DurationTag duration = dataList.getObject(0).asType(DurationTag.class, scriptEntry.context); + LocationTag origin = dataList.getObject(1).asType(LocationTag.class, scriptEntry.context); + ObjectTag destination = dataList.getObject(2); + Vibration.Destination destObj; + if (destination.shouldBeType(EntityTag.class)) { + destObj = new Vibration.Destination.EntityDestination(destination.asType(EntityTag.class, scriptEntry.context).getBukkitEntity()); + } + else { + destObj = new Vibration.Destination.BlockDestination(destination.asType(LocationTag.class, scriptEntry.context)); + } + dataObject = new Vibration(origin, destObj, duration.getTicksAsInt()); } } else { diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/ContainerRegistry.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/ContainerRegistry.java index ebe315ba1e..26ccb3050f 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/ContainerRegistry.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/ContainerRegistry.java @@ -1,7 +1,5 @@ package com.denizenscript.denizen.scripts.containers; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.scripts.containers.core.*; import com.denizenscript.denizen.utilities.depends.Depends; import com.denizenscript.denizencore.scripts.ScriptRegistry; @@ -15,9 +13,7 @@ public static void registerMainContainers() { if (Depends.vault != null) { ScriptRegistry._registerType("economy", EconomyScriptContainer.class); } - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - ScriptRegistry._registerType("enchantment", EnchantmentScriptContainer.class); - } + ScriptRegistry._registerType("enchantment", EnchantmentScriptContainer.class); ScriptRegistry._registerType("entity", EntityScriptContainer.class); ScriptRegistry._registerType("format", FormatScriptContainer.class); ScriptRegistry._registerType("interact", InteractScriptContainer.class); diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/MultiVersionHelper1_17.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/MultiVersionHelper1_17.java deleted file mode 100644 index dfd8550f06..0000000000 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/MultiVersionHelper1_17.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.denizenscript.denizen.utilities; - -import com.denizenscript.denizen.objects.EntityTag; -import com.denizenscript.denizen.objects.LocationTag; -import com.denizenscript.denizen.objects.properties.entity.EntityColor; -import com.denizenscript.denizen.objects.properties.material.MaterialBlockType; -import com.denizenscript.denizen.objects.properties.material.MaterialMode; -import com.denizenscript.denizencore.objects.Mechanism; -import com.denizenscript.denizencore.objects.ObjectTag; -import com.denizenscript.denizencore.objects.core.DurationTag; -import com.denizenscript.denizencore.objects.core.ListTag; -import com.denizenscript.denizencore.scripts.ScriptEntry; -import com.denizenscript.denizencore.utilities.CoreUtilities; -import org.bukkit.Vibration; -import org.bukkit.block.data.type.BigDripleaf; -import org.bukkit.block.data.type.PointedDripstone; -import org.bukkit.block.data.type.SculkSensor; -import org.bukkit.entity.Axolotl; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Goat; - -public class MultiVersionHelper1_17 { // TODO: 1.17 - - public static boolean colorIsApplicable(EntityType type) { - return type == EntityType.GOAT || type == EntityType.AXOLOTL; - } - - public static String getColor(Entity entity) { - if (entity instanceof Goat) { - return ((Goat) entity).isScreaming() ? "screaming" : "normal"; - } - else if (entity instanceof Axolotl) { - return ((Axolotl) entity).getVariant().name(); - } - return null; - } - - public static ListTag getAllowedColors(EntityType type) { - if (type == EntityType.GOAT) { - ListTag result = new ListTag(); - result.add("screaming"); - result.add("normal"); - return result; - } - else if (type == EntityType.AXOLOTL) { - return EntityColor.listForEnum(Axolotl.Variant.values()); - } - return null; - } - - public static void setColor(Entity entity, Mechanism mech) { - if (entity instanceof Goat) { - ((Goat) entity).setScreaming(CoreUtilities.toLowerCase(mech.getValue().asString()).equals("screaming")); - } - else if (entity instanceof Axolotl && mech.requireEnum(Axolotl.Variant.class)) { - ((Axolotl) entity).setVariant(Axolotl.Variant.valueOf(mech.getValue().asString().toUpperCase())); - } - } - - public static void materialBlockTypeRunMech(Mechanism mechanism, MaterialBlockType object) { - if (object.isDripstone() && mechanism.requireEnum(PointedDripstone.Thickness.class)) { - ((PointedDripstone) object.material.getModernData()).setThickness(PointedDripstone.Thickness.valueOf(mechanism.getValue().asString().toUpperCase())); - } - } - - public static void materialModeRunMech(Mechanism mechanism, MaterialMode object) { - if (object.isSculkSensor() && mechanism.requireEnum(SculkSensor.Phase.class)) { - ((SculkSensor) object.material.getModernData()).setPhase(SculkSensor.Phase.valueOf(mechanism.getValue().asString().toUpperCase())); - } - else if (object.isBigDripleaf() && mechanism.requireEnum(BigDripleaf.Tilt.class)) { - ((BigDripleaf) object.material.getModernData()).setTilt(BigDripleaf.Tilt.valueOf(mechanism.getValue().asString().toUpperCase())); - } - } - - public static Object getPlayEffectVibrationObject(ListTag dataList, ScriptEntry scriptEntry) { - DurationTag duration = dataList.getObject(0).asType(DurationTag.class, scriptEntry.context); - LocationTag origin = dataList.getObject(1).asType(LocationTag.class, scriptEntry.context); - ObjectTag destination = dataList.getObject(2); - Vibration.Destination destObj; - if (destination.shouldBeType(EntityTag.class)) { - destObj = new Vibration.Destination.EntityDestination(destination.asType(EntityTag.class, scriptEntry.context).getBukkitEntity()); - } - else { - destObj = new Vibration.Destination.BlockDestination(destination.asType(LocationTag.class, scriptEntry.context)); - } - return new Vibration(origin, destObj, duration.getTicksAsInt()); - } -} diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java index 5be324ea08..8df87a24c6 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java @@ -2,8 +2,6 @@ import com.denizenscript.denizen.Denizen; import com.denizenscript.denizen.events.player.*; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.nms.interfaces.packets.*; import com.denizenscript.denizencore.utilities.debugging.Debug; import com.denizenscript.denizen.objects.EntityTag; @@ -76,9 +74,7 @@ public boolean receivePacket(final Player player, final PacketInSteerVehicle ste raisableItems.add(Material.CROSSBOW); raisableItems.add(Material.BOW); raisableItems.add(Material.TRIDENT); - if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17)) { - raisableItems.add(Material.valueOf("SPYGLASS")); - } + raisableItems.add(Material.SPYGLASS); } public static boolean isHoldingRaisable(Player player) { diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/world/VoidGenerator.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/world/VoidGenerator.java deleted file mode 100644 index fb4297e259..0000000000 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/world/VoidGenerator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.denizenscript.denizen.utilities.world; - -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.generator.ChunkGenerator; - -import java.util.Random; - -public class VoidGenerator extends ChunkGenerator { - - @Override - public ChunkData generateChunkData(World world, Random random, int chunkX, int chunkZ, BiomeGrid biome) { - if (biome != null) { - for (int x = 0; x < 16; x++) { - for (int z = 0; z < 16; z++) { - biome.setBiome(x, 0, z, Biome.THE_VOID); - } - } - } - return createChunkData(world); - } -} diff --git a/plugin/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml index b54503ebb4..9c522be7ac 100644 --- a/plugin/src/main/resources/plugin.yml +++ b/plugin/src/main/resources/plugin.yml @@ -4,7 +4,7 @@ version: ${project.version} (build ${BUILD_NUMBER}-${BUILD_CLASS}) main: com.denizenscript.denizen.Denizen softdepend: [Citizens, Vault] -api-version: '1.16' +api-version: '1.17' libraries: - org.mongodb:mongodb-driver-sync:4.7.0 diff --git a/pom.xml b/pom.xml index fbfad7a91b..a3fff29a6f 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,6 @@ v1_19 v1_18 v1_17 - v1_16 dist