send PlayerHandler in GameStart

This commit is contained in:
Johannes Schmelz
2024-11-25 22:11:35 +01:00
parent 4095d9e79d
commit 0e405d2f90
6 changed files with 16 additions and 42 deletions

View File

@@ -6,6 +6,7 @@ import java.util.ArrayList;
import java.util.List;
import pp.monopoly.game.server.Player;
import pp.monopoly.game.server.PlayerHandler;
import pp.monopoly.message.client.ClientMessage;
import pp.monopoly.message.server.BuyPropertyResponse;
import pp.monopoly.message.server.DiceResult;
@@ -52,7 +53,7 @@ public class ClientGameLogic implements ServerInterpreter, GameEventBroker {
/** The current state of the client game logic. */
private ClientState state = new LobbyState(this);
private List<Player> players;
private PlayerHandler playerHandler;
private BoardManager boardManager = new BoardManager();
@@ -94,8 +95,8 @@ public class ClientGameLogic implements ServerInterpreter, GameEventBroker {
state.entry();
}
public List<Player> getPlayers() {
return players;
public PlayerHandler getPlayerHandler() {
return playerHandler;
}
/**
@@ -255,7 +256,7 @@ public class ClientGameLogic implements ServerInterpreter, GameEventBroker {
*/
@Override
public void received(GameStart msg) {
players = msg.getPlayers();
playerHandler = msg.getPlayerHandler();
setState(new WaitForTurnState(this));
}

View File

@@ -40,8 +40,8 @@ public class Player implements FieldVisitor<Void>{
private int getOutOfJailCard;
private int fieldID;
private DiceResult rollResult;
private final PlayerHandler handler;
private PlayerState state = new LobbyState();
private transient final PlayerHandler handler;
private transient PlayerState state = new LobbyState();
/**
* Default constructor for serialization purposes.

View File

@@ -1,6 +1,5 @@
package pp.monopoly.game.server;
import java.util.LinkedList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -18,7 +17,7 @@ import pp.monopoly.model.LimitedLinkedList;
public class PlayerHandler {
private List<Player> players = new LimitedLinkedList<>(6);
private Set<Player> readyPlayers = new HashSet<>();
private ServerGameLogic logic;
private transient ServerGameLogic logic;
private Player hostPlayer;
private Player extra = null;

View File

@@ -204,7 +204,7 @@ public class ServerGameLogic implements ClientInterpreter {
if(playerHandler.allPlayersReady()) {
playerHandler.setStartBalance(startMoney);
for (Player p : playerHandler.getPlayers()) {
send(p, new GameStart(playerHandler.getPlayers()));
send(p, new GameStart(playerHandler));
}
playerHandler.randomOrder();
send(playerHandler.getPlayerAtIndex(0), new NextPlayerTurn());

View File

@@ -1,27 +1,25 @@
package pp.monopoly.message.server;
import java.util.List;
import com.jme3.network.serializing.Serializable;
import pp.monopoly.game.server.Player;
import pp.monopoly.game.server.PlayerHandler;
@Serializable
public class GameStart extends ServerMessage{
private List<Player> players;
private PlayerHandler playerHandler;
/**
* Default constructor for serialization purposes.
*/
private GameStart() { /* empty */ }
public GameStart(List<Player> players) {
this.players = players;
public GameStart(PlayerHandler playerHandler) {
this.playerHandler = playerHandler;
}
public List<Player> getPlayers() {
return players;
public PlayerHandler getPlayerHandler() {
return playerHandler;
}
@Override