diff options
author | Florian Rinke <develop@torui.de> | 2021-09-23 20:05:34 +0200 |
---|---|---|
committer | Florian Rinke <develop@torui.de> | 2021-09-23 20:05:34 +0200 |
commit | 2c585a31b719e9a6fee3800a1cc57bd4eae6bd2d (patch) | |
tree | 1c7ff966a55009ab1faea9524e825997522f5f1d /src | |
parent | e5e0c9a3a4fd9b2c10464e0f129bcb60b2db0f19 (diff) | |
download | COFL-2c585a31b719e9a6fee3800a1cc57bd4eae6bd2d.tar.gz COFL-2c585a31b719e9a6fee3800a1cc57bd4eae6bd2d.tar.bz2 COFL-2c585a31b719e9a6fee3800a1cc57bd4eae6bd2d.zip |
switched websocket library
Diffstat (limited to 'src')
6 files changed, 122 insertions, 21 deletions
diff --git a/src/main/java/de/torui/coflsky/CoflSky.java b/src/main/java/de/torui/coflsky/CoflSky.java index bd5d2c5..a07db4b 100644 --- a/src/main/java/de/torui/coflsky/CoflSky.java +++ b/src/main/java/de/torui/coflsky/CoflSky.java @@ -34,6 +34,10 @@ public class CoflSky //Minecraft.getSessionInfo().forEach((a,b) -> System.out.println("Key=" + a + " value=" + b)); + //System.out.println("Loggerfactory: " + LoggerFactory.getILoggerFactory()); + // Logger log = LoggerFactory.getLogger(CoflSky.class); + // log.debug("Testing"); + // some example code System.out.println("Initializing"); diff --git a/src/main/java/de/torui/coflsky/CoflSkyCommand.java b/src/main/java/de/torui/coflsky/CoflSkyCommand.java index 1a68cfc..6bb50de 100644 --- a/src/main/java/de/torui/coflsky/CoflSkyCommand.java +++ b/src/main/java/de/torui/coflsky/CoflSkyCommand.java @@ -48,8 +48,8 @@ public class CoflSkyCommand extends CommandBase { //todo: stop break; case "debug": - //WSCommandHandler.HandleCommand(new Command(CommandType.Execute, "/say hewwo"), sender.getCommandSenderEntity()); - //WSCommandHandler.HandleCommand(new Command(CommandType.WriteToChat, "{ \"text\": \"Clickable Texts are fun\", \"onClick\": \"me Hello World\"}"), sender.getCommandSenderEntity()); + WSCommandHandler.HandleCommand(new Command(CommandType.Execute, "/me hewwo"), sender.getCommandSenderEntity()); + // WSCommandHandler.HandleCommand(new Command(CommandType.WriteToChat, "{ \"text\": \"Clickable Texts are fun\", \"onClick\": \"me Hello World\"}"), sender.getCommandSenderEntity()); break; case "callback": CallbackCommand(args); @@ -73,7 +73,7 @@ public class CoflSkyCommand extends CommandBase { System.out.println("CallbackData: " + command); //new Thread(()->{ System.out.println("Callback: " + command); - WSCommandHandler.HandleCommand(new Command(CommandType.Execute, command), Minecraft.getMinecraft().thePlayer); + WSCommandHandler.HandleCommand(new Command(CommandType.Execute, command), Minecraft.getMinecraft().thePlayer); CoflSky.Wrapper.SendMessage(new Command(CommandType.Clicked, command)); System.out.println("Sent!"); diff --git a/src/main/java/de/torui/coflsky/EventRegistry.java b/src/main/java/de/torui/coflsky/EventRegistry.java index 4ef15a9..afe39bb 100644 --- a/src/main/java/de/torui/coflsky/EventRegistry.java +++ b/src/main/java/de/torui/coflsky/EventRegistry.java @@ -19,13 +19,14 @@ public class EventRegistry{ @SubscribeEvent public void onConnectedToServerEvent(ClientConnectedToServerEvent event) { - + //String serverIP = Minecraft.getMinecraft().getCurrentServerData().serverIP; + //System.out.println("ServerIP: " + serverIP); if(!event.isLocal) { - String serverIP = Minecraft.getMinecraft().getCurrentServerData().serverIP; + //String serverIP = Minecraft.getMinecraft().getCurrentServerData().serverIP; - if(false && serverIP.equals("hypixel.net")) { + /* if(false && serverIP.equals("hypixel.net")) { - } + }*/ //UUID.randomUUID().toString(); //String username = Minecraft.getSessionInfo().get("X-Minecraft-Username"); diff --git a/src/main/java/de/torui/coflsky/WSCommandHandler.java b/src/main/java/de/torui/coflsky/WSCommandHandler.java index a6fa87b..cdfc954 100644 --- a/src/main/java/de/torui/coflsky/WSCommandHandler.java +++ b/src/main/java/de/torui/coflsky/WSCommandHandler.java @@ -16,6 +16,7 @@ import net.minecraftforge.client.ClientCommandHandler; public class WSCommandHandler { public static boolean HandleCommand(Command cmd, Entity sender) { + //Entity sender = Minecraft.getMinecraft().thePlayer; System.out.println("Handling Command=" + cmd.toString()); switch(cmd.getType()) { case WriteToChat: diff --git a/src/main/java/de/torui/coflsky/websocket/WSClient.java b/src/main/java/de/torui/coflsky/websocket/WSClient.java index 9641277..59e9abb 100644 --- a/src/main/java/de/torui/coflsky/websocket/WSClient.java +++ b/src/main/java/de/torui/coflsky/websocket/WSClient.java @@ -1,20 +1,100 @@ package de.torui.coflsky.websocket; -import java.net.URI; -import java.util.LinkedList; -import java.util.Queue; -import org.java_websocket.client.WebSocketClient; -import org.java_websocket.handshake.ServerHandshake; +import java.io.IOException; +import java.net.URI; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.neovisionaries.ws.client.WebSocket; +import com.neovisionaries.ws.client.WebSocketAdapter; +import com.neovisionaries.ws.client.WebSocketException; +import com.neovisionaries.ws.client.WebSocketFactory; +import com.neovisionaries.ws.client.WebSocketState; +import net.minecraft.client.Minecraft; import de.torui.coflsky.WSCommandHandler; import de.torui.coflsky.core.Command; -import net.minecraft.client.Minecraft; -import net.minecraft.server.MinecraftServer; +public class WSClient extends WebSocketAdapter { + + public static Gson gson; + + + static { + gson = new GsonBuilder()/*.setFieldNamingStrategy(new FieldNamingStrategy() { + @Override + public String translateName(Field f) { + + String name = f.getName(); + char firstChar = name.charAt(0); + return Character.toLowerCase(firstChar) + name.substring(1); + } + })*/.create(); + } + public URI uri; + public WebSocket socket; + + public WSClient(URI uri) { + this.uri = uri; + } + + public void start() throws IOException, WebSocketException { + WebSocketFactory factory = new WebSocketFactory(); + this.socket = factory.createSocket(uri); + this.socket.addListener(this); + this.socket.connect(); + } + + public void stop() { + System.out.println("Closing Socket"); + // socket.sendClose(); + socket.clearListeners(); + + socket.disconnect(); + /*try { + socket.getConnectedSocket().close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (WebSocketException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + }*/ + System.out.println("Socket closed"); + + } + + @Override + public void onStateChanged(WebSocket websocket, WebSocketState newState) throws Exception { + System.out.println("WebSocket Changed state to: " + newState); + super.onStateChanged(websocket, newState); + } + + + + @Override + public void onTextMessage(WebSocket websocket, String text) throws Exception{ + + //super.onTextMessage(websocket, text); + System.out.println("Received: "+ text); + Command cmd = gson.fromJson(text, Command.class); + //System.out.println(cmd); + WSCommandHandler.HandleCommand(cmd, Minecraft.getMinecraft().thePlayer); + + } + + public void SendCommand(Command cmd) { + String json = gson.toJson(cmd); + this.socket.sendText(json); + } + + + + +} + +/* public class WSClient extends WebSocketClient{ public static Gson gson; @@ -31,7 +111,7 @@ public class WSClient extends WebSocketClient{ char firstChar = name.charAt(0); return Character.toLowerCase(firstChar) + name.substring(1); } - })*/.create(); + })*.create(); } public WSClient(URI serverUri) { @@ -69,3 +149,4 @@ public class WSClient extends WebSocketClient{ } } +*/ diff --git a/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java b/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java index ef2ee8b..b3c8832 100644 --- a/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java +++ b/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java @@ -1,9 +1,12 @@ package de.torui.coflsky.websocket; +import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.UUID; +import com.neovisionaries.ws.client.WebSocketException; + import de.torui.coflsky.CoflSky; import de.torui.coflsky.core.Command; @@ -22,28 +25,39 @@ public class WSClientWrapper { if(!isRunning) { String uuid = CoflSky.PlayerUUID; try { + socket = new WSClient(new URI(uri + uuid)); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } - thread = new Thread(socket); + /*thread = new Thread(socket); thread.start(); - isRunning=true; + isRunning=true;*/ + isRunning = true; + try { + socket.start(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (WebSocketException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } } public synchronized void stop() { if(isRunning) { - try { - socket.closeBlocking(); + /* try { + //socket.closeBlocking(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); - } + }*/ + socket.stop(); isRunning = false; socket = null; - socket = null; } } |