mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 20:41:58 -08:00
add more methods + refactored some packages
This commit is contained in:
parent
95e9623186
commit
72a301d604
83 changed files with 693 additions and 268 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue