From bc21d6d3c9ba0ed52f2c0c60490e7b292b660955 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Sat, 29 Feb 2020 05:24:47 -0800 Subject: [PATCH] clean 31 events for compat with new core --- .../denizen/events/BukkitScriptEvent.java | 1 + .../events/block/BlockBuiltScriptEvent.java | 1 + .../events/core/CommandScriptEvent.java | 1 + .../events/core/TabCompleteScriptEvent.java | 1 - .../EntityAirLevelChangeScriptEvent.java | 7 ++-- .../events/entity/EntityBreedScriptEvent.java | 19 ++++++----- .../entity/EntityCombustsScriptEvent.java | 7 ++-- .../entity/EntityDamagedScriptEvent.java | 7 ++-- .../events/entity/EntityDeathScriptEvent.java | 11 +++++-- .../entity/EntityExplodesScriptEvent.java | 33 +++++-------------- .../EntityExplosionPrimesScriptEvent.java | 17 +++------- .../EntityFoodLevelChangeScriptEvent.java | 7 ++-- .../events/entity/EntityGlideScriptEvent.java | 2 +- .../events/entity/EntityHealsScriptEvent.java | 9 ++--- .../entity/EntityKilledScriptEvent.java | 7 ++-- .../events/entity/EntityShootsBowEvent.java | 10 ++---- .../events/entity/EntitySwimScriptEvent.java | 2 +- .../entity/EntityTeleportScriptEvent.java | 22 ++++++++++--- .../events/entity/HorseJumpsScriptEvent.java | 7 ++-- .../entity/ItemEnchantedScriptEvent.java | 21 ++++-------- .../events/entity/SheepDyedScriptEvent.java | 2 +- .../events/entity/SlimeSplitsScriptEvent.java | 9 ++--- .../VehicleCollidesEntityScriptEvent.java | 7 ++-- .../player/ItemRecipeFormedScriptEvent.java | 11 +++++-- .../player/PlayerBreaksItemScriptEvent.java | 23 ++++++++----- .../player/PlayerChangesXPScriptEvent.java | 11 +++++-- .../player/PlayerCraftsItemScriptEvent.java | 11 +++++-- .../player/PlayerDragsInInvScriptEvent.java | 30 +++++++++-------- .../player/PlayerFlyingScriptEvent.java | 2 +- .../PlayerItemTakesDamageScriptEvent.java | 24 ++++++++------ .../scripts/triggers/core/ChatTrigger.java | 2 +- 31 files changed, 156 insertions(+), 168 deletions(-) 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 0cf2419569..4454fb587c 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java @@ -148,6 +148,7 @@ public void cancellationChanged() { if (currentEvent instanceof Cancellable) { ((Cancellable) currentEvent).setCancelled(cancelled); } + super.cancellationChanged(); } public Event currentEvent = null; diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockBuiltScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockBuiltScriptEvent.java index 2990af7d63..43eeed3658 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockBuiltScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockBuiltScriptEvent.java @@ -93,6 +93,7 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { @Override public void cancellationChanged() { event.setBuildable(!cancelled); + super.cancellationChanged(); } @Override diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/core/CommandScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/core/CommandScriptEvent.java index 863262bde2..aed9047ced 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/core/CommandScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/core/CommandScriptEvent.java @@ -146,6 +146,7 @@ public void cancellationChanged() { if (cancelled && serverEvent != null) { serverEvent.setCommand("denizen do_nothing"); } + super.cancellationChanged(); } @EventHandler diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/core/TabCompleteScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/core/TabCompleteScriptEvent.java index f1887b89df..d242685978 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/core/TabCompleteScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/core/TabCompleteScriptEvent.java @@ -7,7 +7,6 @@ import com.denizenscript.denizencore.objects.core.ListTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.scripts.ScriptEntryData; -import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityAirLevelChangeScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityAirLevelChangeScriptEvent.java index c45b34e92f..52d5e60f27 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityAirLevelChangeScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityAirLevelChangeScriptEvent.java @@ -44,7 +44,6 @@ public EntityAirLevelChangeScriptEvent() { public static EntityAirLevelChangeScriptEvent instance; public EntityTag entity; - public Integer air; public EntityAirChangeEvent event; @Override @@ -75,7 +74,7 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isInt()) { - air = ((ElementTag) determinationObj).asInt(); + event.setAmount(((ElementTag) determinationObj).asInt()); return true; } return super.applyDetermination(path, determinationObj); @@ -92,7 +91,7 @@ public ObjectTag getContext(String name) { return entity.getDenizenObject(); } else if (name.equals("air")) { - return new ElementTag(air); + return new ElementTag(event.getAmount()); } return super.getContext(name); } @@ -100,9 +99,7 @@ else if (name.equals("air")) { @EventHandler public void onEntityAirLevelChanged(EntityAirChangeEvent event) { entity = new EntityTag(event.getEntity()); - air = event.getAmount(); this.event = event; fire(event); - event.setAmount(air); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityBreedScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityBreedScriptEvent.java index 7a3ad8c8ba..8a2a877dc0 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityBreedScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityBreedScriptEvent.java @@ -82,6 +82,7 @@ public String getName() { public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isInt()) { experience = ((ElementTag) determinationObj).asInt(); + event.setExperience(experience); return true; } return super.applyDetermination(path, determinationObj); @@ -115,6 +116,16 @@ else if (name.equals("experience")) { return super.getContext(name); } + @Override + public void cancellationChanged() { + // Prevent entities from continuing to breed with each other + if (cancelled) { + NMSHandler.getEntityHelper().setBreeding((Animals) father.getLivingEntity(), false); + NMSHandler.getEntityHelper().setBreeding((Animals) mother.getLivingEntity(), false); + } + super.cancellationChanged(); + } + @EventHandler public void onEntityBreeds(EntityBreedEvent event) { Entity entity = event.getEntity(); @@ -124,17 +135,9 @@ public void onEntityBreeds(EntityBreedEvent event) { mother = new EntityTag(event.getMother()); item = new ItemTag(event.getBredWith()); experience = event.getExperience(); - boolean wasCancelled = event.isCancelled(); this.event = event; EntityTag.rememberEntity(entity); fire(event); EntityTag.forgetEntity(entity); - event.setExperience(experience); - - // Prevent entities from continuing to breed with each other - if (cancelled && !wasCancelled) { - NMSHandler.getEntityHelper().setBreeding((Animals) father.getLivingEntity(), false); - NMSHandler.getEntityHelper().setBreeding((Animals) mother.getLivingEntity(), false); - } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityCombustsScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityCombustsScriptEvent.java index 077b6b3c45..937cf7b1eb 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityCombustsScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityCombustsScriptEvent.java @@ -51,7 +51,6 @@ public EntityCombustsScriptEvent() { public static EntityCombustsScriptEvent instance; public EntityTag entity; - private int burntime; public EntityCombustEvent event; @Override @@ -81,7 +80,7 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isInt()) { - burntime = ((ElementTag) determinationObj).asInt(); + event.setDuration(((ElementTag) determinationObj).asInt()); return true; } return super.applyDetermination(path, determinationObj); @@ -98,7 +97,7 @@ public ObjectTag getContext(String name) { return entity; } else if (name.equals("duration")) { - return new DurationTag(burntime); + return new DurationTag(event.getDuration()); } else if (name.equals("source")) { if (event instanceof EntityCombustByEntityEvent) { @@ -126,9 +125,7 @@ else if (event instanceof EntityCombustByBlockEvent) { @EventHandler public void onEntityCombusts(EntityCombustEvent event) { entity = new EntityTag(event.getEntity()); - burntime = event.getDuration(); this.event = event; fire(event); - event.setDuration(burntime); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDamagedScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDamagedScriptEvent.java index a93c66e6a3..377f6c2e10 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDamagedScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDamagedScriptEvent.java @@ -72,7 +72,6 @@ public EntityDamagedScriptEvent() { public EntityTag entity; public ElementTag cause; - public ElementTag damage; public ElementTag final_damage; public EntityTag damager; public EntityTag projectile; @@ -128,7 +127,7 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isDouble()) { - damage = new ElementTag(((ElementTag) determinationObj).asDouble()); + event.setDamage(((ElementTag) determinationObj).asDouble()); return true; } return super.applyDetermination(path, determinationObj); @@ -146,7 +145,7 @@ public ObjectTag getContext(String name) { return entity.getDenizenObject(); } else if (name.equals("damage")) { - return damage; + return new ElementTag(event.getDamage()); } else if (name.equals("final_damage")) { return final_damage; @@ -173,7 +172,6 @@ else if (name.startsWith("damage_")) { @EventHandler public void onEntityDamaged(EntityDamageEvent event) { entity = new EntityTag(event.getEntity()); - damage = new ElementTag(event.getDamage()); final_damage = new ElementTag(event.getFinalDamage()); cause = new ElementTag(CoreUtilities.toLowerCase(event.getCause().name())); damager = null; @@ -196,6 +194,5 @@ public void onEntityDamaged(EntityDamageEvent event) { } this.event = event; fire(event); - event.setDamage(damage.asDouble()); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDeathScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDeathScriptEvent.java index 3872cac5d9..eaf7f32181 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDeathScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDeathScriptEvent.java @@ -189,6 +189,14 @@ else if (name.equals("xp")) { return super.getContext(name); } + @Override + public void cancellationChanged() { + if (cancelled && event instanceof PlayerDeathEvent) { + ((PlayerDeathEvent) event).setDeathMessage(null); // Historical no_message was by cancelling. + } + super.cancellationChanged(); + } + @EventHandler public void onEntityDeath(EntityDeathEvent event) { LivingEntity livingEntity = event.getEntity(); @@ -217,9 +225,6 @@ else if (livingEntity.getKiller() != null) { cancelled = false; this.event = event; fire(event); - if (cancelled && event instanceof PlayerDeathEvent) { - ((PlayerDeathEvent) event).setDeathMessage(null); // Historical no_message was by cancelling. - } EntityTag.forgetEntity(livingEntity); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplodesScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplodesScriptEvent.java index bc54dfde4c..ab5d48af39 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplodesScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityExplodesScriptEvent.java @@ -48,10 +48,7 @@ public EntityExplodesScriptEvent() { public static EntityExplodesScriptEvent instance; public EntityTag entity; - public ListTag blocks; public LocationTag location; - public float strength; - private Boolean blockSet; public EntityExplodeEvent event; @Override @@ -83,19 +80,18 @@ public String getName() { public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { String determination = determinationObj.toString(); if (ArgumentHelper.matchesDouble(determination)) { - strength = Float.parseFloat(determination); + event.setYield(Float.parseFloat(determination)); return true; } if (ListTag.matches(determination)) { - blocks = new ListTag(); - blockSet = true; + event.blockList().clear(); for (String loc : ListTag.valueOf(determination, getTagContext(path))) { LocationTag location = LocationTag.valueOf(loc); if (location == null) { Debug.echoError("Invalid location '" + loc + "' check [" + getName() + "]: ' for " + path.container.getName()); } else { - blocks.addObject(location); + event.blockList().add(location.getWorld().getBlockAt(location)); } } return true; @@ -117,10 +113,14 @@ else if (name.equals("location")) { return location; } else if (name.equals("blocks")) { + ListTag blocks = new ListTag(); + for (Block block : event.blockList()) { + blocks.addObject(new LocationTag(block.getLocation())); + } return blocks; } else if (name.equals("strength")) { - return new ElementTag(strength); + return new ElementTag(event.getYield()); } return super.getContext(name); } @@ -129,24 +129,7 @@ else if (name.equals("strength")) { public void onEntityExplodes(EntityExplodeEvent event) { entity = new EntityTag(event.getEntity()); location = new LocationTag(event.getLocation()); - strength = event.getYield(); - blocks = new ListTag(); - blockSet = false; - for (Block block : event.blockList()) { - blocks.addObject(new LocationTag(block.getLocation())); - } this.event = event; fire(event); - if (blockSet) { - event.blockList().clear(); - if (blocks.size() > 0) { - event.blockList().clear(); - for (String loc : blocks) { - LocationTag location = LocationTag.valueOf(loc); - event.blockList().add(location.getWorld().getBlockAt(location)); - } - } - } - event.setYield(strength); } } 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 3641869f71..55194e2b26 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 @@ -37,8 +37,6 @@ public EntityExplosionPrimesScriptEvent() { public static EntityExplosionPrimesScriptEvent instance; public EntityTag entity; - public Float radius; - public Boolean fire; public ExplosionPrimeEvent event; @Override @@ -70,12 +68,11 @@ public String getName() { public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { String determination = determinationObj.toString(); if (ArgumentHelper.matchesDouble(determination)) { - radius = Float.parseFloat(determination); + event.setRadius(Float.parseFloat(determination)); return true; } - if (Argument.valueOf(determination) - .matchesBoolean()) { - fire = determination.equalsIgnoreCase("true"); + if (Argument.valueOf(determination).matchesBoolean()) { + event.setFire(determination.equalsIgnoreCase("true")); return true; } return super.applyDetermination(path, determinationObj); @@ -87,10 +84,10 @@ public ObjectTag getContext(String name) { return entity; } else if (name.equals("radius")) { - return new ElementTag(radius); + return new ElementTag(event.getRadius()); } else if (name.equals("fire")) { - return new ElementTag(fire); + return new ElementTag(event.getFire()); } return super.getContext(name); } @@ -98,11 +95,7 @@ else if (name.equals("fire")) { @EventHandler public void onEntityExplosionPrimes(ExplosionPrimeEvent event) { entity = new EntityTag(event.getEntity()); - radius = event.getRadius(); - fire = event.getFire(); this.event = event; fire(event); - event.setFire(fire); - event.setRadius(radius); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityFoodLevelChangeScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityFoodLevelChangeScriptEvent.java index cfbd41a678..19d908ae85 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityFoodLevelChangeScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityFoodLevelChangeScriptEvent.java @@ -44,7 +44,6 @@ public EntityFoodLevelChangeScriptEvent() { public static EntityFoodLevelChangeScriptEvent instance; public EntityTag entity; - public Integer food; public FoodLevelChangeEvent event; @Override @@ -75,7 +74,7 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isInt()) { - food = ((ElementTag) determinationObj).asInt(); + event.setFoodLevel(((ElementTag) determinationObj).asInt()); return true; } return super.applyDetermination(path, determinationObj); @@ -92,7 +91,7 @@ public ObjectTag getContext(String name) { return entity.getDenizenObject(); } else if (name.equals("food")) { - return new ElementTag(food); + return new ElementTag(event.getFoodLevel()); } return super.getContext(name); } @@ -100,9 +99,7 @@ else if (name.equals("food")) { @EventHandler public void onEntityFoodLevelChanged(FoodLevelChangeEvent event) { entity = new EntityTag(event.getEntity()); - food = event.getFoodLevel(); this.event = event; fire(event); - event.setFoodLevel(food); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityGlideScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityGlideScriptEvent.java index d1c4e41887..dedb048431 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityGlideScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityGlideScriptEvent.java @@ -42,7 +42,7 @@ public EntityGlideScriptEvent() { public static EntityGlideScriptEvent instance; public EntityTag entity; - public Boolean state; + public boolean state; @Override public boolean couldMatch(ScriptPath path) { diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityHealsScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityHealsScriptEvent.java index 8b3c16b16b..66846aaa23 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityHealsScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityHealsScriptEvent.java @@ -46,7 +46,6 @@ public EntityHealsScriptEvent() { public static EntityHealsScriptEvent instance; public EntityTag entity; - public ElementTag amount; public ElementTag reason; public EntityRegainHealthEvent event; @@ -81,8 +80,8 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { - if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isInt()) { - amount = (ElementTag) determinationObj; + if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isDouble()) { + event.setAmount(((ElementTag) determinationObj).asDouble()); return true; } return super.applyDetermination(path, determinationObj); @@ -102,7 +101,7 @@ else if (name.equals("reason")) { return reason; } else if (name.equals("amount")) { - return amount; + return new ElementTag(event.getAmount()); } return super.getContext(name); } @@ -110,10 +109,8 @@ else if (name.equals("amount")) { @EventHandler public void onEntityHeals(EntityRegainHealthEvent event) { entity = new EntityTag(event.getEntity()); - amount = new ElementTag(event.getAmount()); reason = new ElementTag(event.getRegainReason().toString()); this.event = event; fire(event); - event.setAmount(amount.asDouble()); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityKilledScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityKilledScriptEvent.java index 9ac00716c7..5aabd81e60 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityKilledScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityKilledScriptEvent.java @@ -68,7 +68,6 @@ public EntityKilledScriptEvent() { public EntityTag entity; public ElementTag cause; - public ElementTag damage; public ElementTag final_damage; public EntityTag damager; public EntityTag projectile; @@ -120,7 +119,7 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isDouble()) { - damage = (ElementTag) determinationObj; + event.setDamage(((ElementTag) determinationObj).asDouble()); return true; } return super.applyDetermination(path, determinationObj); @@ -145,7 +144,7 @@ public ObjectTag getContext(String name) { return entity.getDenizenObject(); } else if (name.equals("damage")) { - return damage; + return new ElementTag(event.getDamage()); } else if (name.equals("final_damage")) { return final_damage; @@ -181,7 +180,6 @@ public void onEntityKilled(EntityDamageEvent event) { else { return; } - damage = new ElementTag(event.getDamage()); final_damage = new ElementTag(event.getFinalDamage()); cause = new ElementTag(CoreUtilities.toLowerCase(event.getCause().name())); damager = null; @@ -197,6 +195,5 @@ public void onEntityKilled(EntityDamageEvent event) { } this.event = event; fire(event); - event.setDamage(damage.asDouble()); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityShootsBowEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityShootsBowEvent.java index 21fbda3371..a98a0bd6eb 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityShootsBowEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityShootsBowEvent.java @@ -56,7 +56,6 @@ public EntityShootsBowEvent() { public static EntityShootsBowEvent instance; public EntityTag entity; - public Float force; public ItemTag bow; public EntityTag projectile; public EntityShootBowEvent event; @@ -114,13 +113,11 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { Position.mount(Conversion.convertEntities(newProjectiles)); // Get the last entity on the list, i.e. the one at the bottom // if there are many mounted on top of each other - Entity lastProjectile = newProjectiles.get - (newProjectiles.size() - 1).getBukkitEntity(); + Entity lastProjectile = newProjectiles.get(newProjectiles.size() - 1).getBukkitEntity(); // Give it the same velocity as the arrow that would // have been shot by the bow // Note: No, I can't explain why this has to be multiplied by three, it just does. - lastProjectile.setVelocity(event.getEntity().getLocation() - .getDirection().multiply(force)); + lastProjectile.setVelocity(event.getEntity().getLocation().getDirection().multiply(event.getForce() * 3)); return true; } return super.applyDetermination(path, determinationObj); @@ -137,7 +134,7 @@ public ObjectTag getContext(String name) { return entity; } else if (name.equals("force")) { - return new ElementTag(force); + return new ElementTag(event.getForce() * 3); } else if (name.equals("bow")) { return bow; @@ -151,7 +148,6 @@ else if (name.equals("projectile")) { @EventHandler public void onEntityShootsBow(EntityShootBowEvent event) { entity = new EntityTag(event.getEntity()); - force = event.getForce() * 3; bow = new ItemTag(event.getBow()); Entity projectileEntity = event.getProjectile(); EntityTag.rememberEntity(projectileEntity); diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntitySwimScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntitySwimScriptEvent.java index 5a29cc7927..49e45e267a 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntitySwimScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntitySwimScriptEvent.java @@ -41,7 +41,7 @@ public EntitySwimScriptEvent() { public static EntitySwimScriptEvent instance; public EntityTag entity; - public Boolean state; + public boolean state; @Override public boolean couldMatch(ScriptPath path) { diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityTeleportScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityTeleportScriptEvent.java index 90053fecc0..71001e49ba 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityTeleportScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityTeleportScriptEvent.java @@ -95,6 +95,12 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { LocationTag new_from = LocationTag.valueOf(determination.substring("origin:".length())); if (new_from != null) { from = new_from; + if (event != null) { + event.setFrom(new_from); + } + else { + pEvent.setFrom(new_from); + } return true; } } @@ -102,6 +108,12 @@ else if (dlow.startsWith("destination:")) { LocationTag new_to = LocationTag.valueOf(determination.substring("destination:".length())); if (new_to != null) { to = new_to; + if (event != null) { + event.setTo(new_to); + } + else { + pEvent.setTo(new_to); + } return true; } } @@ -109,6 +121,12 @@ else if (LocationTag.matches(determination)) { LocationTag new_to = LocationTag.valueOf(determination); if (new_to != null) { to = new_to; + if (event != null) { + event.setTo(new_to); + } + else { + pEvent.setTo(new_to); + } return true; } } @@ -149,8 +167,6 @@ public void onEntityTeleports(EntityTeleportEvent event) { this.event = event; pEvent = null; fire(event); - event.setFrom(from); - event.setTo(to); } @EventHandler @@ -162,7 +178,5 @@ public void onPlayerTeleports(PlayerTeleportEvent event) { this.event = null; pEvent = event; fire(event); - event.setFrom(from); - event.setTo(to); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/HorseJumpsScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/HorseJumpsScriptEvent.java index 90069889f1..4e96799307 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/HorseJumpsScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/HorseJumpsScriptEvent.java @@ -42,7 +42,6 @@ public HorseJumpsScriptEvent() { public static HorseJumpsScriptEvent instance; public EntityTag entity; public ElementTag color; - public Float power; public HorseJumpEvent event; @Override @@ -79,7 +78,7 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isFloat()) { - power = ((ElementTag) determinationObj).asFloat(); + event.setPower(((ElementTag) determinationObj).asFloat()); return true; } return super.applyDetermination(path, determinationObj); @@ -94,7 +93,7 @@ else if (name.equals("color")) { return color; } else if (name.equals("power")) { - return new ElementTag(power); + return new ElementTag(event.getPower()); } return super.getContext(name); } @@ -104,10 +103,8 @@ public void onHorseJumps(HorseJumpEvent event) { if (event.getEntity() instanceof Horse) { entity = new EntityTag(event.getEntity()); color = new ElementTag(((Horse) event.getEntity()).getColor().name()); - power = event.getPower(); this.event = event; fire(event); - event.setPower(power); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/ItemEnchantedScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/ItemEnchantedScriptEvent.java index 2f231dff1e..184cbca48e 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/ItemEnchantedScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/ItemEnchantedScriptEvent.java @@ -42,7 +42,7 @@ public class ItemEnchantedScriptEvent extends BukkitScriptEvent implements Liste // @Determine // ElementTag(Number) to set the experience level cost of the enchantment. // "RESULT:" + ItemTag to change the item result (only affects metadata (like enchantments), not material/quantity/etc!). - // "ENCHANTS:" + ItemTag to change the resultant enchantments based on a ItemTag. + // "ENCHANTS:" + ItemTag to change the resultant enchantments based on an ItemTag. // --> public ItemEnchantedScriptEvent() { @@ -57,8 +57,6 @@ public ItemEnchantedScriptEvent() { public ElementTag button; public int cost; public EnchantItemEvent event; - public boolean itemEdited; - public ItemTag enchantsRes; @Override public boolean couldMatch(ScriptPath path) { @@ -90,6 +88,7 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag) { if (((ElementTag) determinationObj).isInt()) { cost = ((ElementTag) determinationObj).asInt(); + event.setExpLevelCost(cost); return true; } String determination = determinationObj.toString(); @@ -97,12 +96,14 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (lower.startsWith("result:")) { String itemText = determination.substring("result:".length()); item = ItemTag.valueOf(itemText, path.container); - itemEdited = true; + event.getItem().setItemMeta(item.getItemStack().getItemMeta()); return true; } else if (lower.startsWith("enchants:")) { String itemText = determination.substring("enchants:".length()); - enchantsRes = ItemTag.valueOf(itemText, path.container); + ItemTag enchantsRes = ItemTag.valueOf(itemText, path.container); + event.getEnchantsToAdd().clear(); + event.getEnchantsToAdd().putAll(enchantsRes.getItemStack().getItemMeta().getEnchants()); return true; } } @@ -145,17 +146,7 @@ public void onItemEnchanted(EnchantItemEvent event) { item = new ItemTag(event.getItem()); button = new ElementTag(event.whichButton()); cost = event.getExpLevelCost(); - itemEdited = false; this.event = event; - enchantsRes = null; fire(event); - event.setExpLevelCost(cost); - if (itemEdited) { - event.getItem().setItemMeta(item.getItemStack().getItemMeta()); - } - if (enchantsRes != null) { - event.getEnchantsToAdd().clear(); - event.getEnchantsToAdd().putAll(enchantsRes.getItemStack().getItemMeta().getEnchants()); - } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/SheepDyedScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/SheepDyedScriptEvent.java index a2678da917..0ceae67c83 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/SheepDyedScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/SheepDyedScriptEvent.java @@ -80,6 +80,7 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (!isDefaultDetermination(determinationObj)) { try { color = DyeColor.valueOf(determinationObj.toString().toUpperCase()); + event.setColor(color); return true; } catch (IllegalArgumentException e) { @@ -110,6 +111,5 @@ public void onSheepDyed(SheepDyeWoolEvent event) { color = DyeColor.valueOf(event.getColor().toString()); this.event = event; fire(event); - event.setColor(color); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/SlimeSplitsScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/SlimeSplitsScriptEvent.java index 34eb46efc4..ba449740b6 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/SlimeSplitsScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/SlimeSplitsScriptEvent.java @@ -37,7 +37,6 @@ public SlimeSplitsScriptEvent() { public static SlimeSplitsScriptEvent instance; public EntityTag entity; - public int count; public SlimeSplitEvent event; @Override @@ -51,7 +50,7 @@ public boolean matches(ScriptPath path) { if (path.eventArgLowerAt(2).equals("into") && !counts.isEmpty()) { try { - if (Integer.parseInt(counts) != count) { + if (Integer.parseInt(counts) != event.getCount()) { return false; } } @@ -75,7 +74,7 @@ public String getName() { @Override public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag && ((ElementTag) determinationObj).isInt()) { - count = ((ElementTag) determinationObj).asInt(); + event.setCount(((ElementTag) determinationObj).asInt()); return true; } return super.applyDetermination(path, determinationObj); @@ -87,7 +86,7 @@ public ObjectTag getContext(String name) { return entity; } else if (name.equals("count")) { - return new ElementTag(count); + return new ElementTag(event.getCount()); } return super.getContext(name); } @@ -95,10 +94,8 @@ else if (name.equals("count")) { @EventHandler public void onSlimeSplits(SlimeSplitEvent event) { entity = new EntityTag(event.getEntity()); - count = event.getCount(); this.event = event; fire(event); - event.setCount(count); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/entity/VehicleCollidesEntityScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/entity/VehicleCollidesEntityScriptEvent.java index c165d4e2fb..41632e4d13 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/entity/VehicleCollidesEntityScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/entity/VehicleCollidesEntityScriptEvent.java @@ -51,7 +51,6 @@ public VehicleCollidesEntityScriptEvent() { public EntityTag vehicle; public EntityTag entity; - private Boolean pickup_cancel; public VehicleEntityCollisionEvent event; @Override @@ -86,7 +85,7 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { if (determinationObj instanceof ElementTag) { Argument arg = Argument.valueOf(determinationObj.toString()); if (arg.matchesPrefix("pickup")) { - pickup_cancel = !arg.asElement().asBoolean(); + event.setPickupCancelled(!arg.asElement().asBoolean()); return true; } } @@ -107,7 +106,7 @@ else if (name.equals("entity")) { return entity; } else if (name.equals("pickup")) { - return new ElementTag(!pickup_cancel); + return new ElementTag(!event.isPickupCancelled()); } return super.getContext(name); } @@ -116,9 +115,7 @@ else if (name.equals("pickup")) { public void onVehicleCollidesEntity(VehicleEntityCollisionEvent event) { entity = new EntityTag(event.getEntity()); vehicle = new EntityTag(event.getVehicle()); - pickup_cancel = event.isPickupCancelled(); this.event = event; fire(event); - event.setPickupCancelled(pickup_cancel); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/ItemRecipeFormedScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/ItemRecipeFormedScriptEvent.java index 22be2e9869..94d756e4c6 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/ItemRecipeFormedScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/ItemRecipeFormedScriptEvent.java @@ -118,6 +118,14 @@ else if (name.equals("recipe")) { return super.getContext(name); } + @Override + public void cancellationChanged() { + if (cancelled) { // Hacked-in cancellation helper + event.getInventory().setResult(null); + } + super.cancellationChanged(); + } + @EventHandler public void onRecipeFormed(PrepareItemCraftEvent event) { this.event = event; @@ -128,8 +136,5 @@ public void onRecipeFormed(PrepareItemCraftEvent event) { result = new ItemTag(eRecipe.getResult()); cancelled = false; fire(event); - if (cancelled) { // Hacked-in cancellation helper - event.getInventory().setResult(null); - } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerBreaksItemScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerBreaksItemScriptEvent.java index 4fa80098ac..c1981c6d7e 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerBreaksItemScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerBreaksItemScriptEvent.java @@ -101,15 +101,8 @@ else if (name.equals("slot")) { return super.getContext(name); } - @EventHandler - public void onPlayerItemBreak(PlayerItemBreakEvent event) { - if (EntityTag.isNPC(event.getPlayer())) { - return; - } - item = new ItemTag(event.getBrokenItem()); - this.event = event; - cancelled = false; - fire(event); + @Override + public void cancellationChanged() { if (cancelled) { // Hacked-in cancellation helper final Player player = event.getPlayer(); final ItemStack itemstack = event.getBrokenItem(); @@ -121,5 +114,17 @@ public void run() { } }.runTaskLater(DenizenAPI.getCurrentInstance(), 1); } + super.cancellationChanged(); + } + + @EventHandler + public void onPlayerItemBreak(PlayerItemBreakEvent event) { + if (EntityTag.isNPC(event.getPlayer())) { + return; + } + item = new ItemTag(event.getBrokenItem()); + this.event = event; + cancelled = false; + fire(event); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesXPScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesXPScriptEvent.java index 89e38eb0f1..40768b8593 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesXPScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesXPScriptEvent.java @@ -84,6 +84,14 @@ public ObjectTag getContext(String name) { return super.getContext(name); } + @Override + public void cancellationChanged() { + if (cancelled) { + event.setAmount(0); + } + super.cancellationChanged(); + } + @EventHandler public void onPlayerChangesXP(PlayerExpChangeEvent event) { if (EntityTag.isNPC(event.getPlayer())) { @@ -93,8 +101,5 @@ public void onPlayerChangesXP(PlayerExpChangeEvent event) { this.event = event; cancelled = false; fire(event); - if (cancelled) { - event.setAmount(0); - } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCraftsItemScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCraftsItemScriptEvent.java index 81c0a13c95..cd28bc3c6b 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCraftsItemScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerCraftsItemScriptEvent.java @@ -110,6 +110,14 @@ else if (name.equals("recipe")) { return super.getContext(name); } + @Override + public void cancellationChanged() { + if (cancelled) { // This event has a weird cancellation handler + event.setCancelled(true); + } + super.cancellationChanged(); + } + @EventHandler public void onCraftItem(CraftItemEvent event) { HumanEntity humanEntity = event.getWhoClicked(); @@ -122,8 +130,5 @@ public void onCraftItem(CraftItemEvent event) { this.player = EntityTag.getPlayerFrom(humanEntity); this.cancelled = false; fire(event); - if (cancelled) { // This event has a weird cancellation handler - event.setCancelled(true); - } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerDragsInInvScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerDragsInInvScriptEvent.java index 23b5f33910..5f655b003b 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerDragsInInvScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerDragsInInvScriptEvent.java @@ -119,19 +119,9 @@ else if (name.equals("clicked_inventory")) { return super.getContext(name); } - @EventHandler - public void onPlayerDragsInInv(InventoryDragEvent event) { - if (EntityTag.isCitizensNPC(event.getWhoClicked())) { - return; - } - entity = EntityTag.getPlayerFrom(event.getWhoClicked()); - inventory = event.getInventory(); - dInv = InventoryTag.mirrorBukkitInventory(inventory); - item = new ItemTag(event.getOldCursor()); - boolean wasCancelled = event.isCancelled(); - this.event = event; - fire(event); - if (cancelled && !wasCancelled) { + @Override + public void cancellationChanged() { + if (cancelled) { final InventoryHolder holder = inventory.getHolder(); new BukkitRunnable() { @Override @@ -143,5 +133,19 @@ public void run() { } }.runTaskLater(DenizenAPI.getCurrentInstance(), 1); } + super.cancellationChanged(); + } + + @EventHandler + public void onPlayerDragsInInv(InventoryDragEvent event) { + if (EntityTag.isCitizensNPC(event.getWhoClicked())) { + return; + } + entity = EntityTag.getPlayerFrom(event.getWhoClicked()); + inventory = event.getInventory(); + dInv = InventoryTag.mirrorBukkitInventory(inventory); + item = new ItemTag(event.getOldCursor()); + this.event = event; + fire(event); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerFlyingScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerFlyingScriptEvent.java index a013a815ae..9dc2c6572a 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerFlyingScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerFlyingScriptEvent.java @@ -39,7 +39,7 @@ public PlayerFlyingScriptEvent() { } public static PlayerFlyingScriptEvent instance; - public Boolean state; + public boolean state; public PlayerToggleFlightEvent event; @Override diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerItemTakesDamageScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerItemTakesDamageScriptEvent.java index 5c6beb2352..b128b0cb57 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerItemTakesDamageScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerItemTakesDamageScriptEvent.java @@ -105,6 +105,20 @@ else if (name.equals("slot")) { return super.getContext(name); } + @Override + public void cancellationChanged() { + if (cancelled) { + final Player p = event.getPlayer(); + Bukkit.getScheduler().scheduleSyncDelayedTask(DenizenAPI.getCurrentInstance(), new Runnable() { + @Override + public void run() { + p.updateInventory(); + } + }, 1); + } + super.cancellationChanged(); + } + @EventHandler public void onPlayerItemTakesDamage(PlayerItemDamageEvent event) { if (EntityTag.isNPC(event.getPlayer())) { @@ -112,17 +126,7 @@ public void onPlayerItemTakesDamage(PlayerItemDamageEvent event) { } item = new ItemTag(event.getItem()); location = new LocationTag(event.getPlayer().getLocation()); - boolean wasCancelled = event.isCancelled(); this.event = event; fire(event); - final Player p = event.getPlayer(); - if (cancelled && !wasCancelled) { - Bukkit.getScheduler().scheduleSyncDelayedTask(DenizenAPI.getCurrentInstance(), new Runnable() { - @Override - public void run() { - p.updateInventory(); - } - }, 1); - } } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/triggers/core/ChatTrigger.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/triggers/core/ChatTrigger.java index 5aa12962fc..1703d4a093 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/triggers/core/ChatTrigger.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/triggers/core/ChatTrigger.java @@ -463,7 +463,7 @@ public String getChanges() { return changed_text != null ? changed_text : DetermineCommand.DETERMINE_NONE; } - public Boolean wasTriggered() { + public boolean wasTriggered() { return triggered; }