From 0847df9909e884cda0d80acfd7015a0c57758c8f Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Wed, 3 Jan 2024 06:17:54 +0800 Subject: [PATCH] 2.0.10 --- .../momirealms/customfishing/api/manager/BagManager.java | 3 +++ .../customfishing/mechanic/bag/BagManagerImpl.java | 8 ++++++++ .../customfishing/mechanic/item/ItemManagerImpl.java | 2 +- plugin/src/main/resources/config.yml | 8 ++++++-- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/net/momirealms/customfishing/api/manager/BagManager.java b/api/src/main/java/net/momirealms/customfishing/api/manager/BagManager.java index 9665352e..94626673 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/manager/BagManager.java +++ b/api/src/main/java/net/momirealms/customfishing/api/manager/BagManager.java @@ -19,6 +19,7 @@ package net.momirealms.customfishing.api.manager; import net.momirealms.customfishing.api.data.user.OfflineUser; import net.momirealms.customfishing.api.mechanic.action.Action; +import net.momirealms.customfishing.api.mechanic.requirement.Requirement; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -57,4 +58,6 @@ public interface BagManager { String getBagTitle(); List getBagWhiteListItems(); + + Requirement[] getCollectRequirements(); } diff --git a/plugin/src/main/java/net/momirealms/customfishing/mechanic/bag/BagManagerImpl.java b/plugin/src/main/java/net/momirealms/customfishing/mechanic/bag/BagManagerImpl.java index b20ffe46..cd2eafa0 100644 --- a/plugin/src/main/java/net/momirealms/customfishing/mechanic/bag/BagManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customfishing/mechanic/bag/BagManagerImpl.java @@ -25,6 +25,7 @@ import net.momirealms.customfishing.api.manager.BagManager; import net.momirealms.customfishing.api.manager.EffectManager; import net.momirealms.customfishing.api.mechanic.action.Action; import net.momirealms.customfishing.api.mechanic.bag.FishingBagHolder; +import net.momirealms.customfishing.api.mechanic.requirement.Requirement; import net.momirealms.customfishing.api.util.InventoryUtils; import net.momirealms.customfishing.compatibility.papi.PlaceholderManagerImpl; import net.momirealms.customfishing.setting.CFConfig; @@ -54,6 +55,7 @@ public class BagManagerImpl implements BagManager, Listener { private boolean bagStoreLoots; private String bagTitle; private List bagWhiteListItems; + private Requirement[] collectRequirements; public BagManagerImpl(CustomFishingPluginImpl plugin) { this.plugin = plugin; @@ -77,6 +79,7 @@ public class BagManagerImpl implements BagManager, Listener { if (bagStoreLoots) { collectLootActions = plugin.getActionManager().getActions(bagSection.getConfigurationSection("collect-actions")); bagFullActions = plugin.getActionManager().getActions(bagSection.getConfigurationSection("full-actions")); + collectRequirements = plugin.getRequirementManager().getRequirements(bagSection.getConfigurationSection("collect-requirements"), false); } } } @@ -240,4 +243,9 @@ public class BagManagerImpl implements BagManager, Listener { public List getBagWhiteListItems() { return bagWhiteListItems; } + + @Override + public Requirement[] getCollectRequirements() { + return collectRequirements; + } } diff --git a/plugin/src/main/java/net/momirealms/customfishing/mechanic/item/ItemManagerImpl.java b/plugin/src/main/java/net/momirealms/customfishing/mechanic/item/ItemManagerImpl.java index bd54710b..9b170fbb 100644 --- a/plugin/src/main/java/net/momirealms/customfishing/mechanic/item/ItemManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customfishing/mechanic/item/ItemManagerImpl.java @@ -432,7 +432,7 @@ public class ItemManagerImpl implements ItemManager, Listener { return; } - if (CFConfig.enableFishingBag && plugin.getBagManager().doesBagStoreLoots() && player.hasPermission("fishingbag.collectloot")) { + if (CFConfig.enableFishingBag && plugin.getBagManager().doesBagStoreLoots() && RequirementManager.isRequirementMet(condition, plugin.getBagManager().getCollectRequirements())) { var bag = plugin.getBagManager().getOnlineBagInventory(player.getUniqueId()); int cannotPut = ItemUtils.putLootsToBag(bag, item, item.getAmount()); // some are put into bag diff --git a/plugin/src/main/resources/config.yml b/plugin/src/main/resources/config.yml index d285da65..cd4166c9 100644 --- a/plugin/src/main/resources/config.yml +++ b/plugin/src/main/resources/config.yml @@ -154,11 +154,15 @@ mechanics: enable: true # Fishing bag container title bag-title: '{player}''s Fishing Bag' - # Can fishing bag store fishing loots? - can-store-loot: false # Other whitelist-items whitelist-items: - fishing_rod + + # Can fishing bag store fishing loots? + can-store-loot: false + # Requirements for automatically collecting + collect-requirements: + permission: fishingbag.collectloot # Actions to do if fishing loots are automatically collected into bag collect-actions: sound_action: