From d33aa6540112b9c7d67c08eb23550cb71f328509 Mon Sep 17 00:00:00 2001 From: "Alex \"mcmonkey\" Goodwin" Date: Tue, 30 Aug 2022 03:51:45 -0700 Subject: [PATCH] cleanups and a few registered property mechs --- .../properties/entity/EntityFlags.java | 3 ++- .../objects/properties/trade/TradeInputs.java | 22 +++++-------------- .../objects/properties/trade/TradeResult.java | 14 +++--------- .../denizen/tags/core/TextTagBase.java | 4 ++-- .../DenizenCoreImplementation.java | 2 +- 5 files changed, 13 insertions(+), 32 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityFlags.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityFlags.java index 8c8eae1350..87a3d36a75 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityFlags.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityFlags.java @@ -52,7 +52,7 @@ public String getPropertyString() { } MapTag flags = new MapTag(); for (String name : flagNames) { - flags.putObject(name, ((DataPersistenceFlagTracker) tracker).getRootMap(name)); + flags.putObject(name, tracker.getRootMap(name)); } return flags.toString(); } @@ -76,6 +76,7 @@ public void adjust(Mechanism mechanism) { // @input MapTag // @description // Internal setter for the EntityTag flag map. + // Do not use this in scripts. // --> if (mechanism.matches("flag_map") && mechanism.requireObject(MapTag.class)) { MapTagFlagTracker flags = new MapTagFlagTracker(mechanism.valueAsType(MapTag.class)); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeInputs.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeInputs.java index d610678712..4c970f66ef 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeInputs.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeInputs.java @@ -2,7 +2,6 @@ import com.denizenscript.denizen.objects.ItemTag; import com.denizenscript.denizen.objects.TradeTag; -import com.denizenscript.denizencore.objects.Mechanism; import com.denizenscript.denizencore.objects.core.ListTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.objects.properties.Property; @@ -25,10 +24,6 @@ public static TradeInputs getFrom(ObjectTag recipe) { return new TradeInputs((TradeTag) recipe); } - public static final String[] handledMechs = new String[] { - "inputs" - }; - private TradeTag recipe; public TradeInputs(TradeTag recipe) { @@ -66,9 +61,6 @@ public static void registerTags() { PropertyParser.registerTag(TradeInputs.class, ListTag.class, "inputs", (attribute, recipe) -> { return recipe.getIngredientsList(); }); - } - - public void adjust(Mechanism mechanism) { // <--[mechanism] // @object TradeTag @@ -80,25 +72,21 @@ public void adjust(Mechanism mechanism) { // @tags // // --> - if (mechanism.matches("inputs")) { + PropertyParser.registerMechanism(TradeInputs.class, ListTag.class, "inputs", (prop, mechanism, inList) -> { List ingredients = new ArrayList<>(); - List list = mechanism.valueAsType(ListTag.class).filter(ItemTag.class, mechanism.context); - + List list = inList.filter(ItemTag.class, mechanism.context); if (!mechanism.hasValue() || list.isEmpty()) { - recipe.getRecipe().setIngredients(ingredients); + prop.recipe.getRecipe().setIngredients(ingredients); return; } - for (ItemTag item : list) { ingredients.add(item.getItemStack()); } - if (ingredients.size() > 2) { mechanism.echoError("Trade recipe input was given " + list.size() + " items. Only using the first two items!"); ingredients = ingredients.subList(0, 2); } - - recipe.getRecipe().setIngredients(ingredients); - } + prop.recipe.getRecipe().setIngredients(ingredients); + }); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeResult.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeResult.java index d85cbd1311..6357657146 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeResult.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/trade/TradeResult.java @@ -2,7 +2,6 @@ import com.denizenscript.denizen.objects.ItemTag; import com.denizenscript.denizen.objects.TradeTag; -import com.denizenscript.denizencore.objects.Mechanism; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.objects.properties.Property; import com.denizenscript.denizencore.objects.properties.PropertyParser; @@ -20,10 +19,6 @@ public static TradeResult getFrom(ObjectTag recipe) { return new TradeResult((TradeTag) recipe); } - public static final String[] handledMechs = new String[] { - "result" - }; - private TradeTag recipe; public TradeResult(TradeTag recipe) { @@ -53,9 +48,6 @@ public static void registerTags() { PropertyParser.registerTag(TradeResult.class, ItemTag.class, "result", (attribute, recipe) -> { return new ItemTag(recipe.recipe.getRecipe().getResult()); }); - } - - public void adjust(Mechanism mechanism) { // <--[mechanism] // @object TradeTag @@ -66,8 +58,8 @@ public void adjust(Mechanism mechanism) { // @tags // // --> - if (mechanism.matches("result") && mechanism.requireObject(ItemTag.class)) { - recipe.setRecipe(TradeTag.duplicateRecipe(mechanism.valueAsType(ItemTag.class).getItemStack(), recipe.getRecipe())); - } + PropertyParser.registerMechanism(TradeResult.class, ItemTag.class, "result", (prop, mechanism, item) -> { + prop.recipe.setRecipe(TradeTag.duplicateRecipe(item.getItemStack(), prop.recipe.getRecipe())); + }); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/tags/core/TextTagBase.java b/plugin/src/main/java/com/denizenscript/denizen/tags/core/TextTagBase.java index 6a7e02c574..c0453cfc82 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/tags/core/TextTagBase.java +++ b/plugin/src/main/java/com/denizenscript/denizen/tags/core/TextTagBase.java @@ -1,7 +1,7 @@ package com.denizenscript.denizen.tags.core; import com.denizenscript.denizen.objects.ColorTag; -import com.denizenscript.denizen.objects.properties.bukkit.BukkitElementProperties; +import com.denizenscript.denizen.objects.properties.bukkit.BukkitElementExtensions; import com.denizenscript.denizen.utilities.FormattedTextHelper; import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.core.ListTag; @@ -516,7 +516,7 @@ else if (colorName.startsWith("co@") || colorName.lastIndexOf(',') > colorName.i if (fromColor == null || toColor == null) { return null; } - if (!style.matchesEnum(BukkitElementProperties.GradientStyle.class)) { + if (!style.matchesEnum(BukkitElementExtensions.GradientStyle.class)) { attribute.echoError("Invalid gradient style '" + style + "'"); return null; } 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 2e173299cf..fe141932e5 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 @@ -410,7 +410,7 @@ public void addExtraErrorHeaders(StringBuilder headerBuilder, ScriptEntry source @Override public String applyDebugColors(String uncolored) { - if (uncolored.indexOf('<') == -1) { + if (!CoreUtilities.contains(uncolored, '<')) { return uncolored; } return uncolored