51 lines
1.8 KiB
Java
51 lines
1.8 KiB
Java
package io.github.flemmli97.flan.fabric.platform.integration.permissions;
|
|
|
|
import io.github.flemmli97.flan.Flan;
|
|
import io.github.flemmli97.flan.config.ConfigHandler;
|
|
import io.github.flemmli97.flan.platform.integration.permissions.PermissionNodeHandler;
|
|
import me.lucko.fabric.api.permissions.v0.Options;
|
|
import me.lucko.fabric.api.permissions.v0.Permissions;
|
|
import net.minecraft.commands.CommandSourceStack;
|
|
import net.minecraft.server.level.ServerPlayer;
|
|
|
|
public class PermissionNodeHandlerImpl implements PermissionNodeHandler {
|
|
|
|
@Override
|
|
public boolean perm(CommandSourceStack src, String perm, boolean adminCmd) {
|
|
if (Flan.permissionAPI) {
|
|
if (adminCmd)
|
|
return Permissions.check(src, perm, ConfigHandler.config.permissionLevel);
|
|
return Permissions.check(src, perm, true);
|
|
}
|
|
return !adminCmd || src.hasPermission(ConfigHandler.config.permissionLevel);
|
|
}
|
|
|
|
@Override
|
|
public boolean perm(ServerPlayer src, String perm, boolean adminCmd) {
|
|
if (Flan.permissionAPI) {
|
|
if (adminCmd)
|
|
return Permissions.check(src, perm, ConfigHandler.config.permissionLevel);
|
|
return Permissions.check(src, perm, true);
|
|
}
|
|
return !adminCmd || src.hasPermissions(ConfigHandler.config.permissionLevel);
|
|
}
|
|
|
|
|
|
@Override
|
|
public boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback) {
|
|
if (Flan.permissionAPI) {
|
|
int max = Options.get(src, perm, fallback, Integer::parseInt);
|
|
return val <= max;
|
|
}
|
|
return val <= fallback;
|
|
}
|
|
|
|
@Override
|
|
public int permVal(ServerPlayer src, String perm, int fallback) {
|
|
if (Flan.permissionAPI) {
|
|
return Options.get(src, perm, fallback, Integer::parseInt);
|
|
}
|
|
return fallback;
|
|
}
|
|
}
|