auto restart system
parent
9743f674a4
commit
b565237206
|
@ -1,16 +1,7 @@
|
||||||
package net.krakatoa.proxy.command;
|
package net.krakatoa.proxy.command;
|
||||||
|
|
||||||
import de.dytanic.cloudnet.driver.CloudNetDriver;
|
|
||||||
import de.dytanic.cloudnet.driver.service.ServiceInfoSnapshot;
|
|
||||||
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.ServicePlayer;
|
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.UUID;
|
|
||||||
import net.md_5.bungee.api.CommandSender;
|
import net.md_5.bungee.api.CommandSender;
|
||||||
import net.md_5.bungee.api.chat.TextComponent;
|
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
import net.md_5.bungee.api.plugin.Command;
|
import net.md_5.bungee.api.plugin.Command;
|
||||||
|
|
||||||
|
@ -20,8 +11,6 @@ public class CodeCommand extends Command {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<String, UUID> playersServer = new HashMap<>();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender commandSender, String[] strings) {
|
public void execute(CommandSender commandSender, String[] strings) {
|
||||||
if (commandSender instanceof ProxiedPlayer) {
|
if (commandSender instanceof ProxiedPlayer) {
|
||||||
|
@ -50,29 +39,6 @@ public class CodeCommand extends Command {
|
||||||
|
|
||||||
// TODO: add url and copy text
|
// TODO: add url and copy text
|
||||||
//proxiedPlayer.sendMessage(new TextComponent("§eNeuer Code §c§l" + voiceWebCode));
|
//proxiedPlayer.sendMessage(new TextComponent("§eNeuer Code §c§l" + voiceWebCode));
|
||||||
|
|
||||||
ServiceInfoSnapshot serviceInfoSnapshot = CloudNetDriver.getInstance()
|
|
||||||
.getCloudServiceProvider().getCloudServiceByName("lobby-1");
|
|
||||||
|
|
||||||
IPlayerManager playerManager = CloudNetDriver.getInstance().getServicesRegistry()
|
|
||||||
.getFirstService(IPlayerManager.class);
|
|
||||||
|
|
||||||
assert serviceInfoSnapshot != null;
|
|
||||||
serviceInfoSnapshot.getProperty(BridgeServiceProperty.PLAYERS).ifPresent(players -> {
|
|
||||||
for (ServicePlayer player : players) {
|
|
||||||
System.out.println("player " + player.getName());
|
|
||||||
playersServer.put("lobby-1", player.getUniqueId());
|
|
||||||
|
|
||||||
ICloudPlayer cloudPlayer = playerManager.getOnlinePlayer(
|
|
||||||
player.getUniqueId());
|
|
||||||
|
|
||||||
assert cloudPlayer != null;
|
|
||||||
cloudPlayer.getPlayerExecutor().connect("NewYork-1");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
proxiedPlayer.sendMessage(
|
|
||||||
new TextComponent("players "));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
package net.krakatoa.proxy.listener;
|
package net.krakatoa.proxy.listener;
|
||||||
|
|
||||||
|
import de.dytanic.cloudnet.driver.CloudNetDriver;
|
||||||
|
import de.dytanic.cloudnet.driver.service.ServiceInfoSnapshot;
|
||||||
|
import de.dytanic.cloudnet.ext.bridge.BridgeServiceProperty;
|
||||||
|
import de.dytanic.cloudnet.ext.bridge.player.IPlayerManager;
|
||||||
|
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.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;
|
||||||
|
@ -11,6 +18,10 @@ import org.java_websocket.handshake.ServerHandshake;
|
||||||
|
|
||||||
public class SocketClientMessageListener implements KraSocketClientEventInterface {
|
public class SocketClientMessageListener implements KraSocketClientEventInterface {
|
||||||
|
|
||||||
|
private HashMap<String, UUID> playersServer = new HashMap<>();
|
||||||
|
private final IPlayerManager playerManager = CloudNetDriver.getInstance().getServicesRegistry()
|
||||||
|
.getFirstService(IPlayerManager.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOpen(ServerHandshake serverHandshake) {
|
public void onOpen(ServerHandshake serverHandshake) {
|
||||||
for (ProxiedPlayer proxiedPlayer : ProxyServer.getInstance().getPlayers()) {
|
for (ProxiedPlayer proxiedPlayer : ProxyServer.getInstance().getPlayers()) {
|
||||||
|
@ -32,25 +43,50 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
|
||||||
"consumer ids " + ProxySystem.getInstance().getKraSocketClientProtocol()
|
"consumer ids " + ProxySystem.getInstance().getKraSocketClientProtocol()
|
||||||
.getConsumerHashMap().keySet());
|
.getConsumerHashMap().keySet());
|
||||||
|
|
||||||
// test - mobile or voice socket connected
|
switch (kraProtocolMessage.getCmdNumber()) {
|
||||||
if (kraProtocolMessage.getCmdNumber() == 15) {
|
case 15: // @Deprecated: test - mobile or voice socket connected
|
||||||
ProxyServer.getInstance().getScheduler().runAsync(ProxySystem.getInstance(), () -> {
|
ProxyServer.getInstance().getScheduler().runAsync(ProxySystem.getInstance(), () -> {
|
||||||
System.out.println(ProxySystem.getInstance().getFormatter()
|
System.out.println(ProxySystem.getInstance().getFormatter()
|
||||||
.stringToUuid(kraProtocolMessage.getUuid()));
|
.stringToUuid(kraProtocolMessage.getUuid()));
|
||||||
|
|
||||||
ProxiedPlayer proxiedPlayer = ProxySystem.getInstance().getProxy()
|
ProxiedPlayer proxiedPlayer = ProxySystem.getInstance().getProxy()
|
||||||
.getPlayer(ProxySystem.getInstance().getFormatter()
|
.getPlayer(ProxySystem.getInstance().getFormatter()
|
||||||
.stringToUuid(kraProtocolMessage.getUuid()));
|
.stringToUuid(kraProtocolMessage.getUuid()));
|
||||||
|
|
||||||
if (proxiedPlayer != null) {
|
if (proxiedPlayer != null) {
|
||||||
if (kraProtocolMessage.getArgs().equals("1")) {
|
if (kraProtocolMessage.getArgs().equals("1")) {
|
||||||
proxiedPlayer.sendMessage(new TextComponent("§5Mobile §8» §cConnection lost!"));
|
proxiedPlayer.sendMessage(new TextComponent("§5Mobile §8» §cConnection lost!"));
|
||||||
} else {
|
} else {
|
||||||
proxiedPlayer.sendMessage(
|
proxiedPlayer.sendMessage(
|
||||||
new TextComponent("§bVoice §8» §cConnection lost!"));
|
new TextComponent("§bVoice §8» §cConnection lost!"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 33329: // server auto restart
|
||||||
|
ServiceInfoSnapshot serviceInfoSnapshot = CloudNetDriver.getInstance()
|
||||||
|
.getCloudServiceProvider().getCloudServiceByName(kraProtocolMessage.getArgs());
|
||||||
|
|
||||||
|
if (serviceInfoSnapshot != null) {
|
||||||
|
serviceInfoSnapshot.getProperty(BridgeServiceProperty.PLAYERS).ifPresent(players -> {
|
||||||
|
for (ServicePlayer player : players) {
|
||||||
|
playersServer.put(kraProtocolMessage.getArgs(), player.getUniqueId());
|
||||||
|
|
||||||
|
/*ICloudPlayer cloudPlayer = playerManager.getOnlinePlayer(
|
||||||
|
player.getUniqueId());
|
||||||
|
|
||||||
|
if (cloudPlayer != null) {
|
||||||
|
cloudPlayer.getPlayerExecutor().connect(kraProtocolMessage.getArgs());
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
// stop target server
|
||||||
|
CloudNetDriver.getInstance().getCloudServiceProvider(serviceInfoSnapshot).stop();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
|
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
|
||||||
|
|
Loading…
Reference in New Issue