diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/BiomeEnterExitScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/BiomeEnterExitScriptEvent.java index 0ae37fa6ee..56e4798223 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/BiomeEnterExitScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/BiomeEnterExitScriptEvent.java @@ -1,11 +1,14 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.objects.dLocation; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -90,6 +93,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + // TODO: Store the player / npc? + return new BukkitScriptEntryData(event != null ? dEntity.getPlayerFrom(event.getPlayer()) : null, null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/BucketEmptyScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/BucketEmptyScriptEvent.java index 484553ffa9..492e03c566 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/BucketEmptyScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/BucketEmptyScriptEvent.java @@ -84,9 +84,7 @@ public boolean applyDetermination(ScriptContainer container, String determinatio @Override public ScriptEntryData getScriptEntryData() { - // TODO: Store the player / npc? - return new BukkitScriptEntryData(event != null ? dEntity.getPlayerFrom(event.getPlayer()): null, - entity.isNPC() ? entity.getDenizenNPC(): null); + return new BukkitScriptEntryData(event != null ? dEntity.getPlayerFrom(event.getPlayer()): null, null); } @Override diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityBreaksHangingScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityBreaksHangingScriptEvent.java index 67cb49fb7c..b0af5faca6 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityBreaksHangingScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityBreaksHangingScriptEvent.java @@ -1,5 +1,6 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dCuboid; import net.aufdemrand.denizen.objects.dEllipsoid; import net.aufdemrand.denizen.objects.dEntity; @@ -10,14 +11,18 @@ import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; public class EntityBreaksHangingScriptEvent extends ScriptEvent implements Listener { @@ -57,8 +62,9 @@ public EntityBreaksHangingScriptEvent() { public boolean couldMatch(ScriptContainer scriptContainer, String s) { String lower = CoreUtilities.toLowerCase(s); String entName = CoreUtilities.getXthArg(0, lower); + List types = Arrays.asList("entity", "player", "npc"); return lower.contains("breaks hanging") - && (entName.equals("entity") || dEntity.matches(entName)); + && (types.contains(entName) || dEntity.matches(entName)); } @Override @@ -123,6 +129,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getRemover()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getRemover()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityCombustsScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityCombustsScriptEvent.java index 1f5c86c556..0981bb6300 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityCombustsScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityCombustsScriptEvent.java @@ -1,10 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizencore.events.ScriptEvent; -import net.aufdemrand.denizencore.objects.Element; +import net.aufdemrand.denizencore.objects.Duration; +import net.aufdemrand.denizencore.objects.aH; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -13,7 +16,9 @@ import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityCombustEvent; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; public class EntityCombustsScriptEvent extends ScriptEvent implements Listener { @@ -24,34 +29,41 @@ public class EntityCombustsScriptEvent extends ScriptEvent implements Listener { // // @Cancellable true // - // @Triggers when an entity combusts. + // @Triggers when an entity catches fire. // // @Context - // returns how long the entity takes to combust. - // returns the dEntity that combusted. + // returns the entity that caught fire. + // returns the length of the burn. + // + // @Determine + // Element(Number) set the length of duration. // // --> public EntityCombustsScriptEvent() { instance = this; } - public static EntityCombustsScriptEvent instance; - public dEntity entity; - public Element duration; + public Duration duration; + private Integer burntime; public EntityCombustEvent event; @Override public boolean couldMatch(ScriptContainer scriptContainer, String s) { String lower = CoreUtilities.toLowerCase(s); - return lower.contains("combusts"); + String cmd = CoreUtilities.getXthArg(1, lower); + String entOne = CoreUtilities.getXthArg(0, lower); + List types = Arrays.asList("entity", "player", "npc"); + return (types.contains(entOne) || dEntity.matches(entOne)) + && cmd.equals("combusts"); } @Override public boolean matches(ScriptContainer scriptContainer, String s) { - String ent = CoreUtilities.getXthArg(0, s); - return entity.matchesEntity(ent); + String target = CoreUtilities.getXthArg(0,CoreUtilities.toLowerCase(s)); + List types = Arrays.asList("entity", "player", "npc"); + return (types.contains(target) || entity.matchesEntity(target)); } @Override @@ -71,9 +83,20 @@ public void destroy() { @Override public boolean applyDetermination(ScriptContainer container, String determination) { + if (aH.Argument.valueOf(determination) + .matchesPrimitive(aH.PrimitiveType.Integer)) { + burntime = aH.getIntegerFrom(determination); + return true; + } return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); @@ -83,13 +106,13 @@ public HashMap getContext() { } @EventHandler - public void onEntityCombust(EntityCombustEvent event) { + public void onEntityCombusts(EntityCombustEvent event) { entity = new dEntity(event.getEntity()); - duration = new Element(event.getDuration()); + duration = new Duration(event.getDuration()); cancelled = event.isCancelled(); this.event = event; fire(); event.setCancelled(cancelled); + event.setDuration(burntime); } - } diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDamagedScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDamagedScriptEvent.java index d6be94d5b9..1f03299c3a 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDamagedScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDamagedScriptEvent.java @@ -1,5 +1,6 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; @@ -7,6 +8,7 @@ import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.aH; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -93,13 +95,6 @@ public boolean couldMatch(ScriptContainer scriptContainer, String s) { @Override public boolean matches(ScriptContainer scriptContainer, String s) { - // Check for possibility of death first - if (entity.isValid() && entity.isLivingEntity()) { - if (final_damage.asDouble() >= entity.getLivingEntity().getHealth()) { - return false; - } - } - String lower = CoreUtilities.toLowerCase(s); String cmd = CoreUtilities.getXthArg(1, lower); String attacker = cmd.equals("damages") ? CoreUtilities.getXthArg(0, lower): CoreUtilities.getXthArg(3, lower); @@ -117,10 +112,8 @@ public boolean matches(ScriptContainer scriptContainer, String s) { } } if (target.length() > 0) { - if (dEntity.matches(target)) { - if (!entity.matchesEntity(target)) { - return false; - } + if (!entity.matchesEntity(target)) { + return false; } } @@ -151,6 +144,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDeathScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDeathScriptEvent.java index 2c247ac49c..7c762abbd4 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDeathScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDeathScriptEvent.java @@ -1,9 +1,11 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -142,6 +144,12 @@ else if (!lower.equals("none")) { return true; } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDespawnScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDespawnScriptEvent.java index a5ea0e679a..3be4d8cf7b 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDespawnScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityDespawnScriptEvent.java @@ -1,9 +1,11 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -34,7 +36,6 @@ public EntityDespawnScriptEvent() { } public static EntityDespawnScriptEvent instance; - public dEntity entity; public Element cause; @@ -70,6 +71,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(entity.getBukkitEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(entity.getBukkitEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityFormsBlock.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityFormsBlock.java index b4bc2f0b50..1be5f58978 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityFormsBlock.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityFormsBlock.java @@ -1,10 +1,12 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -62,8 +64,9 @@ public boolean matches(ScriptContainer scriptContainer, String s) { if (!entity.matchesEntity(CoreUtilities.getXthArg(0, lower))) { return false; } - if (!material.identifySimpleNoIdentifier().equals("block") - || !material.identifySimpleNoIdentifier().equals(CoreUtilities.getXthArg(2, lower))) { + String mat = CoreUtilities.getXthArg(2, lower); + if (!mat.equals("block") + && !mat.equals(material.identifyNoIdentifier()) && !mat.equals(material.identifySimpleNoIdentifier())) { return false; } if (CoreUtilities.xthArgEquals(3, lower, "in")) { @@ -81,7 +84,7 @@ else if (dEllipsoid.matches(it)) { } } else { - dB.echoError("Invalid event 'IN ...' check [BlockPhysics]: '" + s + "' for " + scriptContainer.getName()); + dB.echoError("Invalid event 'IN ...' check [" + getName() + "]: '" + s + "' for " + scriptContainer.getName()); return false; } } @@ -109,6 +112,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityInteractScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityInteractScriptEvent.java index 15a5ce4ff8..4eed6c8832 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityInteractScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityInteractScriptEvent.java @@ -1,11 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; import org.bukkit.Bukkit; @@ -84,7 +86,7 @@ else if (dEllipsoid.matches(it)) { } } else { - dB.echoError("Invalid event 'IN ...' check [BlockPhysics]: '" + s + "' for " + scriptContainer.getName()); + dB.echoError("Invalid event 'IN ...' check [" + getName() + "]: '" + s + "' for " + scriptContainer.getName()); return false; } } @@ -112,6 +114,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityKilledScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityKilledScriptEvent.java index fbc667280d..3cc28f6099 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityKilledScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntityKilledScriptEvent.java @@ -1,5 +1,6 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; @@ -7,6 +8,7 @@ import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.aH; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -104,11 +106,9 @@ else if(!cause.asString().equals(attacker)) { } } if (target.length() > 0) { - if (dEntity.matches(target)) { if (!entity.matchesEntity(target)) { return false; } - } } @@ -139,6 +139,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): dEntity.getPlayerFrom(damager.getBukkitEntity()), + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): dEntity.getNPCFrom(damager.getBukkitEntity())); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntitySpawnScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntitySpawnScriptEvent.java index 3cf4fef492..580128e534 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntitySpawnScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/EntitySpawnScriptEvent.java @@ -1,5 +1,6 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dCuboid; import net.aufdemrand.denizen.objects.dEllipsoid; import net.aufdemrand.denizen.objects.dEntity; @@ -10,6 +11,7 @@ import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -114,6 +116,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/HangingBreaksScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/HangingBreaksScriptEvent.java index 7d5165296c..26845e4dfa 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/HangingBreaksScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/HangingBreaksScriptEvent.java @@ -1,5 +1,6 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; @@ -7,6 +8,7 @@ import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -122,6 +124,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? dEntity.getPlayerFrom(event.getEntity()): null, + entity.isCitizensNPC() ? dEntity.getNPCFrom(event.getEntity()): null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/ItemScrollScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/ItemScrollScriptEvent.java index 9973d9f7b7..7ec86b352d 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/ItemScrollScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/ItemScrollScriptEvent.java @@ -1,9 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.dEntity; +import net.aufdemrand.denizen.objects.dPlayer; import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; import org.bukkit.event.player.PlayerItemHeldEvent; @@ -73,6 +77,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerBreaksBlockScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerBreaksBlockScriptEvent.java index 3514f6e53d..2c14f49a4f 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerBreaksBlockScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerBreaksBlockScriptEvent.java @@ -1,5 +1,6 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; @@ -8,6 +9,7 @@ import net.aufdemrand.denizencore.objects.aH; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -143,6 +145,11 @@ else if (aH.Argument.valueOf(lower).matchesArgumentList(dItem.class)) { return true; } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerChangesSignScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerChangesSignScriptEvent.java index 50a722ec65..0579e6134e 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerChangesSignScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerChangesSignScriptEvent.java @@ -1,14 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; -import net.aufdemrand.denizen.objects.dCuboid; -import net.aufdemrand.denizen.objects.dEllipsoid; -import net.aufdemrand.denizen.objects.dLocation; -import net.aufdemrand.denizen.objects.dMaterial; +import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.tags.core.EscapeTags; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -124,6 +123,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerDamagesBlockScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerDamagesBlockScriptEvent.java index c173b06869..ba909c82ed 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerDamagesBlockScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerDamagesBlockScriptEvent.java @@ -1,14 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; -import net.aufdemrand.denizen.objects.dCuboid; -import net.aufdemrand.denizen.objects.dEllipsoid; -import net.aufdemrand.denizen.objects.dLocation; -import net.aufdemrand.denizen.objects.dMaterial; +import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -114,6 +113,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerJumpScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerJumpScriptEvent.java index 749ab64918..b0748ef740 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerJumpScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerJumpScriptEvent.java @@ -1,9 +1,12 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.objects.dLocation; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; import org.bukkit.Bukkit; @@ -72,6 +75,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + // TODO: Store the player / npc? + return new BukkitScriptEntryData(event != null ? dEntity.getPlayerFrom(event.getPlayer()) : null, null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesBlockScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesBlockScriptEvent.java index 30b210ab8f..d39b36bed9 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesBlockScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesBlockScriptEvent.java @@ -1,11 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; import org.bukkit.Bukkit; @@ -61,7 +63,9 @@ public boolean matches(ScriptContainer scriptContainer, String s) { String lower = CoreUtilities.toLowerCase(s); String mat = CoreUtilities.getXthArg(2, lower); - if (!mat.equals("block") && !mat.equals(material.identifyNoIdentifier())) { + + if (!mat.equals("block") + && !mat.equals(material.identifyNoIdentifier()) && !mat.equals(material.identifySimpleNoIdentifier())) { return false; } if (CoreUtilities.xthArgEquals(3, lower, "in")) { @@ -79,7 +83,7 @@ else if (dEllipsoid.matches(it)) { } } else { - dB.echoError("Invalid event 'IN ...' check [BlockPhysics]: '" + s + "' for " + scriptContainer.getName()); + dB.echoError("Invalid event 'IN ...' check [" + getName() + "]: '" + s + "' for " + scriptContainer.getName()); return false; } } @@ -107,6 +111,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesHangingScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesHangingScriptEvent.java index d4877dc403..4b7b0428ef 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesHangingScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerPlacesHangingScriptEvent.java @@ -1,14 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; -import net.aufdemrand.denizen.objects.dCuboid; -import net.aufdemrand.denizen.objects.dEllipsoid; -import net.aufdemrand.denizen.objects.dEntity; -import net.aufdemrand.denizen.objects.dLocation; +import net.aufdemrand.denizen.BukkitScriptEntryData; +import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -59,7 +58,7 @@ public boolean matches(ScriptContainer scriptContainer, String s) { String lower = CoreUtilities.toLowerCase(s); String hangCheck = CoreUtilities.getXthArg(2, lower); if (!hangCheck.equals("hanging") - && hanging.matchesEntity(hangCheck)){ + && (!hanging.identifySimple().equals(hangCheck) && !hanging.identifySimpleType().equals(hangCheck))){ return false; } String notable = null; @@ -108,6 +107,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerStepsOnScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerStepsOnScriptEvent.java index 54b2f79549..84535c5f25 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerStepsOnScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerStepsOnScriptEvent.java @@ -1,11 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.debugging.dB; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dList; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -105,6 +107,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerTakesFromFurnaceScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerTakesFromFurnaceScriptEvent.java index 52ddf0234d..730703ba5c 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerTakesFromFurnaceScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerTakesFromFurnaceScriptEvent.java @@ -1,11 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.aH; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -84,6 +86,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerWalkScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerWalkScriptEvent.java index a0c839a57b..d96b3f61bf 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerWalkScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/PlayerWalkScriptEvent.java @@ -1,9 +1,12 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dLocation; +import net.aufdemrand.denizen.objects.dPlayer; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -73,6 +76,11 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(new dPlayer(event.getPlayer()), null); + } + @Override public HashMap getContext() { HashMap context = super.getContext(); diff --git a/src/main/java/net/aufdemrand/denizen/events/scriptevents/VehicleCollidesEntityScriptEvent.java b/src/main/java/net/aufdemrand/denizen/events/scriptevents/VehicleCollidesEntityScriptEvent.java index 511a854f5d..00f54feb5d 100644 --- a/src/main/java/net/aufdemrand/denizen/events/scriptevents/VehicleCollidesEntityScriptEvent.java +++ b/src/main/java/net/aufdemrand/denizen/events/scriptevents/VehicleCollidesEntityScriptEvent.java @@ -1,11 +1,13 @@ package net.aufdemrand.denizen.events.scriptevents; +import net.aufdemrand.denizen.BukkitScriptEntryData; import net.aufdemrand.denizen.objects.dEntity; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizencore.events.ScriptEvent; import net.aufdemrand.denizencore.objects.Element; import net.aufdemrand.denizencore.objects.aH; import net.aufdemrand.denizencore.objects.dObject; +import net.aufdemrand.denizencore.scripts.ScriptEntryData; import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; import net.aufdemrand.denizencore.utilities.CoreUtilities; @@ -98,6 +100,12 @@ public boolean applyDetermination(ScriptContainer container, String determinatio return super.applyDetermination(container, determination); } + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(entity.isPlayer() ? entity.getDenizenPlayer() : null, + entity.isCitizensNPC() ? entity.getDenizenNPC() : null); + } + @Override public HashMap getContext() { HashMap context = super.getContext();