From d771ccce3e1982cde205255b983880f2100e238a Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Tue, 26 Nov 2019 11:24:59 -0800 Subject: [PATCH] modernize opens/closes inventory events --- .../player/PlayerClosesInvScriptEvent.java | 25 +++++-------------- .../player/PlayerOpensInvScriptEvent.java | 12 +-------- .../denizen/objects/EntityTag.java | 4 +-- 3 files changed, 9 insertions(+), 32 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClosesInvScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClosesInvScriptEvent.java index 01f1791398..315f0bb772 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClosesInvScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClosesInvScriptEvent.java @@ -2,12 +2,12 @@ import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizen.objects.InventoryTag; -import com.denizenscript.denizen.objects.notable.NotableManager; +import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; import com.denizenscript.denizen.events.BukkitScriptEvent; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.scripts.ScriptEntryData; -import com.denizenscript.denizencore.utilities.CoreUtilities; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryCloseEvent; @@ -38,7 +38,7 @@ public PlayerClosesInvScriptEvent() { public static PlayerClosesInvScriptEvent instance; public InventoryTag inventory; - private EntityTag entity; + private PlayerTag player; public InventoryCloseEvent event; @Override @@ -48,19 +48,7 @@ public boolean couldMatch(ScriptPath path) { @Override public boolean matches(ScriptPath path) { - String entName = path.eventArgLowerAt(0); - if (entName.equals("player") && !entity.isPlayer()) { - return false; - } - String inv = path.eventArgLowerAt(2); - String nname = NotableManager.isSaved(inventory) ? - CoreUtilities.toLowerCase(NotableManager.getSavedId(inventory)) : - "\0"; - if (!inv.equals("inventory") - && !inv.equals(CoreUtilities.toLowerCase(inventory.getInventoryType().name())) - && !inv.equals(CoreUtilities.toLowerCase(inventory.getIdHolder())) - && !(inv.equals("notable") && !nname.equals("\0")) - && !inv.equals(nname)) { + if (!tryInventory(inventory, path.eventArgLowerAt(2))) { return false; } return super.matches(path); @@ -73,8 +61,7 @@ public String getName() { @Override public ScriptEntryData getScriptEntryData() { - // TODO: Store the player? - return new BukkitScriptEntryData(entity.isPlayer() ? entity.getDenizenPlayer() : null, null); + return new BukkitScriptEntryData(player, null); } @Override @@ -91,7 +78,7 @@ public void onPlayerClosesInv(InventoryCloseEvent event) { return; } inventory = InventoryTag.mirrorBukkitInventory(event.getInventory()); - entity = new EntityTag(event.getPlayer()); + player = new PlayerTag((Player) event.getPlayer()); this.event = event; fire(event); } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerOpensInvScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerOpensInvScriptEvent.java index 2475eeb391..2c238a647c 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerOpensInvScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerOpensInvScriptEvent.java @@ -2,12 +2,10 @@ import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizen.objects.InventoryTag; -import com.denizenscript.denizen.objects.notable.NotableManager; import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; import com.denizenscript.denizen.events.BukkitScriptEvent; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.scripts.ScriptEntryData; -import com.denizenscript.denizencore.utilities.CoreUtilities; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryOpenEvent; @@ -47,15 +45,7 @@ public boolean couldMatch(ScriptPath path) { @Override public boolean matches(ScriptPath path) { - String inv = path.eventArgLowerAt(2); - String nname = NotableManager.isSaved(inventory) ? - CoreUtilities.toLowerCase(NotableManager.getSavedId(inventory)) : - "\0"; - if (!inv.equals("inventory") - && !inv.equals(CoreUtilities.toLowerCase(inventory.getInventoryType().name())) - && !inv.equals(CoreUtilities.toLowerCase(inventory.getIdHolder())) - && !(inv.equals("notable") && !nname.equals("\0")) - && !inv.equals(nname)) { + if (!tryInventory(inventory, path.eventArgLowerAt(2))) { return false; } return super.matches(path); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java index 047c536063..7c01dea1c5 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java @@ -2303,8 +2303,8 @@ else if (mtr.angle == BlockFace.EAST) { // @attribute ]> // @returns LocationTag // @description - // Returns the entity this entity is looking at, using precise ray trace logic. - // Optionally, specify a maximum range to find the entity from (defaults to 200). + // Returns the location this entity is looking at, using precise ray trace (against entities) logic. + // Optionally, specify a maximum range to find the target from (defaults to 200). // --> registerTag("precise_target_position", (attribute, object) -> { int range = attribute.getIntContext(1);