add players back to queue and preserve paused state on reload

This commit is contained in:
ajgeiss0702
2021-08-01 11:50:15 -07:00
parent fc6c7f725c
commit 19a17b8ddf
8 changed files with 92 additions and 46 deletions
@@ -42,7 +42,7 @@ public class BungeeQueue extends Plugin implements Listener {
new BungeeMethods(this, getProxy(), logger),
dataFolder
);
main.setServerBuilder(new BungeeServerBuilder(main, getProxy()));
main.setServerBuilder(new BungeeServerBuilder(getProxy()));
getProxy().registerChannel("ajqueue:tospigot");
getProxy().registerChannel("ajqueue:toproxy");
@@ -2,33 +2,25 @@ package us.ajg0702.queue.platforms.bungeecord.server;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.api.server.ServerBuilder;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.common.queues.QueueServerImpl;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
public class BungeeServerBuilder implements ServerBuilder {
private final ProxyServer proxyServer;
private final QueueMain main;
public BungeeServerBuilder(QueueMain main, ProxyServer proxyServer) {
public BungeeServerBuilder(ProxyServer proxyServer) {
this.proxyServer = proxyServer;
this.main = main;
}
@Override
public List<QueueServer> buildServers() {
List<QueueServer> result = new ArrayList<>();
Map<String, ServerInfo> servers = proxyServer.getServers();
public List<AdaptedServer> getServers() {
List<AdaptedServer> result = new ArrayList<>();
for(String serverName : servers.keySet()) {
ServerInfo serverInfo = servers.get(serverName);
AdaptedServer adaptedServer = new BungeeServer(serverInfo);
result.add(new QueueServerImpl(adaptedServer.getName(), main, adaptedServer));
}
proxyServer.getServers().forEach((s, serverInfo) -> result.add(new BungeeServer(serverInfo)));
return result;
}
@@ -69,7 +69,7 @@ public class VelocityQueue {
new VelocityMethods(this, proxyServer, logger),
dataFolder
);
main.setServerBuilder(new VelocityServerBuilder(main, proxyServer));
main.setServerBuilder(new VelocityServerBuilder(proxyServer));
commands = Arrays.asList(
new QueueCommand(main),
@@ -2,35 +2,26 @@ package us.ajg0702.queue.platforms.velocity.server;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import us.ajg0702.queue.api.server.ServerBuilder;
import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.common.queues.QueueServerImpl;
import us.ajg0702.queue.api.server.ServerBuilder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
public class VelocityServerBuilder implements ServerBuilder {
private final ProxyServer proxyServer;
private final QueueMain main;
public VelocityServerBuilder(QueueMain main, ProxyServer proxyServer) {
public VelocityServerBuilder(ProxyServer proxyServer) {
this.proxyServer = proxyServer;
this.main = main;
}
@Override
public List<QueueServer> buildServers() {
List<QueueServer> result = new ArrayList<>();
Collection<RegisteredServer> servers = proxyServer.getAllServers();
public List<AdaptedServer> getServers() {
List<AdaptedServer> result = new ArrayList<>();
for(RegisteredServer server : servers) {
AdaptedServer adaptedServer = new VelocityServer(server);
result.add(new QueueServerImpl(adaptedServer.getName(), main, adaptedServer));
}
proxyServer.getAllServers().forEach(registeredServer -> result.add(new VelocityServer(registeredServer)));
return result;
}