diff --git a/gradle.properties b/gradle.properties index 1140cd8..a1347f9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,7 +23,6 @@ cloud_bukkit_version=2.0.0-beta.10 cloud_paper_version=2.0.0-beta.10 cloud_minecraft_extras_version=2.0.0-beta.10 boosted_yaml_version=1.3.7 -byte_buddy_version=1.15.3 mojang_brigadier_version=1.0.18 bstats_version=3.0.2 geantyref_version=1.3.16 diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/requirement/PlayerRequirementManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/requirement/PlayerRequirementManager.java index fd88cfc..1895256 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/requirement/PlayerRequirementManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/requirement/PlayerRequirementManager.java @@ -64,6 +64,7 @@ public class PlayerRequirementManager extends AbstractRequirementManager private void registerItemInHandRequirement() { registerRequirement((args, actions, runActions) -> { if (args instanceof Section section) { + boolean regex = section.getBoolean("regex", false); String hand = section.getString("hand","main"); int mode; if (hand.equalsIgnoreCase("main")) { @@ -94,7 +95,15 @@ public class PlayerRequirementManager extends AbstractRequirementManager } } String id = plugin.getItemManager().id(itemStack); - if (items.contains(id) && itemStack.getAmount() >= amount) return true; + if (!regex) { + if (items.contains(id) && itemStack.getAmount() >= amount) return true; + } else { + for (String itemRegex : items) { + if (id.matches(itemRegex) && itemStack.getAmount() >= amount) { + return true; + } + } + } if (runActions) ActionManager.trigger(context, actions); return false; }; @@ -105,6 +114,7 @@ public class PlayerRequirementManager extends AbstractRequirementManager }, "item-in-hand"); registerRequirement((args, actions, runActions) -> { if (args instanceof Section section) { + boolean regex = section.getBoolean("regex", false); String hand = section.getString("hand","main"); int mode; if (hand.equalsIgnoreCase("main")) { @@ -135,7 +145,15 @@ public class PlayerRequirementManager extends AbstractRequirementManager } } String id = itemStack.getType().name(); - if (items.contains(id) && itemStack.getAmount() >= amount) return true; + if (!regex) { + if (items.contains(id) && itemStack.getAmount() >= amount) return true; + } else { + for (String itemRegex : items) { + if (id.matches(itemRegex) && itemStack.getAmount() >= amount) { + return true; + } + } + } if (runActions) ActionManager.trigger(context, actions); return false; };