whitelist progress

This commit is contained in:
ajgeiss0702
2021-08-08 19:50:07 -07:00
parent 4353341881
commit c4f06b0d77
13 changed files with 151 additions and 69 deletions
@@ -5,6 +5,7 @@ import net.kyori.adventure.text.Component;
import us.ajg0702.queue.api.commands.ICommandSender;
import us.ajg0702.queue.api.commands.ISubCommand;
import us.ajg0702.queue.commands.BaseCommand;
import us.ajg0702.queue.commands.commands.manage.debug.*;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.utils.common.Messages;
@@ -28,6 +29,7 @@ public class ManageCommand extends BaseCommand {
addSubCommand(new QueueList(main));
addSubCommand(new Send(main));
addSubCommand(new PermissionList(main));
addSubCommand(new Whitelist(main));
}
@@ -1,4 +1,4 @@
package us.ajg0702.queue.commands.commands.manage;
package us.ajg0702.queue.commands.commands.manage.debug;
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.text.Component;
@@ -1,4 +1,4 @@
package us.ajg0702.queue.commands.commands.manage;
package us.ajg0702.queue.commands.commands.manage.debug;
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.text.Component;
@@ -1,4 +1,4 @@
package us.ajg0702.queue.commands.commands.manage;
package us.ajg0702.queue.commands.commands.manage.debug;
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.text.Component;
@@ -1,4 +1,4 @@
package us.ajg0702.queue.commands.commands.manage;
package us.ajg0702.queue.commands.commands.manage.debug;
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.text.Component;
@@ -0,0 +1,65 @@
package us.ajg0702.queue.commands.commands.manage.debug;
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.text.Component;
import us.ajg0702.queue.api.commands.ICommandSender;
import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.commands.SubCommand;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.utils.common.Messages;
import java.util.ArrayList;
import java.util.List;
public class Whitelist extends SubCommand {
final QueueMain main;
public Whitelist(QueueMain main) {
this.main = main;
}
@Override
public String getName() {
return "whitelist";
}
@Override
public ImmutableList<String> getAliases() {
return ImmutableList.of();
}
@Override
public String getPermission() {
return null;
}
@Override
public boolean showInTabComplete() {
return false;
}
@Override
public Messages getMessages() {
return main.getMessages();
}
@Override
public void execute(ICommandSender sender, String[] args) {
if(!checkPermission(sender)) return;
if(args.length < 1) {
sender.sendMessage(main.getMessages().toComponent("<red>Not enough args!"));
return;
}
QueueServer server = main.getQueueManager().findServer(args[0]);
if(server == null) {
sender.sendMessage(main.getMessages().toComponent("<red>Server not found"));
return;
}
sender.sendMessage(main.getMessages().toComponent("<green>Yours: "+ main.getPlatformMethods().senderToPlayer(sender).getUniqueId().toString()));
server.getWhitelistedPlayers().forEach(uuid -> sender.sendMessage(main.getMessages().toComponent("<yellow>"+uuid)));
}
@Override
public List<String> autoComplete(ICommandSender sender, String[] args) {
return new ArrayList<>();
}
}
@@ -137,6 +137,7 @@ public class QueueMain {
d.put("status.offline.full", "full");
d.put("status.offline.restricted", "restricted");
d.put("status.offline.paused", "paused");
d.put("status.offline.whitelisted", "whitelisted");
d.put("status.online.base", "&7You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
d.put("status.left-last-queue", "&aYou left the last queue you were in.");
@@ -473,6 +473,8 @@ public class QueueManagerImpl implements QueueManager {
if(nextPlayer == null) continue; // None of the players in the queue are online
if(server.isWhitelisted() && !server.getWhitelistedPlayers().contains(nextPlayer.getUniqueId())) continue;
if(!server.canAccess(nextPlayer)) continue;
if(server.isFull() && !nextPlayer.hasPermission("ajqueue.joinfull")) continue;
@@ -105,6 +105,10 @@ public class QueueServerImpl implements QueueServer {
return msgs.getString("status.offline.paused");
}
if(p != null && isWhitelisted() && !getWhitelistedPlayers().contains(p.getUniqueId())) {
return msgs.getString("status.offline.whitelisted");
}
if(isFull()) {
return msgs.getString("status.offline.full");
}
@@ -159,6 +163,20 @@ public class QueueServerImpl implements QueueServer {
if(serverPing == null) {
continue;
}
if(serverPing.getPlainDescription().contains("ajQueue;whitelisted=")) {
if(servers.size() > 1) continue;
setWhitelisted(true);
List<UUID> uuids = new ArrayList<>();
for(String uuid : serverPing.getPlainDescription().substring(20).split(",")) {
if(uuid.isEmpty()) continue;
main.getLogger().info("Adding uuid "+uuid+" to whitelist");
uuids.add(UUID.fromString(uuid));
}
setWhitelistedPlayers(uuids);
} else {
setWhitelisted(false);
}
onlineCount++;
playerCount += serverPing.getPlayerCount();
maxPlayers += serverPing.getMaxPlayers();
@@ -217,8 +235,10 @@ public class QueueServerImpl implements QueueServer {
@Override
public boolean isJoinable(AdaptedPlayer p) {
return (!whitelisted || whitelistedUUIDs.contains(p.getUniqueId())) &&
this.isOnline() &&
if(p != null && isWhitelisted() && !whitelistedUUIDs.contains(p.getUniqueId())) {
return false;
}
return this.isOnline() &&
this.canAccess(p) &&
!this.isFull() &&
!this.isPaused();