feat: add claimblock cap

This commit is contained in:
Jarva 2022-11-24 14:20:11 +00:00
parent a85b307edc
commit 056a28bbf9
4 changed files with 25 additions and 1 deletions

View File

@ -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);
}

View File

@ -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) {

View File

@ -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;
}
}

View File

@ -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;
}
}