Updated: now the disconnected player before the crash are ignored for the game restarting
This commit is contained in:
@@ -42,7 +42,7 @@ public class Game implements Serializable {
|
||||
}
|
||||
|
||||
//TODO
|
||||
Map<Player,Boolean> disconnetedPlayers = new HashMap<>();
|
||||
public Map<Player,Boolean> disconnetedPlayers = new HashMap<>();
|
||||
//TODO
|
||||
public boolean DisconnectedPlayer(Player player)
|
||||
{
|
||||
|
||||
@@ -86,7 +86,7 @@ public class RMIServer extends UnicastRemoteObject implements IGameServer {
|
||||
clients.put(username, callback);
|
||||
System.out.println("Reconnected player: " + username);
|
||||
startWatchdog(username);
|
||||
callback.onGameInit(model);
|
||||
callback.onGameInit(controller.getModel());
|
||||
System.out.println("Model sent: " + username);
|
||||
actionQueue.add(new ReconnectPlayer(username));
|
||||
return true;
|
||||
@@ -112,7 +112,7 @@ public class RMIServer extends UnicastRemoteObject implements IGameServer {
|
||||
clients.put(username, callback);
|
||||
System.out.println("Reconnected player: " + username);
|
||||
startWatchdog(username);
|
||||
callback.onGameInit(model);
|
||||
callback.onGameInit(controller.getModel());
|
||||
System.out.println("Model sent: " + username);
|
||||
actionQueue.add(new ReconnectPlayer(username));
|
||||
return true;
|
||||
|
||||
@@ -139,6 +139,13 @@ public class ServerLauncher {
|
||||
ServerLauncher launcher = new ServerLauncher(actionQueue, gameController, serverRMI, serverTCP);
|
||||
if(gameController.getModel() != null){
|
||||
playerList.setLimit(gameController.getModel().getNPlayers());
|
||||
for(Map.Entry<Player,Boolean>entry: gameController.getModel().disconnetedPlayers.entrySet())
|
||||
{
|
||||
if(entry.getValue())
|
||||
{
|
||||
playerList.put(entry.getKey().getUserName(),false);
|
||||
}
|
||||
}
|
||||
serverCrashed = true;
|
||||
} else {
|
||||
serverCrashed = false;
|
||||
|
||||
Reference in New Issue
Block a user