diff --git a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java index 93b260ff55..ad734f8d31 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java +++ b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java @@ -590,5 +590,4 @@ public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) { } return null; } - } 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 a84d5f0df4..bf08325967 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 @@ -67,15 +67,12 @@ public boolean couldMatch(ScriptPath path) { @Override public boolean matches(ScriptPath path) { String target = path.eventArgLowerAt(0); - if (!tryEntity(entity, target)) { return false; } - if (!runInCheck(path, entity.getLocation())) { return false; } - return super.matches(path); } diff --git a/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java b/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java index eac3184132..3dec307db4 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java +++ b/plugin/src/main/java/com/denizenscript/denizen/nms/NMSHandler.java @@ -178,6 +178,8 @@ public boolean isCorrectMappingsCode() { public abstract String stringForHover(HoverEvent hover); + public abstract ArrayList containerListFlags(PersistentDataContainer container, String prefix); + public abstract boolean containerHas(PersistentDataContainer container, NamespacedKey key); public abstract String containerGetString(PersistentDataContainer container, NamespacedKey key); 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 69bb74a03a..4102a06170 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java @@ -1447,7 +1447,7 @@ else if (mtr.angle == BlockFace.EAST) { // Optionally, specify a maximum range to find the location from (defaults to 200). // This uses logic equivalent to <@link tag LocationTag.precise_cursor_on_block[(range)]>. // Note that this will return null if there is no block in range. - // This uses all blocks, ie it includes passable blocks like tall-grass and water. Use <@link tag EntityTag.cursor_on> to include passable blocks. + // This uses all blocks, ie it includes passable blocks like tall-grass and water. Use <@link tag EntityTag.cursor_on_solid> to include passable blocks. // --> registerSpawnedOnlyTag("cursor_on", (attribute, object) -> { double range = attribute.getDoubleContext(1); diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/TakeCommand.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/TakeCommand.java index 1e0880fa40..d50e2cf421 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/TakeCommand.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/TakeCommand.java @@ -74,7 +74,7 @@ public TakeCommand() { // // If an economy is registered, using 'money' instead of an item will take money from the player's economy balance. // - // Flagged, Slot, Bydisplay all take a list as input to take multiple different item types at once. + // Flagged, Slot, ByDisplay, and Raw_Exact, all take a list as input to take multiple different item types at once. // // If no quantity is specified, exactly 1 item will be taken. // diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/flags/DataPersistenceFlagTracker.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/flags/DataPersistenceFlagTracker.java index ce2e3cbc0f..4aeb6b9590 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/flags/DataPersistenceFlagTracker.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/flags/DataPersistenceFlagTracker.java @@ -1,6 +1,7 @@ package com.denizenscript.denizen.utilities.flags; import com.denizenscript.denizen.Denizen; +import com.denizenscript.denizen.nms.NMSHandler; import com.denizenscript.denizen.utilities.DataPersistenceHelper; import com.denizenscript.denizencore.flags.MapTagBasedFlagTracker; import com.denizenscript.denizencore.objects.ObjectTag; @@ -11,7 +12,6 @@ import org.bukkit.persistence.PersistentDataType; import java.util.Collection; -import java.util.stream.Collectors; public class DataPersistenceFlagTracker extends MapTagBasedFlagTracker { @@ -47,9 +47,7 @@ public void setRootMap(String key, MapTag map) { @Override public Collection listAllFlags() { - return holder.getPersistentDataContainer().getKeys().stream() - .filter(k -> k.getNamespace().equals("denizen") && k.getKey().startsWith(keyPrefix)) - .map(k -> k.getKey().substring(keyPrefix.length())).collect(Collectors.toList()); + return NMSHandler.getInstance().containerListFlags(holder.getPersistentDataContainer(), keyPrefix); } public static NamespacedKey expireNeededKey = new NamespacedKey(Denizen.getInstance(), "expire_flag_check_needed"); diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java index 43c34ae885..99d3c00373 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/implementation/DenizenCoreImplementation.java @@ -563,7 +563,6 @@ else if (def.equals("__npc")) { return null; } - @Override public boolean setSpecialDef(String def, ScriptQueue queue, ObjectTag value) { if (def.equals("__player")) { diff --git a/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/Handler.java b/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/Handler.java index bd593aac7f..80ce3f7cf7 100644 --- a/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/Handler.java +++ b/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/Handler.java @@ -41,6 +41,7 @@ import java.lang.reflect.Field; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Map; public class Handler extends NMSHandler { @@ -225,6 +226,18 @@ public String stringForHover(HoverEvent hover) { return FormattedTextHelper.stringify(hover.getValue(), ChatColor.WHITE); } + @Override + public ArrayList containerListFlags(PersistentDataContainer container, String prefix) { + prefix = "denizen:" + prefix; + ArrayList output = new ArrayList<>(); + for (String key : ((CraftPersistentDataContainer) container).getRaw().keySet()) { + if (key.startsWith(prefix)) { + output.add(key.substring(prefix.length())); + } + } + return output; + } + @Override public boolean containerHas(PersistentDataContainer container, NamespacedKey key) { return ((CraftPersistentDataContainer) container).getRaw().containsKey(key.toString()); diff --git a/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/Handler.java b/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/Handler.java index 5e9e688e72..afdacb2f63 100644 --- a/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/Handler.java +++ b/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/Handler.java @@ -41,6 +41,7 @@ import java.lang.reflect.Field; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Map; public class Handler extends NMSHandler { @@ -225,6 +226,18 @@ public String stringForHover(HoverEvent hover) { return FormattedTextHelper.stringify(hover.getValue(), ChatColor.WHITE); } + @Override + public ArrayList containerListFlags(PersistentDataContainer container, String prefix) { + prefix = "denizen:" + prefix; + ArrayList output = new ArrayList<>(); + for (String key : ((CraftPersistentDataContainer) container).getRaw().keySet()) { + if (key.startsWith(prefix)) { + output.add(key.substring(prefix.length())); + } + } + return output; + } + @Override public boolean containerHas(PersistentDataContainer container, NamespacedKey key) { return ((CraftPersistentDataContainer) container).getRaw().containsKey(key.toString()); diff --git a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/Handler.java b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/Handler.java index 93c7775e20..71eb50811e 100644 --- a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/Handler.java +++ b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/Handler.java @@ -48,6 +48,7 @@ import java.lang.reflect.Field; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Map; public class Handler extends NMSHandler { @@ -258,6 +259,18 @@ else if (contentObject instanceof net.md_5.bungee.api.chat.hover.content.Entity) } } + @Override + public ArrayList containerListFlags(PersistentDataContainer container, String prefix) { + prefix = "denizen:" + prefix; + ArrayList output = new ArrayList<>(); + for (String key : ((CraftPersistentDataContainer) container).getRaw().keySet()) { + if (key.startsWith(prefix)) { + output.add(key.substring(prefix.length())); + } + } + return output; + } + @Override public boolean containerHas(PersistentDataContainer container, NamespacedKey key) { return ((CraftPersistentDataContainer) container).getRaw().containsKey(key.toString());