diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MainView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MainView.java index df534142..e19fd274 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MainView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MainView.java @@ -100,6 +100,7 @@ private void mainMenu() { private void tryHost() { int port = 0; String text = hostDialog.getPort(); + app.getGameLogic().selectHost(""); try { port = Integer.parseInt(text); @@ -113,7 +114,6 @@ private void tryHost() { } hostDialog.connectServerAsClient(); app.getModelSynchronize().setHost(port); - app.getGameLogic().selectHost(""); //app.getAcousticHandler().playSound(MdgaSound.WRONG_INPUT); return; } @@ -128,6 +128,7 @@ private void tryJoin() { int port = 0; String ip = joinDialog.getIpt(); String portText = joinDialog.getPort(); + app.getGameLogic().selectJoin(""); try { // Validate the port @@ -141,7 +142,6 @@ private void tryJoin() { app.getModelSynchronize().setName(startDialog.getName()); joinDialog.setHostname(ip); joinDialog.connectToServer(); - app.getGameLogic().selectJoin(""); return; } } catch (IllegalArgumentException e) { diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java index e27a7d49..5a7cc107 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java @@ -25,6 +25,8 @@ public class ClientGameLogic implements ServerInterpreter { private ClientState state; private final ArrayList notifications = new ArrayList<>(); private boolean isHost; + private int ownPlayerID; + private String ownPlayerName; private final DialogsState dialogsState = new DialogsState(null, this); private final GameState gameState = new GameState(null, this); @@ -79,6 +81,42 @@ public ClientSender getClientSender(){ return clientSender; } + /** + * This method is used to get the ownPlayerId + * + * @return the ownPlayerId + */ + public int getOwnPlayerId() { + return ownPlayerID; + } + + /** + * This method is used to get the ownPlayerName + * + * @return the ownPlayerName + */ + public String getOwnPlayerName() { + return ownPlayerName; + } + + /** + * This method is used to set the ownPlayerName + * + * @param ownPlayerName the ownPlayerName to be set + */ + public void setOwnPlayerName(String ownPlayerName) { + this.ownPlayerName = ownPlayerName; + } + + /** + * This method is used to set the ownPlayerId + * + * @param ownPlayerId the ownPlayerId to be set + */ + public void setOwnPlayerId(int ownPlayerId) { + this.ownPlayerID = ownPlayerId; + } + /** * This method returns the game * diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogsState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogsState.java index ef2dccdf..044be708 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogsState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogsState.java @@ -11,9 +11,6 @@ public class DialogsState extends ClientState { private DialogStates currentState; - private int ownPlayerID; - private String ownPlayerName; - private final LobbyState lobbyState = new LobbyState(this, logic); private final NetworkDialogState networkDialogState = new NetworkDialogState(this, logic); private final StartDialogState startDialogState = new StartDialogState(this, logic); @@ -42,8 +39,6 @@ public void exit(){ @Override public void enter(){ setState(startDialogState); - ownPlayerID = 0; - ownPlayerName = null; } /** @@ -59,42 +54,6 @@ public void setState(DialogStates newState){ currentState = newState; } - /** - * This method is used to get the ownPlayerId - * - * @return the ownPlayerId - */ - public int getOwnPlayerId() { - return ownPlayerID; - } - - /** - * This method is used to get the ownPlayerName - * - * @return the ownPlayerName - */ - public String getOwnPlayerName() { - return ownPlayerName; - } - - /** - * This method is used to set the ownPlayerName - * - * @param ownPlayerName the ownPlayerName to be set - */ - public void setOwnPlayerName(String ownPlayerName) { - this.ownPlayerName = ownPlayerName; - } - - /** - * This method is used to set the ownPlayerId - * - * @param ownPlayerId the ownPlayerId to be set - */ - public void setOwnPlayerId(int ownPlayerId) { - this.ownPlayerID = ownPlayerId; - } - /** * This method is used to get the lobbyState * diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java index fb838357..f40d4770 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java @@ -27,7 +27,7 @@ public LobbyState(ClientState parent, ClientGameLogic logic) { @Override public void enter() { - logic.send(new JoinedLobbyMessage(parent.getOwnPlayerName())); + logic.send(new JoinedLobbyMessage(logic.getOwnPlayerName())); } @Override @@ -74,7 +74,7 @@ public void selectStart(){ @Override public void received(ServerStartGameMessage msg){ - logic.addNotification(new GameNotification(logic.getGame().getPlayerById(parent.getOwnPlayerId()).getColor())); + logic.addNotification(new GameNotification(logic.getGame().getPlayerById(logic.getOwnPlayerId()).getColor())); for (Map.Entry entry : logic.getGame().getBoard().getPlayerData().entrySet()) { List pieceList = new ArrayList<>(); for(Piece piece : entry.getValue().getPieces()){ @@ -88,21 +88,21 @@ public void received(ServerStartGameMessage msg){ @Override public void received(LobbyPlayerJoinedMessage msg){ - if(msg.getPlayer().getName().equals(parent.getOwnPlayerName())){ - parent.setOwnPlayerId(msg.getId()); + if(msg.getPlayer().getName().equals(logic.getOwnPlayerName())){ + logic.setOwnPlayerId(msg.getId()); } - if (msg.isHost() && msg.getId() == parent.getOwnPlayerId()){ + if (msg.isHost() && msg.getId() == logic.getOwnPlayerId()){ logic.setHost(true); } - logic.addNotification(new TskSelectNotification(msg.getPlayer().getColor(), msg.getPlayer().getName(), msg.getPlayer().getName().equals(parent.getOwnPlayerName()))); + logic.addNotification(new TskSelectNotification(msg.getPlayer().getColor(), msg.getPlayer().getName(), msg.getPlayer().getName().equals(logic.getOwnPlayerName()))); logic.getGame().getPlayers().put(msg.getId(), msg.getPlayer()); } @Override public void received(UpdateTSKMessage msg){ if(msg.isTaken()) { - logic.addNotification(new TskSelectNotification(msg.getColor(), logic.getGame().getPlayers().get(msg.getId()).getName(), parent.getOwnPlayerId()== msg.getId())); + logic.addNotification(new TskSelectNotification(msg.getColor(), logic.getGame().getPlayers().get(msg.getId()).getName(), logic.getOwnPlayerId()== msg.getId())); } else { logic.addNotification(new TskUnselectNotification(logic.getGame().getPlayers().get(msg.getId()).getColor())); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/NetworkDialogState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/NetworkDialogState.java index a5ef0cba..a6a206d6 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/NetworkDialogState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/NetworkDialogState.java @@ -53,6 +53,8 @@ public void selectLeave() { */ @Override public void received(LobbyAcceptMessage msg) { + logic.getGame().setHost(msg.getHost()); + logic.setHost(logic.getGame().isHost()); parent.setState(parent.getLobby()); logic.addNotification(new LobbyDialogNotification()); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/StartDialogState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/StartDialogState.java index 618387d2..6c49408b 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/StartDialogState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/StartDialogState.java @@ -32,30 +32,6 @@ public void enter() { public void exit() { } - /** - * Select the join option - * - * @param name the name - */ - @Override - public void selectJoin(String name) { - parent.setOwnPlayerName(name); - parent.setState(parent.getNetworkDialog()); - logic.setHost(false); - } - - /** - * Select the host option - * - * @param name the name - */ - @Override - public void selectHost(String name) { - parent.setOwnPlayerName(name); - parent.setState(parent.getLobby()); - logic.setHost(true); - } - /** * Set the name * @@ -63,8 +39,8 @@ public void selectHost(String name) { */ @Override public void setName(String name) { + logic.setOwnPlayerName(name); parent.setState(parent.getNetworkDialog()); - parent.setOwnPlayerName(name); } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java index e6a98522..59cba3ec 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java @@ -34,7 +34,7 @@ public void selectDice(){ @Override public void received(DieMessage msg){ - logic.addNotification(new RollDiceNotification(logic.getGame().getPlayerById(logic.getDialogs().getOwnPlayerId()).getColor(), msg.getDiceEye(),true)); + logic.addNotification(new RollDiceNotification(logic.getGame().getPlayerById(logic.getOwnPlayerId()).getColor(), msg.getDiceEye(),true)); parent.setState(parent.getWaitRanking()); } }