* Fixed a cleanup problem that locked the game at game end. Minor formattings and cleanup additions.

This commit is contained in:
LevelX2 2014-02-11 00:38:10 +01:00
parent e672e63736
commit 753ada0a01
13 changed files with 86 additions and 39 deletions

View file

@ -88,6 +88,8 @@ public class DraftSession {
}
}
// not used
//
public void inform(final String message) {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);

View file

@ -689,6 +689,7 @@ public class GameController implements GameCallback {
@Override
public void gameResult(String result) {
try {
logger.warn("Game Result: " + result);
endGame(result);
} catch (MageException ex) {
logger.fatal("Game Result error", ex);

View file

@ -38,6 +38,7 @@ import org.apache.log4j.Logger;
import java.rmi.RemoteException;
import java.util.UUID;
import mage.game.GameState;
import mage.game.match.Match;
import mage.view.GameEndView;
@ -75,7 +76,16 @@ public class GameWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameUpdate", game.getId(), getGameView()));
logger.warn("before gameUpdate");
GameView gameView = getGameView();
logger.warn("after View");
UUID id = game.getId();
logger.warn("after ID");
ClientCallback clientCallback = new ClientCallback("gameUpdate", id, gameView);
logger.warn("callback obj");
user.fireCallback(clientCallback);
// user.fireCallback(new ClientCallback("gameUpdate", game.getId(), getGameView()));
logger.warn("after gameUpdate");
}
}
}
@ -126,7 +136,13 @@ public class GameWatcher {
}
public GameView getGameView() {
return new GameView(game.getState(), game, this.isPlayer);
logger.warn("start getGameView");
GameState gameState = game.getState();
logger.warn("start afterState");
GameView gameView = new GameView(gameState, game, this.isPlayer);
// return new GameView(game.getState(), game, this.isPlayer);
logger.warn("after getGameView");
return gameView;
}
public GameEndView getGameEndView(UUID playerId, Match match) {

View file

@ -59,6 +59,7 @@ public class GameWorker implements Callable {
game.start(choosingPlayerId);
game.fireUpdatePlayersEvent();
result.gameResult(game.getWinner());
game.cleanUp();
} catch (MageException ex) {
logger.fatal("GameWorker error ", ex);
}