merge dev into test #33
@@ -1,5 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="MdgaApp" type="Application" factoryName="Application" singleton="false" nameIsGenerated="true">
|
<configuration default="false" name="MdgaApp" type="Application" factoryName="Application" singleton="false" nameIsGenerated="true">
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH" value="temurin-20" />
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
|
||||||
<option name="MAIN_CLASS_NAME" value="pp.mdga.client.MdgaApp" />
|
<option name="MAIN_CLASS_NAME" value="pp.mdga.client.MdgaApp" />
|
||||||
<module name="Projekte.mdga.client.main" />
|
<module name="Projekte.mdga.client.main" />
|
||||||
<option name="VM_PARAMETERS" value="-Djava.util.logging.config.file=logging.properties -ea" />
|
<option name="VM_PARAMETERS" value="-Djava.util.logging.config.file=logging.properties -ea" />
|
||||||
@@ -14,4 +16,4 @@
|
|||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
</configuration>
|
</configuration>
|
||||||
</component>
|
</component>
|
||||||
@@ -144,6 +144,8 @@ private void initializeSerializables() {
|
|||||||
Serializer.registerClass(StartNode.class);
|
Serializer.registerClass(StartNode.class);
|
||||||
Serializer.registerClass(PlayerData.class);
|
Serializer.registerClass(PlayerData.class);
|
||||||
Serializer.registerClass(HomeNode.class);
|
Serializer.registerClass(HomeNode.class);
|
||||||
|
Serializer.registerClass(PlayerDataMessage.class);
|
||||||
|
Serializer.registerClass(StartBriefingMessage.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerListeners() {
|
private void registerListeners() {
|
||||||
|
|||||||
@@ -193,6 +193,16 @@ public void received(ServerStartGameMessage msg) {
|
|||||||
@Override
|
@Override
|
||||||
public void received(ShutdownMessage msg) {state.received(msg);}
|
public void received(ShutdownMessage msg) {state.received(msg);}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(StartBriefingMessage msg) {
|
||||||
|
state.received(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(PlayerDataMessage msg) {
|
||||||
|
state.received(msg);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void received(StartPieceMessage msg) {
|
public void received(StartPieceMessage msg) {
|
||||||
state.received(msg);
|
state.received(msg);
|
||||||
|
|||||||
@@ -183,6 +183,15 @@ public void received(WaitPieceMessage msg) {
|
|||||||
LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg);
|
LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(StartBriefingMessage msg) {
|
||||||
|
LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void received(PlayerDataMessage msg) {
|
||||||
|
LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg);
|
||||||
|
}
|
||||||
|
|
||||||
public void selectPiece(Piece piece) {
|
public void selectPiece(Piece piece) {
|
||||||
LOGGER.log(Level.DEBUG, "Selecting piece not allowed.");
|
LOGGER.log(Level.DEBUG, "Selecting piece not allowed.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,6 +144,16 @@ public void received(ServerStartGameMessage msg){
|
|||||||
currentState.received(msg);
|
currentState.received(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(PlayerDataMessage msg){
|
||||||
|
currentState.received(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(StartBriefingMessage msg){
|
||||||
|
currentState.received(msg);
|
||||||
|
}
|
||||||
|
|
||||||
public DialogStates getState() {
|
public DialogStates getState() {
|
||||||
return currentState;
|
return currentState;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,9 @@
|
|||||||
import pp.mdga.message.client.*;
|
import pp.mdga.message.client.*;
|
||||||
import pp.mdga.message.server.LobbyPlayerJoinedMessage;
|
import pp.mdga.message.server.LobbyPlayerJoinedMessage;
|
||||||
import pp.mdga.message.server.LobbyPlayerLeaveMessage;
|
import pp.mdga.message.server.LobbyPlayerLeaveMessage;
|
||||||
|
import pp.mdga.message.server.PlayerDataMessage;
|
||||||
import pp.mdga.message.server.ServerStartGameMessage;
|
import pp.mdga.message.server.ServerStartGameMessage;
|
||||||
|
import pp.mdga.message.server.StartBriefingMessage;
|
||||||
import pp.mdga.message.server.UpdateReadyMessage;
|
import pp.mdga.message.server.UpdateReadyMessage;
|
||||||
import pp.mdga.message.server.UpdateTSKMessage;
|
import pp.mdga.message.server.UpdateTSKMessage;
|
||||||
import pp.mdga.notification.*;
|
import pp.mdga.notification.*;
|
||||||
@@ -74,15 +76,24 @@ public void selectStart(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void received(ServerStartGameMessage msg){
|
public void received(StartBriefingMessage msg){
|
||||||
logic.getGame().setBoard(msg.getBoard());
|
logic.getGame().setBoard(msg.getBoard());
|
||||||
logic.addNotification(new GameNotification(logic.getGame().getPlayers().get(parent.getOwnPlayerId()).getColor()));
|
}
|
||||||
for(Map.Entry<Color, PlayerData> entry : msg.getBoard().getPlayerData().entrySet()){
|
|
||||||
List<UUID> pieceIds = new ArrayList<>();
|
public void received(PlayerDataMessage msg){
|
||||||
|
logic.getGame().getBoard().addPlayerData(msg.getColor(), msg.getPlayerData());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(ServerStartGameMessage msg){
|
||||||
|
logic.addNotification(new GameNotification(logic.getGame().getPlayerById(parent.getOwnPlayerId()).getColor()));
|
||||||
|
for (Map.Entry<Color, PlayerData> entry : logic.getGame().getBoard().getPlayerData().entrySet()) {
|
||||||
|
List<UUID> pieceList = new ArrayList<>();
|
||||||
for(Piece piece : entry.getValue().getPieces()){
|
for(Piece piece : entry.getValue().getPieces()){
|
||||||
pieceIds.add(piece.getUuid());
|
System.out.println(piece.getUuid());
|
||||||
|
pieceList.add(piece.getUuid());
|
||||||
}
|
}
|
||||||
logic.addNotification(new PlayerInGameNotification(entry.getKey(), pieceIds, logic.getGame().getPlayerByColor(entry.getKey()).getName()));
|
logic.addNotification(new PlayerInGameNotification(entry.getKey(), pieceList , logic.getGame().getPlayerByColor(entry.getKey()).getName()));
|
||||||
}
|
}
|
||||||
parent.startGame();
|
parent.startGame();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,34 +14,6 @@ public NetworkDialogState(ClientState parent, ClientGameLogic logic) {
|
|||||||
this.parent = (DialogsState) parent;
|
this.parent = (DialogsState) parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkIP(String IP){
|
|
||||||
String[] parts = IP.split("\\.");
|
|
||||||
|
|
||||||
// Step 2: Check if there are exactly 4 parts
|
|
||||||
if (parts.length != 4) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Step 3: Check each part for valid number
|
|
||||||
for (String part : parts) {
|
|
||||||
try {
|
|
||||||
// Step 4: Convert each part into a number
|
|
||||||
int num = Integer.parseInt(part);
|
|
||||||
|
|
||||||
// Step 5: Check whether the number lies in between 0 and 255
|
|
||||||
if (num < 0 || num > 255) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
// If parsing fails, it's not a valid number
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If all checks passed, return true
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enter() {
|
public void enter() {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package pp.mdga.message.server;
|
||||||
|
|
||||||
|
import com.jme3.network.serializing.Serializable;
|
||||||
|
import pp.mdga.game.Color;
|
||||||
|
import pp.mdga.game.PlayerData;
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
public class PlayerDataMessage extends ServerMessage{
|
||||||
|
|
||||||
|
private final PlayerData playerData;
|
||||||
|
private final Color color;
|
||||||
|
|
||||||
|
public PlayerDataMessage(PlayerData playerData, Color color){
|
||||||
|
super();
|
||||||
|
this.playerData = playerData;
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlayerDataMessage(){
|
||||||
|
this(null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ServerInterpreter interpreter) {
|
||||||
|
interpreter.received(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getInfoTextKey() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerData getPlayerData(){
|
||||||
|
return playerData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color getColor(){
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -214,4 +214,8 @@ public interface ServerInterpreter {
|
|||||||
* @param shutdownMessage the SelectTSK message received.
|
* @param shutdownMessage the SelectTSK message received.
|
||||||
*/
|
*/
|
||||||
void received(ShutdownMessage shutdownMessage);
|
void received(ShutdownMessage shutdownMessage);
|
||||||
|
|
||||||
|
void received(StartBriefingMessage msg);
|
||||||
|
|
||||||
|
void received(PlayerDataMessage msg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,28 +8,13 @@
|
|||||||
*/
|
*/
|
||||||
@Serializable
|
@Serializable
|
||||||
public class ServerStartGameMessage extends ServerMessage {
|
public class ServerStartGameMessage extends ServerMessage {
|
||||||
/**
|
|
||||||
* Create ServerStartGameMessage attributes.
|
|
||||||
*/
|
|
||||||
private final Board board;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a new ServerStartGame instance.
|
* Constructs a new ServerStartGame instance.
|
||||||
*/
|
*/
|
||||||
public ServerStartGameMessage() {
|
public ServerStartGameMessage() {
|
||||||
super();
|
super();
|
||||||
this.board = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param board as the complete board of this game as a Board object.
|
|
||||||
*/
|
|
||||||
public ServerStartGameMessage(Board board) {
|
|
||||||
this.board = board;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Accepts a visitor to process this message.
|
* Accepts a visitor to process this message.
|
||||||
*
|
*
|
||||||
@@ -40,15 +25,6 @@ public void accept(ServerInterpreter interpreter) {
|
|||||||
interpreter.received(this);
|
interpreter.received(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This method will be used to return board attribute of ServerStartGameMessage class.
|
|
||||||
*
|
|
||||||
* @return board as a Board object.
|
|
||||||
*/
|
|
||||||
public Board getBoard() {
|
|
||||||
return this.board;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a string representation of this message.
|
* Returns a string representation of this message.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package pp.mdga.message.server;
|
||||||
|
|
||||||
|
import com.jme3.network.serializing.Serializable;
|
||||||
|
import pp.mdga.game.Board;
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
public class StartBriefingMessage extends ServerMessage {
|
||||||
|
|
||||||
|
private final Board board;
|
||||||
|
|
||||||
|
public StartBriefingMessage(Board board) {
|
||||||
|
super();
|
||||||
|
this.board = board;
|
||||||
|
}
|
||||||
|
|
||||||
|
private StartBriefingMessage() {
|
||||||
|
this(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Board getBoard() {
|
||||||
|
return this.board;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(ServerInterpreter interpreter) {
|
||||||
|
interpreter.received(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getInfoTextKey() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
import pp.mdga.message.server.*;
|
import pp.mdga.message.server.*;
|
||||||
import pp.mdga.server.ServerGameLogic;
|
import pp.mdga.server.ServerGameLogic;
|
||||||
|
|
||||||
import java.lang.foreign.StructLayout;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -126,8 +125,12 @@ public void received(LobbyReadyMessage msg, int from) {
|
|||||||
|
|
||||||
this.logic.getGame().setAllReady(true);
|
this.logic.getGame().setAllReady(true);
|
||||||
if (this.logic.getGame().allReady()) {
|
if (this.logic.getGame().allReady()) {
|
||||||
|
this.logic.getServerSender().broadcast(new StartBriefingMessage(this.logic.getGame().getBoard()));
|
||||||
this.initializeGame();
|
this.initializeGame();
|
||||||
this.logic.getServerSender().broadcast(new ServerStartGameMessage(this.logic.getGame().getBoard()));
|
for (Map.Entry<Color, PlayerData> entry : logic.getGame().getBoard().getPlayerData().entrySet()) {
|
||||||
|
this.logic.getServerSender().broadcast(new PlayerDataMessage(entry.getValue(), entry.getKey()));
|
||||||
|
}
|
||||||
|
this.logic.getServerSender().broadcast(new ServerStartGameMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,7 +176,7 @@ public void received(LeaveGameMessage msg, int from) {
|
|||||||
public void received(StartGameMessage msg, int from) {
|
public void received(StartGameMessage msg, int from) {
|
||||||
if (msg.isForceStartGame() || this.logic.getGame().allReady()) {
|
if (msg.isForceStartGame() || this.logic.getGame().allReady()) {
|
||||||
this.initializeGame();
|
this.initializeGame();
|
||||||
this.logic.getServerSender().broadcast(new ServerStartGameMessage(this.logic.getGame().getBoard()));
|
this.logic.getServerSender().broadcast(new ServerStartGameMessage());
|
||||||
this.logic.setCurrentState(this.logic.getGameState());
|
this.logic.setCurrentState(this.logic.getGameState());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user