diff --git a/Server/src/main/java/net/simon987/server/game/debug/HealObjCommandListener.java b/Server/src/main/java/net/simon987/server/game/debug/HealObjCommandListener.java index 265aed6..a108a66 100644 --- a/Server/src/main/java/net/simon987/server/game/debug/HealObjCommandListener.java +++ b/Server/src/main/java/net/simon987/server/game/debug/HealObjCommandListener.java @@ -42,5 +42,4 @@ public class HealObjCommandListener implements GameEventListener { } } } - } diff --git a/Server/src/main/java/net/simon987/server/game/debug/SaveGameCommandListener.java b/Server/src/main/java/net/simon987/server/game/debug/SaveGameCommandListener.java new file mode 100644 index 0000000..3181ee2 --- /dev/null +++ b/Server/src/main/java/net/simon987/server/game/debug/SaveGameCommandListener.java @@ -0,0 +1,27 @@ +package net.simon987.server.game.debug; + +import net.simon987.server.GameServer; +import net.simon987.server.event.DebugCommandEvent; +import net.simon987.server.event.GameEvent; +import net.simon987.server.event.GameEventListener; + +public class SaveGameCommandListener implements GameEventListener { + + @Override + public Class getListenedEventType() { + return DebugCommandEvent.class; + } + + @Override + public void handle(GameEvent event) { + + DebugCommandEvent e = (DebugCommandEvent) event; + + if (e.getName().equals("saveGame")) { + + GameServer.INSTANCE.save(); + e.reply("Saved the game"); + } + } + +} diff --git a/Server/src/main/java/net/simon987/server/websocket/MessageDispatcher.java b/Server/src/main/java/net/simon987/server/websocket/MessageDispatcher.java index aacc3e0..554acd9 100644 --- a/Server/src/main/java/net/simon987/server/websocket/MessageDispatcher.java +++ b/Server/src/main/java/net/simon987/server/websocket/MessageDispatcher.java @@ -34,6 +34,8 @@ public class MessageDispatcher { handler.handle(user, json); } catch (IOException e) { e.printStackTrace(); + } catch (IllegalStateException e) { + //Socket is closed } } } else { diff --git a/Server/src/main/java/net/simon987/server/websocket/ObjectsRequestHandler.java b/Server/src/main/java/net/simon987/server/websocket/ObjectsRequestHandler.java index 0179cc3..9cd5451 100644 --- a/Server/src/main/java/net/simon987/server/websocket/ObjectsRequestHandler.java +++ b/Server/src/main/java/net/simon987/server/websocket/ObjectsRequestHandler.java @@ -13,7 +13,7 @@ public class ObjectsRequestHandler implements MessageHandler { @Override - public void handle(OnlineUser user, JSONObject json) throws IOException { + public void handle(OnlineUser user, JSONObject json) throws IllegalStateException, IOException { if (json.get("t").equals("object")) { // LogManager.LOGGER.fine("(WS) Objects request from " + user.getUser().getUsername()); diff --git a/Server/src/main/resources/static/js/mar.js b/Server/src/main/resources/static/js/mar.js index 16ef293..6ce3431 100644 --- a/Server/src/main/resources/static/js/mar.js +++ b/Server/src/main/resources/static/js/mar.js @@ -253,6 +253,8 @@ var WorldIndicator = (function (_super) { }; return WorldIndicator; }(DebugMessage)); +{ +} var RENDERER_WIDTH = document.getElementById("game").clientWidth * window.devicePixelRatio; var RENDERER_HEIGHT = (window.innerHeight / 1.40) * window.devicePixelRatio; var DEBUG = true; @@ -437,6 +439,9 @@ var Debug = (function () { Debug.setEnergy = function (objectId, amount) { mar.client.sendDebugCommand({ t: "debug", command: "setEnergy", objectId: objectId, amount: amount }); }; + Debug.saveGame = function () { + mar.client.sendDebugCommand({t: "debug", command: "saveGame"}); + }; return Debug; }()); DEBUG = false; diff --git a/Server/src/main/typescript/mar.ts b/Server/src/main/typescript/mar.ts index 4dd6e42..d00181c 100644 --- a/Server/src/main/typescript/mar.ts +++ b/Server/src/main/typescript/mar.ts @@ -1,4 +1,5 @@ -// Typescript V2.4.1 +{ +}// Typescript V2.4.1 let RENDERER_WIDTH = document.getElementById("game").clientWidth * window.devicePixelRatio; let RENDERER_HEIGHT = (window.innerHeight / 1.40) * window.devicePixelRatio; @@ -215,6 +216,10 @@ class Debug { mar.client.sendDebugCommand({t: "debug", command: "setEnergy", objectId: objectId, amount: amount}); } + public static saveGame() { + mar.client.sendDebugCommand({t: "debug", command: "saveGame"}); + } + }