From 3255303e74ebf823bd4fe1993d2d643832789b0e Mon Sep 17 00:00:00 2001 From: MCSamuel Date: Wed, 10 Sep 2025 10:06:41 -0700 Subject: [PATCH 1/2] Made determinations more clear for EntityExplosionPrimesScriptEvent --- .../EntityExplosionPrimesScriptEvent.java | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java index 930b99010f..99279d6d68 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java @@ -2,9 +2,7 @@ import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizen.events.BukkitScriptEvent; -import com.denizenscript.denizencore.objects.Argument; import com.denizenscript.denizencore.objects.core.ElementTag; -import com.denizenscript.denizencore.objects.ArgumentHelper; import com.denizenscript.denizencore.objects.ObjectTag; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -25,13 +23,31 @@ public class EntityExplosionPrimesScriptEvent extends BukkitScriptEvent implemen // @Triggers when an entity decides to explode. // // @Context - // returns the EntityTag. - // returns an ElementTag of the explosion's radius. - // returns an ElementTag with a value of "true" if the explosion will create fire and "false" otherwise. + // returns an EntityTag of the explosive. + // returns the explosion's radius. + // returns whether the explosion will create fire. + // + // @Determine + // ElementTag(Decimal) to change the explosion radius. + // "FIRE:" to set whether the explosion will produce fire. // --> public EntityExplosionPrimesScriptEvent() { registerCouldMatcher(" explosion primes"); + this.registerOptionalDetermination(null, ElementTag.class, (evt, context, value) -> { + if (value.isFloat()) { + evt.event.setRadius(value.asFloat()); + return true; + } + return false; + }); + this.registerOptionalDetermination("fire", ElementTag.class, (evt, context, value) -> { + if (value.isBoolean()) { + evt.event.setFire(value.asBoolean()); + return true; + } + return false; + }); } public EntityTag entity; @@ -48,31 +64,14 @@ public boolean matches(ScriptPath path) { return super.matches(path); } - @Override - public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { - String determination = determinationObj.toString(); - if (ArgumentHelper.matchesDouble(determination)) { - event.setRadius(Float.parseFloat(determination)); - return true; - } - if (Argument.valueOf(determination).matchesBoolean()) { - event.setFire(determination.equalsIgnoreCase("true")); - return true; - } - return super.applyDetermination(path, determinationObj); - } - @Override public ObjectTag getContext(String name) { - switch (name) { - case "entity": - return entity; - case "radius": - return new ElementTag(event.getRadius()); - case "fire": - return new ElementTag(event.getFire()); - } - return super.getContext(name); + return switch (name) { + case "entity" -> entity.getDenizenObject(); + case "radius" -> new ElementTag(event.getRadius()); + case "fire" -> new ElementTag(event.getFire()); + default -> super.getContext(name); + }; } @EventHandler From cb118f8cabd5c2a1bf3002ec4e191b4b26ec5c22 Mon Sep 17 00:00:00 2001 From: MCSamuel Date: Fri, 24 Oct 2025 10:32:10 -0700 Subject: [PATCH 2/2] added deprecation message --- .../events/entity/EntityExplosionPrimesScriptEvent.java | 6 ++++++ .../denizen/utilities/BukkitImplDeprecations.java | 3 +++ 2 files changed, 9 insertions(+) diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java index 99279d6d68..aab61ed369 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplosionPrimesScriptEvent.java @@ -2,6 +2,7 @@ import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizen.events.BukkitScriptEvent; +import com.denizenscript.denizen.utilities.BukkitImplDeprecations; import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.ObjectTag; import org.bukkit.event.EventHandler; @@ -35,6 +36,11 @@ public class EntityExplosionPrimesScriptEvent extends BukkitScriptEvent implemen public EntityExplosionPrimesScriptEvent() { registerCouldMatcher(" explosion primes"); this.registerOptionalDetermination(null, ElementTag.class, (evt, context, value) -> { + if (value.isBoolean()) { + BukkitImplDeprecations.explosionPrimeDetermination.warn(); + evt.event.setFire(value.asBoolean()); + return true; + } if (value.isFloat()) { evt.event.setRadius(value.asFloat()); return true; diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java index 07a07e1d20..7325585b7e 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java @@ -267,6 +267,9 @@ public class BukkitImplDeprecations { // Added 2025/07/10 public static Warning entityKnockback = new Warning("entityKnockback", "The 'EntityTag.knockback' property is deprecated. You should adjust the knockback enchantment on the weapon itself."); + // Added 2025/10/24 + public static Warning explosionPrimeDetermination = new Warning("explosionPrimeDetermination", "The determination to control fire in the ' explosion primes' event is now formatted as 'FIRE:'."); + // ==================== SLOW deprecations ==================== // These aren't spammed, but will show up repeatedly until fixed. Server owners will probably notice them.