diff --git a/src/main/java/net/krakatoa/proxy/command/CodeCommand.java b/src/main/java/net/krakatoa/proxy/command/CodeCommand.java index c964fb6..da8be90 100644 --- a/src/main/java/net/krakatoa/proxy/command/CodeCommand.java +++ b/src/main/java/net/krakatoa/proxy/command/CodeCommand.java @@ -1,16 +1,7 @@ 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.util.HashMap; -import java.util.UUID; 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.plugin.Command; @@ -20,8 +11,6 @@ public class CodeCommand extends Command { super(name); } - HashMap playersServer = new HashMap<>(); - @Override public void execute(CommandSender commandSender, String[] strings) { if (commandSender instanceof ProxiedPlayer) { @@ -50,29 +39,6 @@ public class CodeCommand extends Command { // TODO: add url and copy text //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 ")); } } diff --git a/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java b/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java index f910bd2..699e5a1 100644 --- a/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java +++ b/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java @@ -1,7 +1,14 @@ 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.protocol.KraSocketClientProtocolMessage; +import java.util.HashMap; +import java.util.UUID; import java.util.concurrent.TimeUnit; import net.krakatoa.proxy.ProxySystem; import net.md_5.bungee.api.ProxyServer; @@ -11,6 +18,10 @@ import org.java_websocket.handshake.ServerHandshake; public class SocketClientMessageListener implements KraSocketClientEventInterface { + private HashMap playersServer = new HashMap<>(); + private final IPlayerManager playerManager = CloudNetDriver.getInstance().getServicesRegistry() + .getFirstService(IPlayerManager.class); + @Override public void onOpen(ServerHandshake serverHandshake) { for (ProxiedPlayer proxiedPlayer : ProxyServer.getInstance().getPlayers()) { @@ -32,25 +43,50 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac "consumer ids " + ProxySystem.getInstance().getKraSocketClientProtocol() .getConsumerHashMap().keySet()); - // test - mobile or voice socket connected - if (kraProtocolMessage.getCmdNumber() == 15) { - ProxyServer.getInstance().getScheduler().runAsync(ProxySystem.getInstance(), () -> { - System.out.println(ProxySystem.getInstance().getFormatter() - .stringToUuid(kraProtocolMessage.getUuid())); + switch (kraProtocolMessage.getCmdNumber()) { + case 15: // @Deprecated: test - mobile or voice socket connected + ProxyServer.getInstance().getScheduler().runAsync(ProxySystem.getInstance(), () -> { + System.out.println(ProxySystem.getInstance().getFormatter() + .stringToUuid(kraProtocolMessage.getUuid())); - ProxiedPlayer proxiedPlayer = ProxySystem.getInstance().getProxy() - .getPlayer(ProxySystem.getInstance().getFormatter() - .stringToUuid(kraProtocolMessage.getUuid())); + ProxiedPlayer proxiedPlayer = ProxySystem.getInstance().getProxy() + .getPlayer(ProxySystem.getInstance().getFormatter() + .stringToUuid(kraProtocolMessage.getUuid())); - if (proxiedPlayer != null) { - if (kraProtocolMessage.getArgs().equals("1")) { - proxiedPlayer.sendMessage(new TextComponent("§5Mobile §8» §cConnection lost!")); - } else { - proxiedPlayer.sendMessage( - new TextComponent("§bVoice §8» §cConnection lost!")); + if (proxiedPlayer != null) { + if (kraProtocolMessage.getArgs().equals("1")) { + proxiedPlayer.sendMessage(new TextComponent("§5Mobile §8» §cConnection lost!")); + } else { + proxiedPlayer.sendMessage( + 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()