diff --git a/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java b/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java index d774baa5..5930da88 100644 --- a/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java @@ -215,6 +215,7 @@ public class RequirementManagerImpl implements RequirementManager { this.registerSizeRequirement(); this.registerHasStatsRequirement(); this.registerLootTypeRequirement(); + this.registerInListRequirement(); } public HashMap getLootWithWeight(Condition condition) { @@ -937,6 +938,39 @@ public class RequirementManagerImpl implements RequirementManager { }); } + private void registerInListRequirement() { + registerRequirement("in-list", (args, actions, advanced) -> { + if (args instanceof ConfigurationSection section) { + String papi = section.getString("papi", ""); + List values = ConfigUtils.stringListArgs(section.get("values")); + return condition -> { + String p1 = papi.startsWith("%") ? ParseUtils.setPlaceholders(condition.getPlayer(), papi) : papi; + if (values.contains(p1)) return true; + if (advanced) triggerActions(actions, condition); + return false; + }; + } else { + LogUtils.warn("Wrong value format found at in-list requirement."); + return EmptyRequirement.instance; + } + }); + registerRequirement("!in-list", (args, actions, advanced) -> { + if (args instanceof ConfigurationSection section) { + String papi = section.getString("papi", ""); + List values = ConfigUtils.stringListArgs(section.get("values")); + return condition -> { + String p1 = papi.startsWith("%") ? ParseUtils.setPlaceholders(condition.getPlayer(), papi) : papi; + if (!values.contains(p1)) return true; + if (advanced) triggerActions(actions, condition); + return false; + }; + } else { + LogUtils.warn("Wrong value format found at in-list requirement."); + return EmptyRequirement.instance; + } + }); + } + private void registerEqualsRequirement() { registerRequirement("equals", (args, actions, advanced) -> { if (args instanceof ConfigurationSection section) {