From c1a75f320bf0eea937577bfa22c5088e8e208fcf Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 4 Aug 2021 20:14:52 +0100 Subject: [PATCH] Added provider API --- .../com/willfp/talismans/TalismansPlugin.java | 14 ----------- .../talismans/util/TalismanChecks.java | 25 ++++++++++++++----- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java index ea26f21..4c66103 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java @@ -28,12 +28,6 @@ public class TalismansPlugin extends EcoPlugin { @Getter private static TalismansPlugin instance; - /** - * If bag from TalismansGUI plugin is used or not. - */ - @Getter - private static boolean bagLoaded; - /** * Internal constructor called by bukkit on plugin load. */ @@ -44,14 +38,6 @@ public class TalismansPlugin extends EcoPlugin { @Override protected void handleEnable() { - - if (this.getServer().getPluginManager().getPlugin("TalismansGUI") != null){ - bagLoaded = this.getServer().getPluginManager().getPlugin("TalismansGUI").getDescription().getVersion().compareTo("1.3") >= 0; - } - else { - bagLoaded = false; - } - this.getLogger().info(Talismans.values().size() + " Talismans Loaded"); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanChecks.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanChecks.java index d41b6f9..f178899 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanChecks.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanChecks.java @@ -7,8 +7,6 @@ import com.willfp.talismans.talismans.Talisman; import com.willfp.talismans.talismans.TalismanLevel; import com.willfp.talismans.talismans.Talismans; import lombok.experimental.UtilityClass; -import me.often.talismansgui.Utils.BagUtils; -import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; import org.bukkit.block.BlockState; import org.bukkit.block.ShulkerBox; @@ -30,6 +28,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.function.Function; @UtilityClass public class TalismanChecks { @@ -38,6 +37,11 @@ public class TalismanChecks { */ public static final Map> CACHED_TALISMANS = Collections.synchronizedMap(new HashMap<>()); + /** + * All providers. + */ + private static final Set>> PROVIDERS = new HashSet<>(); + /** * If ender chests should be checked. */ @@ -172,6 +176,10 @@ public class TalismanChecks { rawContents.addAll(Arrays.asList(extra)); + for (Function> provider : PROVIDERS) { + rawContents.addAll(provider.apply(player)); + } + for (ItemStack rawContent : rawContents) { if (rawContent == null) { continue; @@ -226,10 +234,6 @@ public class TalismanChecks { } } - if (TalismansPlugin.isBagLoaded()){ - found.addAll(BagUtils.getBag(player)); - } - if (useCache) { CACHED_TALISMANS.put(player.getUniqueId(), found); PLUGIN.getScheduler().runLater(() -> CACHED_TALISMANS.remove(player.getUniqueId()), 40); @@ -238,6 +242,15 @@ public class TalismanChecks { return found; } + /** + * Register ItemStack provider (inventory extension, eg talisman bag). + * + * @param provider The provider. + */ + public static void regsiterItemStackProvider(@NotNull final Function> provider) { + PROVIDERS.add(provider); + } + /** * Get if a player has a specific talisman active. *