Added plus-level-fallback to allow some leveled permissions on ajQueuePlus to work without a supported permission plugin

This commit is contained in:
ajgeiss0702
2023-06-29 12:36:53 -05:00
parent 4a0869c166
commit 242b4a240f
2 changed files with 44 additions and 4 deletions
@@ -5,6 +5,8 @@ import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.api.premium.PermissionHook;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class BuiltInHook implements PermissionHook {
@@ -26,9 +28,41 @@ public class BuiltInHook implements PermissionHook {
@Override
public List<String> getPermissions(AdaptedPlayer player) {
if(main.getPlatformMethods().getImplementationName().equals("velocity")) {
return new ArrayList<>();
if(main.getConfig().getBoolean("plus-level-fallback")) {
List<String> hasPermissions = new ArrayList<>();
for (String fallbackPermission : fallbackPermissions) {
if(player.hasPermission(fallbackPermission)) {
hasPermissions.add(fallbackPermission);
}
}
if(!main.getPlatformMethods().getImplementationName().equals("velocity")) {
hasPermissions.addAll(player.getPermissions());
}
return hasPermissions;
}
if(main.getPlatformMethods().getImplementationName().equals("velocity")) {
return Collections.emptyList();
}
return player.getPermissions();
}
private final List<String> fallbackPermissions = Arrays.asList(
"ajqueue.priority.1",
"ajqueue.priority.2",
"ajqueue.priority.3",
"ajqueue.priority.4",
"ajqueue.priority.5",
"ajqueue.priority.6",
"ajqueue.priority.7",
"ajqueue.priority.8",
"ajqueue.priority.9",
"ajqueue.priority.10",
"ajqueue.stayqueued.15",
"ajqueue.stayqueued.30",
"ajqueue.stayqueued.60",
"ajqueue.stayqueued.120"
);
}