Probs made a fix so players won't stuck in a lobby anymore, when all lobbies are restarting.
This commit is contained in:
parent
0e28612fec
commit
7eb8b8c614
@ -11,6 +11,7 @@ import net.md_5.bungee.event.EventHandler;
|
|||||||
import net.md_5.bungee.event.EventPriority;
|
import net.md_5.bungee.event.EventPriority;
|
||||||
import zone.themcgamer.common.Tuple;
|
import zone.themcgamer.common.Tuple;
|
||||||
import zone.themcgamer.data.jedis.command.JedisCommandHandler;
|
import zone.themcgamer.data.jedis.command.JedisCommandHandler;
|
||||||
|
import zone.themcgamer.data.jedis.command.impl.ServerRestartCommand;
|
||||||
import zone.themcgamer.data.jedis.command.impl.ServerStateChangeCommand;
|
import zone.themcgamer.data.jedis.command.impl.ServerStateChangeCommand;
|
||||||
import zone.themcgamer.data.jedis.data.ServerGroup;
|
import zone.themcgamer.data.jedis.data.ServerGroup;
|
||||||
import zone.themcgamer.data.jedis.data.server.MinecraftServer;
|
import zone.themcgamer.data.jedis.data.server.MinecraftServer;
|
||||||
@ -46,6 +47,20 @@ public class HubBalancer implements Runnable, Listener {
|
|||||||
proxy.getProxy().getPluginManager().registerListener(proxy, this);
|
proxy.getProxy().getPluginManager().registerListener(proxy, this);
|
||||||
|
|
||||||
JedisCommandHandler.getInstance().addListener(jedisCommand -> {
|
JedisCommandHandler.getInstance().addListener(jedisCommand -> {
|
||||||
|
if (jedisCommand instanceof ServerRestartCommand) {
|
||||||
|
ServerRestartCommand serverRestartCommand = (ServerRestartCommand) jedisCommand;
|
||||||
|
ServerInfo serverInfo = proxy.getProxy().getServerInfo(serverRestartCommand.getServerId());
|
||||||
|
if (serverInfo == null)
|
||||||
|
return;
|
||||||
|
for (ProxiedPlayer player : proxy.getProxy().getPlayers()) {
|
||||||
|
if (player.getServer().getInfo().equals(serverInfo)) {
|
||||||
|
if (hubs.isEmpty() || hubs.size() == 1)
|
||||||
|
kickPlayer(player, NO_AVAILABLE_HUB);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (hubs.containsValue(serverInfo))
|
||||||
|
hubs.remove(serverRestartCommand.getServerId());
|
||||||
|
}
|
||||||
if (jedisCommand instanceof ServerStateChangeCommand) {
|
if (jedisCommand instanceof ServerStateChangeCommand) {
|
||||||
ServerStateChangeCommand serverStateChangeCommand = (ServerStateChangeCommand) jedisCommand;
|
ServerStateChangeCommand serverStateChangeCommand = (ServerStateChangeCommand) jedisCommand;
|
||||||
System.out.println("Received update status from server " + serverStateChangeCommand.getServer().getId() + " status: " + serverStateChangeCommand.getNewState());
|
System.out.println("Received update status from server " + serverStateChangeCommand.getServer().getId() + " status: " + serverStateChangeCommand.getNewState());
|
||||||
|
Reference in New Issue
Block a user