From 056a28bbf9147e2d157003812f126e2eea242023 Mon Sep 17 00:00:00 2001 From: Jarva <4622609+Jarva@users.noreply.github.com> Date: Thu, 24 Nov 2022 14:20:11 +0000 Subject: [PATCH] feat: add claimblock cap --- .../permissions/PermissionNodeHandler.java | 3 +++ .../flemmli97/flan/player/PlayerClaimData.java | 2 +- .../permissions/PermissionNodeHandlerImpl.java | 13 +++++++++++++ .../permissions/PermissionNodeHandlerImpl.java | 8 ++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/io/github/flemmli97/flan/platform/integration/permissions/PermissionNodeHandler.java b/common/src/main/java/io/github/flemmli97/flan/platform/integration/permissions/PermissionNodeHandler.java index 77abb60..086c564 100644 --- a/common/src/main/java/io/github/flemmli97/flan/platform/integration/permissions/PermissionNodeHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/platform/integration/permissions/PermissionNodeHandler.java @@ -46,6 +46,7 @@ public interface PermissionNodeHandler { String permClaimBlocks = "flan.claim.blocks.max"; String permMaxClaims = "flan.claims.amount"; + String permClaimBlocksCap = "flan.claim.blocks.cap"; PermissionNodeHandler INSTANCE = Flan.getPlatformInstance(PermissionNodeHandler.class, "io.github.flemmli97.flan.fabric.platform.integration.permissions.PermissionNodeHandlerImpl", @@ -60,4 +61,6 @@ public interface PermissionNodeHandler { boolean perm(ServerPlayer src, String perm, boolean adminCmd); boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback); + + int permVal(ServerPlayer src, String perm, int fallback); } \ No newline at end of file diff --git a/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java b/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java index defd4b5..a652aa4 100644 --- a/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java +++ b/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java @@ -88,7 +88,7 @@ public class PlayerClaimData implements IPlayerData { @Override public int getClaimBlocks() { - return this.claimBlocks; + return PermissionNodeHandler.INSTANCE.permVal(this.player, PermissionNodeHandler.permClaimBlocksCap, this.claimBlocks); } public void setClaimBlocks(int amount) { diff --git a/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/permissions/PermissionNodeHandlerImpl.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/permissions/PermissionNodeHandlerImpl.java index fe64b96..463c174 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/permissions/PermissionNodeHandlerImpl.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/permissions/PermissionNodeHandlerImpl.java @@ -37,6 +37,8 @@ public class PermissionNodeHandlerImpl implements PermissionNodeHandler { return !adminCmd || src.hasPermissions(ConfigHandler.config.permissionLevel); } + + @Override public boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback) { if (Flan.permissionAPI) { @@ -49,4 +51,15 @@ public class PermissionNodeHandlerImpl implements PermissionNodeHandler { } return val <= fallback; } + + @Override + public int permVal(ServerPlayer src, String perm, int fallback) { + if (Flan.permissionAPI) { + return Options.get(src, perm, fallback, Integer::parseInt); + } + if (Flan.ftbRanks) { + return FTBRanksAPI.getPermissionValue(src, perm).asInteger().orElse(fallback); + } + return fallback; + } } diff --git a/forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/permissions/PermissionNodeHandlerImpl.java b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/permissions/PermissionNodeHandlerImpl.java index 025b4d3..dfb94f8 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/permissions/PermissionNodeHandlerImpl.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/permissions/PermissionNodeHandlerImpl.java @@ -31,4 +31,12 @@ public class PermissionNodeHandlerImpl implements PermissionNodeHandler { } return val <= fallback; } + + @Override + public int permVal(ServerPlayer src, String perm, int fallback) { + if (Flan.ftbRanks) { + return FTBRanksAPI.getPermissionValue(src, perm).asInteger().orElse(fallback); + } + return fallback; + } }