auto restart system
parent
b565237206
commit
b4dd93fa3d
|
@ -3,12 +3,13 @@ package net.krakatoa.proxy.listener;
|
||||||
import de.dytanic.cloudnet.driver.CloudNetDriver;
|
import de.dytanic.cloudnet.driver.CloudNetDriver;
|
||||||
import de.dytanic.cloudnet.driver.service.ServiceInfoSnapshot;
|
import de.dytanic.cloudnet.driver.service.ServiceInfoSnapshot;
|
||||||
import de.dytanic.cloudnet.ext.bridge.BridgeServiceProperty;
|
import de.dytanic.cloudnet.ext.bridge.BridgeServiceProperty;
|
||||||
|
import de.dytanic.cloudnet.ext.bridge.player.ICloudPlayer;
|
||||||
import de.dytanic.cloudnet.ext.bridge.player.IPlayerManager;
|
import de.dytanic.cloudnet.ext.bridge.player.IPlayerManager;
|
||||||
import de.dytanic.cloudnet.ext.bridge.player.ServicePlayer;
|
import de.dytanic.cloudnet.ext.bridge.player.ServicePlayer;
|
||||||
import earth.krakatao.events.KraSocketClientEventInterface;
|
import earth.krakatao.events.KraSocketClientEventInterface;
|
||||||
import earth.krakatao.protocol.KraSocketClientProtocolMessage;
|
import earth.krakatao.protocol.KraSocketClientProtocolMessage;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import net.krakatoa.proxy.ProxySystem;
|
import net.krakatoa.proxy.ProxySystem;
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
|
@ -18,7 +19,7 @@ import org.java_websocket.handshake.ServerHandshake;
|
||||||
|
|
||||||
public class SocketClientMessageListener implements KraSocketClientEventInterface {
|
public class SocketClientMessageListener implements KraSocketClientEventInterface {
|
||||||
|
|
||||||
private HashMap<String, UUID> playersServer = new HashMap<>();
|
private HashMap<String, Collection<ServicePlayer>> playersAutoRestartServerSystem = new HashMap<>();
|
||||||
private final IPlayerManager playerManager = CloudNetDriver.getInstance().getServicesRegistry()
|
private final IPlayerManager playerManager = CloudNetDriver.getInstance().getServicesRegistry()
|
||||||
.getFirstService(IPlayerManager.class);
|
.getFirstService(IPlayerManager.class);
|
||||||
|
|
||||||
|
@ -31,7 +32,6 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessage(KraSocketClientProtocolMessage kraProtocolMessage) {
|
public void onMessage(KraSocketClientProtocolMessage kraProtocolMessage) {
|
||||||
|
|
||||||
System.out.println(
|
System.out.println(
|
||||||
"kraProtocolMessage " + kraProtocolMessage.getCmdID() + " " + kraProtocolMessage.getArgs());
|
"kraProtocolMessage " + kraProtocolMessage.getCmdID() + " " + kraProtocolMessage.getArgs());
|
||||||
|
|
||||||
|
@ -63,27 +63,41 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case 33329: // server auto restart
|
case 33329: { // stop server - server auto restart
|
||||||
|
String serverName = kraProtocolMessage.getArgs().toLowerCase();
|
||||||
|
|
||||||
ServiceInfoSnapshot serviceInfoSnapshot = CloudNetDriver.getInstance()
|
ServiceInfoSnapshot serviceInfoSnapshot = CloudNetDriver.getInstance()
|
||||||
.getCloudServiceProvider().getCloudServiceByName(kraProtocolMessage.getArgs());
|
.getCloudServiceProvider()
|
||||||
|
.getCloudServiceByName(serverName);
|
||||||
|
|
||||||
if (serviceInfoSnapshot != null) {
|
if (serviceInfoSnapshot != null) {
|
||||||
serviceInfoSnapshot.getProperty(BridgeServiceProperty.PLAYERS).ifPresent(players -> {
|
serviceInfoSnapshot.getProperty(BridgeServiceProperty.PLAYERS).ifPresent(players -> {
|
||||||
for (ServicePlayer player : players) {
|
playersAutoRestartServerSystem.put(serverName, players);
|
||||||
playersServer.put(kraProtocolMessage.getArgs(), player.getUniqueId());
|
});
|
||||||
|
|
||||||
/*ICloudPlayer cloudPlayer = playerManager.getOnlinePlayer(
|
// stop target server
|
||||||
|
CloudNetDriver.getInstance().getCloudServiceProvider(serviceInfoSnapshot).stop();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 59739: { // send players back to server - auto restart system
|
||||||
|
String serverName = kraProtocolMessage.getArgs().toLowerCase();
|
||||||
|
playersAutoRestartServerSystem.get(serverName).forEach(servicePlayer -> {
|
||||||
|
ICloudPlayer cloudPlayer = playerManager.getOnlinePlayer(servicePlayer.getUniqueId());
|
||||||
|
|
||||||
|
if (cloudPlayer != null) {
|
||||||
|
cloudPlayer.getPlayerExecutor().connect(serverName);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*ICloudPlayer cloudPlayer = playerManager.getOnlinePlayer(
|
||||||
player.getUniqueId());
|
player.getUniqueId());
|
||||||
|
|
||||||
if (cloudPlayer != null) {
|
if (cloudPlayer != null) {
|
||||||
cloudPlayer.getPlayerExecutor().connect(kraProtocolMessage.getArgs());
|
cloudPlayer.getPlayerExecutor().connect(kraProtocolMessage.getArgs());
|
||||||
}*/
|
}*/
|
||||||
}
|
|
||||||
// stop target server
|
|
||||||
CloudNetDriver.getInstance().getCloudServiceProvider(serviceInfoSnapshot).stop();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue