From e3d5d8e2e90e38a3ab86e6f409f7e5ac3dfd990e Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Sat, 23 Nov 2024 12:26:20 +0100 Subject: [PATCH] added message contents to the messages addedn the conentents for all messages regarding the BPMN diagramm and own interpretation. also created an identifier for pieces to be used for network communication between server and client so that they talk about the same piece. --- .../src/main/java/pp.mdga/game/Game.java | 13 ++++++ .../src/main/java/pp.mdga/game/Piece.java | 13 +++++- .../main/java/pp.mdga/game/PlayerData.java | 2 +- .../pp.mdga/message/client/RequestMove.java | 21 ++++++++- .../message/client/RequestPlayCard.java | 21 ++++++++- .../pp.mdga/message/client/SelectCard.java | 13 ++++++ .../pp.mdga/message/client/SelectTSK.java | 13 ++++++ .../message/client/SelectedPieces.java | 19 ++++++++ .../pp.mdga/message/server/ActivePlayer.java | 19 ++++++++ .../java/pp.mdga/message/server/AnyPiece.java | 25 ++++++++++ .../java/pp.mdga/message/server/Dice.java | 46 +++++++++++++++++++ .../message/server/LobbyPlayerJoin.java | 11 +++++ .../message/server/LobbyPlayerLeave.java | 18 ++++++++ .../pp.mdga/message/server/MoveMessage.java | 20 ++++++++ .../java/pp.mdga/message/server/PlayCard.java | 28 +++++++++++ .../pp.mdga/message/server/PossibleCard.java | 27 +++++++++++ .../pp.mdga/message/server/PossiblePiece.java | 34 ++++++++++++++ .../message/server/ReconnectBriefing.java | 12 +++++ .../pp.mdga/message/server/StartPiece.java | 11 +++++ .../pp.mdga/message/server/UpdateReady.java | 18 ++++++++ .../pp.mdga/message/server/UpdateTSK.java | 18 ++++++++ 21 files changed, 398 insertions(+), 4 deletions(-) diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/game/Game.java b/Projekte/mdga/model/src/main/java/pp.mdga/game/Game.java index 4e09869b..7807061f 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/game/Game.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/game/Game.java @@ -405,4 +405,17 @@ public void notifyObservers() { observer.update(); } } + + /** + * This method returns the piece through its identifier. + * + * @param identifier the identifier of the piece + * @return the piece + */ + public Piece getPieceThroughIdentifier(String identifier) { + String[] parts = identifier.split("-"); + Color color = Color.valueOf(parts[0]); + int index = Integer.parseInt(parts[1]); + return board.getPlayerData().get(color).getPieces()[index]; + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/game/Piece.java b/Projekte/mdga/model/src/main/java/pp.mdga/game/Piece.java index aef3f73f..96d4419b 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/game/Piece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/game/Piece.java @@ -7,6 +7,7 @@ public class Piece { private ShieldState shield; private PieceState state; private final Color color; + private final int id; /** * This constructor is used to create a new Piece @@ -14,10 +15,11 @@ public class Piece { * @param color the color of the piece * @param state the state of the piece */ - public Piece(Color color, PieceState state) { + public Piece(Color color, PieceState state, int id) { this.color = color; this.state = state; shield = ShieldState.NONE; + this.id = id; } /** @@ -82,4 +84,13 @@ public boolean isSuppressed() { public Color getColor() { return color; } + + /** + * This method is used to get the color of the piece + * + * @return the color of the piece + */ + public String getIdentifier() { + return color.toString() + "-" + id; + } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/game/PlayerData.java b/Projekte/mdga/model/src/main/java/pp.mdga/game/PlayerData.java index 7f2d48d2..c68bc8ff 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/game/PlayerData.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/game/PlayerData.java @@ -19,7 +19,7 @@ public PlayerData(Color color) { waitingArea = new Piece[4]; for (int i = 0; i < 4; i++) { homeNodes[i] = new HomeNode(); - pieces[i] = new Piece(color, PieceState.WAITING); + pieces[i] = new Piece(color, PieceState.WAITING, i); waitingArea[i] = pieces[i]; } } diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestMove.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestMove.java index 22bb9e45..48fd187d 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestMove.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestMove.java @@ -1,9 +1,28 @@ package pp.mdga.message.client; +import pp.mdga.game.Color; + public class RequestMove extends ClientMessage { + + private final String pieceIdentifier; + + /** Constructor for RequestMove + * @param pieceIdentifier the piece identifier + */ + public RequestMove(String pieceIdentifier) { + this.pieceIdentifier = pieceIdentifier; + } + + /** Getter for the piece identifier + * @return the piece identifier + */ + public String getPieceIdentifier() { + return pieceIdentifier; + } + @Override public String toString() { - return "null"; + return pieceIdentifier; } @Override diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestPlayCard.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestPlayCard.java index 48be71b7..67885e0f 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestPlayCard.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/RequestPlayCard.java @@ -1,9 +1,28 @@ package pp.mdga.message.client; +import pp.mdga.game.BonusCard; + public class RequestPlayCard extends ClientMessage { + + private final BonusCard card; + private final String pieceIdentifier; + + public RequestPlayCard(BonusCard card, String pieceIdentifier) { + this.pieceIdentifier = pieceIdentifier; + this.card = card; + } + + public BonusCard getCard() { + return card; + } + + public String getPieceIdentifier() { + return pieceIdentifier; + } + @Override public String toString() { - return "null"; + return card.toString(); } @Override diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectCard.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectCard.java index ece2ffae..44957a6c 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectCard.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectCard.java @@ -1,6 +1,19 @@ package pp.mdga.message.client; +import pp.mdga.game.BonusCard; + public class SelectCard extends ClientMessage { + + private final BonusCard card; + + public SelectCard(BonusCard card) { + this.card = card; + } + + public BonusCard getCard() { + return card; + } + @Override public String toString() { return "null"; diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectTSK.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectTSK.java index 222d07d4..02a5c4cf 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectTSK.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectTSK.java @@ -1,6 +1,19 @@ package pp.mdga.message.client; +import pp.mdga.game.Color; + public class SelectTSK extends ClientMessage { + + private final Color color; + + public SelectTSK(Color color) { + this.color = color; + } + + public Color getColor() { + return color; + } + @Override public String toString() { return "null"; diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectedPieces.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectedPieces.java index d8978857..50290e19 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectedPieces.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/client/SelectedPieces.java @@ -1,6 +1,25 @@ package pp.mdga.message.client; +import pp.mdga.game.Color; + public class SelectedPieces extends ClientMessage { + + private String pieceIdentifier; + + /** Constructor for SelectedPieces + * @param pieceIdentifier the piece identifier + */ + public SelectedPieces(String pieceIdentifier) { + this.pieceIdentifier = pieceIdentifier; + } + + /** Getter for the piece identifier + * @return the piece identifier + */ + public String getPieceIdentifier() { + return pieceIdentifier; + } + @Override public String toString() { return "null"; diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ActivePlayer.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ActivePlayer.java index 3ba4a9ce..e7c35daa 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ActivePlayer.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ActivePlayer.java @@ -1,6 +1,25 @@ package pp.mdga.message.server; +import pp.mdga.game.Color; + public class ActivePlayer extends ServerMessage { + + private Color color; + + /** Constructor for ActivePlayer + * @param color the color of the active player + */ + public ActivePlayer(Color color) { + this.color = color; + } + + /** Getter for the color of the active player + * @return the color of the active player + */ + public Color getColor() { + return color; + } + @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/AnyPiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/AnyPiece.java index 5b4ecdd4..42e3cec6 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/AnyPiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/AnyPiece.java @@ -1,6 +1,31 @@ package pp.mdga.message.server; +import java.util.ArrayList; + public class AnyPiece extends ServerMessage { + + private ArrayList piece; + + /** Constructor for AnyPiece + */ + public AnyPiece() { + piece = new ArrayList<>(); + } + + /** Add a piece to the list of pieces + * @param piece the piece to add + */ + public void addPiece(String piece) { + this.piece.add(piece); + } + + /** Getter for the list of pieces + * @return the list of pieces + */ + public ArrayList getPiece() { + return piece; + } + @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/Dice.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/Dice.java index f1725669..7330505f 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/Dice.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/Dice.java @@ -1,6 +1,52 @@ package pp.mdga.message.server; +import java.util.ArrayList; + public class Dice extends ServerMessage { + + private final int diceEye; + private final ArrayList moveablePieces; + + /** Constructor for Dice + * @param diceEye the eye of the dice + * @param moveablePieces the pieces that can be moved + */ + public Dice(int diceEye, ArrayList moveablePieces) { + this.diceEye = diceEye; + this.moveablePieces = moveablePieces; + } + + /** Constructor for inactivePlayer + * @param diceEye the eye of the dice + * @return a new Dice object + */ + public static Dice inactivePlayer(int diceEye) { + return new Dice(diceEye, null); + } + + /** Constructor for activePlayer + * @param diceEye the eye of the dice + * @param moveablePieces the pieces that can be moved + * @return a new Dice object + */ + public static Dice activePlayer(int diceEye, ArrayList moveablePieces) { + return new Dice(diceEye, moveablePieces); + } + + /** Getter for the eye of the dice + * @return the eye of the dice + */ + public int getDiceEye() { + return diceEye; + } + + /** Getter for the pieces that can be moved + * @return the pieces that can be moved + */ + public ArrayList getMoveablePieces() { + return moveablePieces; + } + @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerJoin.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerJoin.java index db6a9bff..5d686153 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerJoin.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerJoin.java @@ -1,6 +1,17 @@ package pp.mdga.message.server; public class LobbyPlayerJoin extends ServerMessage { + + private final String name; + + public LobbyPlayerJoin(String name) { + this.name = name; + } + + public String getName() { + return name; + } + @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerLeave.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerLeave.java index 73b7535a..4f4ab6a3 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerLeave.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/LobbyPlayerLeave.java @@ -1,6 +1,24 @@ package pp.mdga.message.server; +import pp.mdga.game.Color; + public class LobbyPlayerLeave extends ServerMessage { + + private final String name; + private final Color color; + + public LobbyPlayerLeave(String name, Color color) { + this.name = name; + this.color = color; + } + + public String getName() { + return name; + } + + public Color getColor() { + return color; + } @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/MoveMessage.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/MoveMessage.java index 9f1cfc18..4a7a3a39 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/MoveMessage.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/MoveMessage.java @@ -1,6 +1,26 @@ package pp.mdga.message.server; public class MoveMessage extends ServerMessage { + + private final String pieceIdentifier; + + /** + * @param identifier the identifier of the piece that should be moved + */ + public MoveMessage(String identifier) { + this.pieceIdentifier = identifier; + } + + /** + * @return the identifier of the piece that should be moved + */ + public String getIdentifier() { + return pieceIdentifier; + } + + /** + * @return the identifier of the piece that should be moved + */ @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PlayCard.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PlayCard.java index 4886ecae..4b5f61ae 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PlayCard.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PlayCard.java @@ -1,6 +1,34 @@ package pp.mdga.message.server; +import pp.mdga.game.BonusCard; + public class PlayCard extends ServerMessage { + + private final BonusCard card; + private final String pieceIdentifier; + + /** + * @param card the card that should be played + * @param pieceIdentifier the identifier of the piece that should be moved + */ + public PlayCard(BonusCard card, String pieceIdentifier) { + this.card = card; + this.pieceIdentifier = pieceIdentifier; + } + + /** + * @return the card that should be played + */ + public BonusCard getCard() { + return card; + } + + /** + * @return the identifier of the piece that should be moved + */ + public String getPieceIdentifier() { + return pieceIdentifier; + } @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossibleCard.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossibleCard.java index ec45f934..d543b3c6 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossibleCard.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossibleCard.java @@ -1,6 +1,33 @@ package pp.mdga.message.server; +import pp.mdga.game.BonusCard; + +import java.util.ArrayList; + public class PossibleCard extends ServerMessage { + + private ArrayList possibleCards; + + /** Constructor for PossibleCard + */ + public PossibleCard() { + possibleCards = new ArrayList<>(); + } + + /** Add a possible card to the list of possible cards + * @param card the possible card to add + */ + public void addPossibleCard(BonusCard card) { + this.possibleCards.add(card); + } + + /** Getter for the list of possible cards + * @return the list of possible cards + */ + public ArrayList getPossibleCards() { + return possibleCards; + } + @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossiblePiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossiblePiece.java index 5f0f2786..d85b9453 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossiblePiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/PossiblePiece.java @@ -1,6 +1,40 @@ package pp.mdga.message.server; +import java.util.ArrayList; + public class PossiblePiece extends ServerMessage { + + private final ArrayList possibleOwnPieces; + private final ArrayList possibleEnemyPieces; + + /** Constructor for PossiblePiece + */ + public PossiblePiece() { + possibleOwnPieces = new ArrayList<>(); + possibleEnemyPieces = new ArrayList<>(); + } + + /** Add a piece to the list of possible pieces + * @param piece the piece to add + */ + public void addOwnPossiblePiece(String piece) { + this.possibleOwnPieces.add(piece); + } + + /** Add a piece to the list of possible enemy pieces + * @param piece the piece to add + */ + public void addEnemyPossiblePiece(String piece) { + this.possibleEnemyPieces.add(piece); + } + + /** Getter for the list of possible pieces + * @return the list of possible pieces + */ + public ArrayList getPossiblePieces() { + return possibleOwnPieces; + } + @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ReconnectBriefing.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ReconnectBriefing.java index 9ba5ae73..7910e2c2 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ReconnectBriefing.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/ReconnectBriefing.java @@ -1,6 +1,18 @@ package pp.mdga.message.server; +import pp.mdga.game.Game; + public class ReconnectBriefing extends ServerMessage { + + private final Game game; + + public ReconnectBriefing(Game game) { + this.game = game; + } + + public Game getGame() { + return game; + } @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/StartPiece.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/StartPiece.java index 5d9131c2..902c467b 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/StartPiece.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/StartPiece.java @@ -1,6 +1,17 @@ package pp.mdga.message.server; public class StartPiece extends ServerMessage { + + private final String pieceIdentifier; + + public StartPiece(String pieceIdentifier) { + this.pieceIdentifier = pieceIdentifier; + } + + public String getPieceIdentifier() { + return pieceIdentifier; + } + @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateReady.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateReady.java index 95571da6..c7ad2593 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateReady.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateReady.java @@ -1,6 +1,24 @@ package pp.mdga.message.server; +import pp.mdga.game.Color; + public class UpdateReady extends ServerMessage { + + private final Color color; + private final boolean ready; + + public UpdateReady(Color color, boolean ready) { + this.color = color; + this.ready = ready; + } + + public Color getColor() { + return color; + } + + public boolean isReady() { + return ready; + } @Override public void accept(ServerInterpreter interpreter) { diff --git a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateTSK.java b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateTSK.java index 1cbf752d..c3d8e7fa 100644 --- a/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateTSK.java +++ b/Projekte/mdga/model/src/main/java/pp.mdga/message/server/UpdateTSK.java @@ -1,6 +1,24 @@ package pp.mdga.message.server; +import pp.mdga.game.Color; + public class UpdateTSK extends ServerMessage { + + private final String name; + private final Color color; + + public UpdateTSK(String name, Color color) { + this.name = name; + this.color = color; + } + + public String getName() { + return name; + } + + public Color getColor() { + return color; + } @Override public void accept(ServerInterpreter interpreter) {