From 5561e0fdf389ca7ce1f79cf83d763ac762eb7624 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Tue, 12 Jan 2021 15:48:43 +0000 Subject: [PATCH] Added talisman read limit permission. --- .../talismans/util/TalismanChecks.java | 4 ++++ .../talismans/util/TalismanUtils.java | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) 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 beac473..c7621f2 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 @@ -172,6 +172,10 @@ public class TalismanChecks { continue; } + if (found.size() >= TalismanUtils.getLimit(player)) { + break; + } + found.add(talisman); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java index efdd581..7ed7cdb 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanUtils.java @@ -8,6 +8,8 @@ import com.willfp.eco.util.integrations.placeholder.PlaceholderManager; import com.willfp.talismans.talismans.Talisman; import com.willfp.talismans.talismans.Talismans; import lombok.experimental.UtilityClass; +import org.bukkit.entity.Player; +import org.bukkit.permissions.PermissionAttachmentInfo; import org.jetbrains.annotations.NotNull; @UtilityClass @@ -71,4 +73,22 @@ public class TalismanUtils { ); } } + + /** + * Get limit for talisman reading. + * + * @param player The player to check. + * @return The limit. + */ + public static int getLimit(@NotNull final Player player) { + String prefix = "talismans.limit."; + for (PermissionAttachmentInfo permissionAttachmentInfo : player.getEffectivePermissions()) { + String permission = permissionAttachmentInfo.getPermission(); + if (permission.startsWith(prefix)) { + return Integer.parseInt(permission.substring(permission.lastIndexOf(".") + 1)); + } + } + + return 100000; + } }