add more methods + refactored some packages

This commit is contained in:
betasteward 2015-06-25 21:32:05 -04:00
parent 95e9623186
commit 72a301d604
83 changed files with 693 additions and 268 deletions

View file

@ -73,6 +73,7 @@ import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.ChatMessage;
import mage.view.ChatMessage.MessageColor;
import mage.view.GameClientMessage;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.RoomView;
@ -83,7 +84,7 @@ import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.log4j.Logger;
import org.mage.network.Server;
import org.mage.network.interfaces.MageServer;
import org.mage.network.model.MessageType;
import org.mage.network.messages.MessageType;
/**
*
@ -321,20 +322,16 @@ public class ServerMain implements MageServer {
// }
// });
// }
//
// @Override
// public boolean submitDeck(final String sessionId, final UUID tableId, final DeckCardLists deckList) throws MageException, GameException {
// return executeWithResult("submitDeck", sessionId, new ActionWithBooleanResult() {
// @Override
// public Boolean execute() throws MageException {
// UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
// boolean ret = TableManager.getInstance().submitDeck(userId, tableId, deckList);
// logger.debug("Session " + sessionId + " submitted deck");
// return ret;
// }
// });
// }
//
@Override
public boolean submitDeck(final String sessionId, final UUID tableId, final DeckCardLists deckList) {
UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
boolean ret = TableManager.getInstance().submitDeck(userId, tableId, deckList);
if (ret)
logger.debug("Session " + sessionId + " submitted deck");
return ret;
}
// @Override
// public void updateDeck(final String sessionId, final UUID tableId, final DeckCardLists deckList) throws MageException, GameException {
// execute("updateDeck", sessionId, new Action() {
@ -1255,4 +1252,24 @@ public class ServerMain implements MageServer {
server.userRequestDialog(sessionId, gameId, userRequestMessage);
}
public void gameUpdate(String sessionId, UUID gameId, GameView view) {
server.gameUpdate(sessionId, gameId, view);
}
public void gameInform(String sessionId, UUID gameId, GameClientMessage message) {
server.gameInform(sessionId, gameId, message);
}
public void gameInformPersonal(String sessionId, UUID gameId, GameClientMessage message) {
server.gameInformPersonal(sessionId, gameId, message);
}
public void gameOver(String sessionId, UUID gameId, String message) {
server.gameOver(sessionId, gameId, message);
}
public void gameError(String sessionId, UUID gameId, String message) {
server.gameError(sessionId, gameId, message);
}
}

View file

@ -36,7 +36,7 @@ import mage.server.services.LogKeys;
import mage.server.services.impl.LogServiceImpl;
import mage.view.UserDataView;
import org.apache.log4j.Logger;
import org.mage.network.model.MessageType;
import org.mage.network.messages.MessageType;
/**
*

View file

@ -38,7 +38,6 @@ import java.util.concurrent.TimeUnit;
import mage.MageException;
import mage.cards.decks.Deck;
import mage.cards.decks.DeckCardLists;
import mage.cards.decks.InvalidDeckException;
import mage.constants.RangeOfInfluence;
import mage.constants.TableState;
import mage.game.Game;
@ -346,7 +345,7 @@ public class TableController {
}
}
public synchronized boolean submitDeck(UUID userId, DeckCardLists deckList) throws MageException {
public synchronized boolean submitDeck(UUID userId, DeckCardLists deckList) {
UUID playerId = userPlayerMap.get(userId);
if (table.isTournament()) {
TournamentPlayer player = tournament.getPlayer(playerId);
@ -370,7 +369,16 @@ public class TableController {
if (table.getState() != TableState.SIDEBOARDING && table.getState() != TableState.CONSTRUCTING) {
return false;
}
Deck deck = Deck.load(deckList, false, false);
User user = UserManager.getInstance().getUser(userId);
Deck deck;
try {
deck = Deck.load(deckList, false, false);
}
catch (GameException ex) {
logger.error("Error loading deck", ex);
user.showUserError("Submit deck", "Error loading deck");
return false;
}
if (table.getState() == TableState.SIDEBOARDING && table.getMatch() != null) {
MatchPlayer mPlayer = table.getMatch().getPlayer(playerId);
if (mPlayer != null) {
@ -378,7 +386,8 @@ public class TableController {
}
}
if (!ServerMain.getInstance().isTestMode() && !table.getValidator().validate(deck)) {
throw new InvalidDeckException("Invalid deck for this format", table.getValidator().getInvalid());
user.showUserError("Submit deck", table.getValidator().getInvalidMessage());
return false;
}
submitDeck(userId, playerId, deck);
return true;

View file

@ -33,7 +33,6 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map.Entry;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
@ -154,7 +153,7 @@ public class TableManager {
return false;
}
public boolean submitDeck(UUID userId, UUID tableId, DeckCardLists deckList) throws MageException {
public boolean submitDeck(UUID userId, UUID tableId, DeckCardLists deckList) {
if (controllers.containsKey(tableId)) {
return controllers.get(tableId).submitDeck(userId, deckList);
}

View file

@ -28,11 +28,9 @@
package mage.server;
import java.io.Serializable;
import mage.remote.DisconnectReason;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@ -47,6 +45,7 @@ import mage.game.Table;
import mage.game.tournament.TournamentPlayer;
import mage.interfaces.callback.ClientCallback;
import mage.players.net.UserData;
import mage.remote.DisconnectReason;
import mage.server.draft.DraftSession;
import mage.server.game.GameManager;
import mage.server.game.GameSessionPlayer;
@ -56,12 +55,13 @@ import mage.server.tournament.TournamentSession;
import mage.server.util.SystemUtil;
import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.GameClientMessage;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.TableClientMessage;
import mage.view.UserRequestMessage;
import org.apache.log4j.Logger;
import org.mage.network.model.MessageType;
import org.mage.network.messages.MessageType;
/**
@ -254,6 +254,26 @@ public class User {
ServerMain.getInstance().userRequestDialog(sessionId, gameId, userRequestMessage);
}
public void gameUpdate(UUID gameId, GameView view) {
ServerMain.getInstance().gameUpdate(sessionId, gameId, view);
}
public void gameInform(UUID gameId, GameClientMessage message) {
ServerMain.getInstance().gameInform(sessionId, gameId, message);
}
public void gameInformPersonal(UUID gameId, GameClientMessage message) {
ServerMain.getInstance().gameInformPersonal(sessionId, gameId, message);
}
public void gameOver(UUID gameId, String message) {
ServerMain.getInstance().gameOver(sessionId, gameId, message);
}
public void gameError(UUID gameId, String message) {
ServerMain.getInstance().gameError(sessionId, gameId, message);
}
public void ccDraftStarted(final UUID draftId, final UUID playerId) {
fireCallback(new ClientCallback("startDraft", draftId, new TableClientMessage(draftId, playerId)));
}
@ -280,13 +300,13 @@ public class User {
}
public void showUserMessage(final String title, String message) {
// List<String> messageData = new LinkedList<>();
// messageData.add(titel);
// messageData.add(message);
// fireCallback(new ClientCallback("showUserMessage", null, messageData ));
ServerMain.getInstance().informClient(sessionId, title, message, MessageType.INFORMATION);
}
public void showUserError(final String title, String message) {
ServerMain.getInstance().informClient(sessionId, title, message, MessageType.ERROR);
}
public boolean ccWatchGame(final UUID gameId) {
fireCallback(new ClientCallback("watchGame", gameId));
return true;

View file

@ -33,7 +33,6 @@ import java.util.Map;
import java.util.UUID;
import mage.game.Game;
import mage.game.Table;
import mage.interfaces.callback.ClientCallback;
import mage.players.Player;
import mage.server.User;
import mage.server.UserManager;
@ -78,7 +77,7 @@ public class GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameUpdate", game.getId(), getGameView()));
user.gameUpdate(game.getId(), getGameView());
}
}
}
@ -87,7 +86,7 @@ public class GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameInform", game.getId(), new GameClientMessage(getGameView(), message)));
user.gameInform(game.getId(), new GameClientMessage(getGameView(), message));
}
}
}
@ -96,7 +95,7 @@ public class GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameInformPersonal", game.getId(), new GameClientMessage(getGameView(), message)));
user.gameInformPersonal(game.getId(), new GameClientMessage(getGameView(), message));
}
}
}
@ -106,7 +105,7 @@ public class GameSessionWatcher {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.removeGameWatchInfo(game.getId());
user.fireCallback(new ClientCallback("gameOver", game.getId(), message));
user.gameOver(game.getId(), message);
}
}
}
@ -123,7 +122,7 @@ public class GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameError", game.getId(), message));
user.gameError(game.getId(), message);
}
}
}