unique fulljoinandbypassserver

This commit is contained in:
ajgeiss0702
2021-10-30 17:18:53 -07:00
parent d61c66cea5
commit 947ee78062
4 changed files with 19 additions and 2 deletions
@@ -13,4 +13,6 @@ public interface PermissionGetter {
int getServerPriotity(String server, AdaptedPlayer player); int getServerPriotity(String server, AdaptedPlayer player);
boolean hasContextBypass(AdaptedPlayer player, String server); boolean hasContextBypass(AdaptedPlayer player, String server);
boolean hasUniqueFullBypass(AdaptedPlayer player, String server);
} }
@@ -451,7 +451,9 @@ public class QueueServerImpl implements QueueServer {
player.hasPermission("ajqueue.joinfull") || player.hasPermission("ajqueue.joinfull") ||
player.hasPermission("ajqueue.joinfullserver."+name) || player.hasPermission("ajqueue.joinfullserver."+name) ||
player.hasPermission("ajqueue.joinfullandbypassserver."+name) || player.hasPermission("ajqueue.joinfullandbypassserver."+name) ||
player.hasPermission("ajqueue.joinfullandbypass"); player.hasPermission("ajqueue.joinfullandbypass") ||
(main.isPremium() && main.getLogic().getPermissionGetter().hasUniqueFullBypass(player, name))
;
} }
@Override @Override
@@ -41,7 +41,8 @@ public class PremiumLogic implements Logic {
player.hasPermission("ajqueue.serverbypass."+server.getName()) || player.hasPermission("ajqueue.serverbypass."+server.getName()) ||
player.hasPermission("ajqueue.joinfullandbypassserver."+server.getName()) || player.hasPermission("ajqueue.joinfullandbypassserver."+server.getName()) ||
player.hasPermission("ajqueue.joinfullandbypass") || player.hasPermission("ajqueue.joinfullandbypass") ||
permissionGetter.hasContextBypass(player, server.getName()) permissionGetter.hasContextBypass(player, server.getName()) ||
(main.isPremium() && main.getLogic().getPermissionGetter().hasUniqueFullBypass(player, server.getName()))
) { ) {
if(debug) { if(debug) {
logger.info("[priority] "+player.getName()+" bypass"); logger.info("[priority] "+player.getName()+" bypass");
@@ -69,6 +69,18 @@ public class PermissionGetterImpl implements PermissionGetter {
return perms.contains("ajqueue.serverbypass."+server); return perms.contains("ajqueue.serverbypass."+server);
} }
@Override
public boolean hasUniqueFullBypass(AdaptedPlayer player, String server) {
if(player.hasPermission("ajqueue.joinfullandbypassserver."+server)) return true;
if(getSelected() == null) {
return false;
}
List<String> perms = getSelected().getPermissions(player);
perms.removeIf(s -> !s.startsWith("ajqueue.joinfullandbypassserver."+server));
return perms.size() > 0;
}
private int getHighestPermission(AdaptedPlayer player, String prefix) { private int getHighestPermission(AdaptedPlayer player, String prefix) {
if(getSelected() == null) { if(getSelected() == null) {
return -1; return -1;