9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-19 15:09:25 +00:00

Added regex support

This commit is contained in:
XiaoMoMi
2024-10-12 19:33:41 +08:00
parent 98f4ec033c
commit cdf62d2262
2 changed files with 20 additions and 3 deletions

View File

@@ -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

View File

@@ -64,6 +64,7 @@ public class PlayerRequirementManager extends AbstractRequirementManager<Player>
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<Player>
}
}
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<Player>
}, "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<Player>
}
}
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;
};