From 33d340a59b18361fcd18e73e34f5eced5641655f Mon Sep 17 00:00:00 2001 From: Florian Rinke Date: Tue, 28 Dec 2021 16:15:54 +0100 Subject: initial fix, needs testing! --- src/main/java/de/torui/coflsky/CoflSkyCommand.java | 7 +++-- .../java/de/torui/coflsky/commands/RawCommand.java | 33 ++++++++++++++++++++++ .../java/de/torui/coflsky/network/WSClient.java | 11 +++++++- .../de/torui/coflsky/network/WSClientWrapper.java | 8 ++++++ 4 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 src/main/java/de/torui/coflsky/commands/RawCommand.java (limited to 'src/main/java/de') diff --git a/src/main/java/de/torui/coflsky/CoflSkyCommand.java b/src/main/java/de/torui/coflsky/CoflSkyCommand.java index e7ba17c..dae91a6 100644 --- a/src/main/java/de/torui/coflsky/CoflSkyCommand.java +++ b/src/main/java/de/torui/coflsky/CoflSkyCommand.java @@ -8,6 +8,7 @@ import java.util.List; import de.torui.coflsky.commands.Command; import de.torui.coflsky.commands.CommandType; import de.torui.coflsky.commands.JsonStringCommand; +import de.torui.coflsky.commands.RawCommand; import de.torui.coflsky.minecraft_integration.CoflSessionManager; import de.torui.coflsky.minecraft_integration.CoflSessionManager.CoflSession; import de.torui.coflsky.network.QueryServerCommands; @@ -156,10 +157,10 @@ public class CoflSkyCommand extends CommandBase { public void CommandNotRecognized(String[] args, ICommandSender sender) { String command = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); - JsonStringCommand sc = new JsonStringCommand(args[0], WSClient.gson.toJson(command)); - + //JsonStringCommand sc = new JsonStringCommand(args[0], WSClient.gson.toJson(command)); + RawCommand rc = new RawCommand(args[0], WSClient.gson.toJson(command)); if(CoflSky.Wrapper.isRunning) { - CoflSky.Wrapper.SendMessage(sc); + CoflSky.Wrapper.SendMessage(rc); } else { sender.addChatMessage(new ChatComponentText("CoflSky not active. Server Commands are currently not available.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); } diff --git a/src/main/java/de/torui/coflsky/commands/RawCommand.java b/src/main/java/de/torui/coflsky/commands/RawCommand.java new file mode 100644 index 0000000..f2054e8 --- /dev/null +++ b/src/main/java/de/torui/coflsky/commands/RawCommand.java @@ -0,0 +1,33 @@ +package de.torui.coflsky.commands; + +import com.google.gson.annotations.SerializedName; + +public class RawCommand { + @SerializedName("type") + private String Type; + + @SerializedName("data") + private String Data; + + public RawCommand(String type, String data) { + this.Type = type; + this.Data=data; + } + + public String getType() { + return Type; + } + + public void setType(String type) { + Type = type; + } + + public String getData() { + return Data; + } + + public void setData(String data) { + Data = data; + } + +} diff --git a/src/main/java/de/torui/coflsky/network/WSClient.java b/src/main/java/de/torui/coflsky/network/WSClient.java index b5a94a5..353fab0 100644 --- a/src/main/java/de/torui/coflsky/network/WSClient.java +++ b/src/main/java/de/torui/coflsky/network/WSClient.java @@ -18,6 +18,7 @@ import de.torui.coflsky.CoflSky; import de.torui.coflsky.WSCommandHandler; import de.torui.coflsky.commands.Command; import de.torui.coflsky.commands.JsonStringCommand; +import de.torui.coflsky.commands.RawCommand; public class WSClient extends WebSocketAdapter { @@ -121,7 +122,15 @@ public class WSClient extends WebSocketAdapter { } public void SendCommand(Command cmd) { - String json = gson.toJson(cmd); + Send(cmd); + } + + public void SendCommand(RawCommand cmd) { + Send(cmd); + } + + public void Send(Object obj) { + String json = gson.toJson(obj); this.socket.sendText(json); } diff --git a/src/main/java/de/torui/coflsky/network/WSClientWrapper.java b/src/main/java/de/torui/coflsky/network/WSClientWrapper.java index 640d151..e6592bb 100644 --- a/src/main/java/de/torui/coflsky/network/WSClientWrapper.java +++ b/src/main/java/de/torui/coflsky/network/WSClientWrapper.java @@ -11,6 +11,7 @@ import com.neovisionaries.ws.client.WebSocketException; import de.torui.coflsky.CoflSky; import de.torui.coflsky.commands.Command; import de.torui.coflsky.commands.JsonStringCommand; +import de.torui.coflsky.commands.RawCommand; import de.torui.coflsky.minecraft_integration.PlayerDataProvider; import net.minecraft.client.Minecraft; import net.minecraft.event.ClickEvent; @@ -148,6 +149,13 @@ public class WSClientWrapper { } } + public synchronized void SendMessage(RawCommand cmd){ + if(this.isRunning) { + this.socket.SendCommand(cmd); + } else { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("tried sending a callback to coflnet but failed. the connection must be closed.")); + } + } public synchronized void SendMessage(Command cmd){ if(this.isRunning) { this.socket.SendCommand(cmd); -- cgit