whitelist progress
This commit is contained in:
@@ -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
-1
@@ -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
-1
@@ -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
-1
@@ -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
-1
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user