diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java index 2534071d..6bf402ef 100644 --- a/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java +++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java @@ -57,6 +57,8 @@ public Menu(BattleshipApp app) { addChild(musicToggle); + addChild(new Label(lookup("menu.volume"))); + Slider volumeSlider = new Slider(); volumeSlider.setModel(new DefaultRangedValueModel(0.0 , 2.0, app.getBackgroundMusic().getVolume())); volumeSlider.setDelta(0.1); diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java index 90cb8176..597cb7b6 100644 --- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java +++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java @@ -7,6 +7,7 @@ package pp.battleship.game.client; +import pp.battleship.message.server.GameDetails; import pp.battleship.message.server.StartBattleMessage; import java.lang.System.Logger.Level; @@ -38,4 +39,16 @@ public void receivedStartBattle(StartBattleMessage msg) { logic.setInfoText(msg.getInfoTextKey()); logic.setState(new BattleState(logic, msg.isMyTurn())); } + + /** + * This method will revert the client from wait state to editor state + * in case a wrong map was submitted + * + * @param details the game details including map size and ships + */ + @Override + public void receivedGameDetails(GameDetails details){ + logic.setInfoText("invalid.map"); + logic.setState(new EditorState(logic)); + } } diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java index 5a2a75d3..9e70334b 100644 --- a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java +++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java @@ -146,8 +146,10 @@ public Player addPlayer(int id) { public void received(MapMessage msg, int from) { if (state != ServerState.SET_UP) LOGGER.log(Level.ERROR, "playerReady not allowed in {0}", state); //NON-NLS - else if (!checkMap(msg, from)) + else if (!checkMap(msg, from)) { LOGGER.log(Level.ERROR, "player submitted not allowed Map"); + send(getPlayerById(from), new GameDetails(config)); + } else playerReady(getPlayerById(from), msg.getShips()); } diff --git a/Projekte/battleship/model/src/main/resources/battleship.properties b/Projekte/battleship/model/src/main/resources/battleship.properties index 9b4d2065..af39d2ed 100644 --- a/Projekte/battleship/model/src/main/resources/battleship.properties +++ b/Projekte/battleship/model/src/main/resources/battleship.properties @@ -33,6 +33,7 @@ menu.sound-enabled=Sound switched on menu.map.load=Load map from file... menu.map.save=Save map in file... menu.music.toggle=Toggle the music +invalid.map=Your submitted map was invalid menu.volume=Volume label.file=File: label.connecting=Connecting... diff --git a/Projekte/battleship/model/src/main/resources/battleship_de.properties b/Projekte/battleship/model/src/main/resources/battleship_de.properties index 76293de8..ae630c0e 100644 --- a/Projekte/battleship/model/src/main/resources/battleship_de.properties +++ b/Projekte/battleship/model/src/main/resources/battleship_de.properties @@ -33,6 +33,7 @@ menu.sound-enabled=Sound eingeschaltet menu.map.load=Karte von Datei laden... menu.map.save=Karte in Datei speichern... menu.music.toggle=An/Ausschalten der Musik +invalid.map=Die angegebene Karte war ungültig menu.volume=Lautstärke label.file=Datei: label.connecting=Verbindung wird aufgebaut...