auto restart system
parent
c6c55d512d
commit
7a75a4c205
|
@ -1,7 +1,9 @@
|
||||||
package net.krakatoa.proxy.listener;
|
package net.krakatoa.proxy.listener;
|
||||||
|
|
||||||
import de.dytanic.cloudnet.driver.CloudNetDriver;
|
import de.dytanic.cloudnet.driver.CloudNetDriver;
|
||||||
|
import de.dytanic.cloudnet.driver.service.ServiceConfiguration;
|
||||||
import de.dytanic.cloudnet.driver.service.ServiceInfoSnapshot;
|
import de.dytanic.cloudnet.driver.service.ServiceInfoSnapshot;
|
||||||
|
import de.dytanic.cloudnet.driver.service.ServiceTask;
|
||||||
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.ICloudPlayer;
|
||||||
import de.dytanic.cloudnet.ext.bridge.player.IPlayerManager;
|
import de.dytanic.cloudnet.ext.bridge.player.IPlayerManager;
|
||||||
|
@ -66,6 +68,21 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
|
||||||
case 33329: { // stop server - server auto restart
|
case 33329: { // stop server - server auto restart
|
||||||
String serverName = kraProtocolMessage.getArgs().toLowerCase();
|
String serverName = kraProtocolMessage.getArgs().toLowerCase();
|
||||||
|
|
||||||
|
if (serverName.equals("lobby")) { // start new lobby
|
||||||
|
if (CloudNetDriver.getInstance().getServiceTaskProvider().isServiceTaskPresent("Lobby")) {
|
||||||
|
ServiceTask serviceTask = CloudNetDriver.getInstance().getServiceTaskProvider()
|
||||||
|
.getServiceTask("Lobby");
|
||||||
|
|
||||||
|
if (serviceTask != null) {
|
||||||
|
ServiceInfoSnapshot serviceInfoSnapshot = ServiceConfiguration.builder(serviceTask)
|
||||||
|
.build().createNewService();
|
||||||
|
|
||||||
|
if (serviceInfoSnapshot != null) {
|
||||||
|
serviceInfoSnapshot.provider().start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // game server
|
||||||
ServiceInfoSnapshot serviceInfoSnapshot = CloudNetDriver.getInstance()
|
ServiceInfoSnapshot serviceInfoSnapshot = CloudNetDriver.getInstance()
|
||||||
.getCloudServiceProvider()
|
.getCloudServiceProvider()
|
||||||
.getCloudServiceByName(serverName);
|
.getCloudServiceByName(serverName);
|
||||||
|
@ -85,12 +102,27 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
|
||||||
// stop target server
|
// stop target server
|
||||||
CloudNetDriver.getInstance().getCloudServiceProvider(serviceInfoSnapshot).stop();
|
CloudNetDriver.getInstance().getCloudServiceProvider(serviceInfoSnapshot).stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 59739: { // send players back to server - auto restart system
|
case 59739: { // send players back to server - auto restart system
|
||||||
String serverName = kraProtocolMessage.getArgs().toLowerCase();
|
String serverName = kraProtocolMessage.getArgs().toLowerCase();
|
||||||
|
|
||||||
if (playersAutoRestartServerSystem.containsKey(serverName)) {
|
if (serverName.equals("lobby")) { // close old lobbies
|
||||||
|
Collection<ServiceInfoSnapshot> serviceInfoSnapshots = CloudNetDriver.getInstance()
|
||||||
|
.getCloudServiceProvider()
|
||||||
|
.getCloudServices("Lobby");
|
||||||
|
|
||||||
|
if (serviceInfoSnapshots != null) {
|
||||||
|
serviceInfoSnapshots.forEach(serviceInfoSnapshot -> {
|
||||||
|
if (!serverName.equals(serviceInfoSnapshot.getName())) {
|
||||||
|
serviceInfoSnapshot.provider().stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (playersAutoRestartServerSystem.containsKey(serverName)) { // send players back
|
||||||
playersAutoRestartServerSystem.get(serverName).forEach(servicePlayer -> {
|
playersAutoRestartServerSystem.get(serverName).forEach(servicePlayer -> {
|
||||||
ICloudPlayer cloudPlayer = playerManager.getOnlinePlayer(servicePlayer.getUniqueId());
|
ICloudPlayer cloudPlayer = playerManager.getOnlinePlayer(servicePlayer.getUniqueId());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue