added a bunch of game methods

This commit is contained in:
betasteward 2015-06-17 19:54:33 -04:00
parent 58e85df735
commit 55fea43f20
32 changed files with 1105 additions and 200 deletions

View file

@ -31,10 +31,12 @@ package mage.server;
import io.netty.channel.ChannelId;
import java.io.File;
import java.io.FilenameFilter;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
@ -45,6 +47,7 @@ import mage.cards.repository.CardRepository;
import mage.cards.repository.CardScanner;
import mage.cards.repository.ExpansionInfo;
import mage.cards.repository.ExpansionRepository;
import mage.choices.Choice;
import mage.constants.ManaType;
import mage.constants.PlayerAction;
import mage.constants.TableState;
@ -89,9 +92,12 @@ import mage.utils.ActionWithNullNegativeResult;
import mage.utils.ActionWithTableViewResult;
import mage.utils.CompressUtil;
import mage.utils.MageVersion;
import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.ChatMessage;
import mage.view.ChatMessage.MessageColor;
import mage.view.DraftPickView;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.MatchView;
import mage.view.RoomUsersView;
@ -99,6 +105,7 @@ import mage.view.RoomView;
import mage.view.TableView;
import mage.view.TournamentView;
import mage.view.UserDataView;
import mage.view.UserRequestMessage;
import mage.view.UserView;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.log4j.Logger;
@ -762,81 +769,81 @@ public class Main implements MageServer {
// return null;
// }
//
// @Override
// public void sendPlayerUUID(final UUID gameId, final String sessionId, final UUID data) throws MageException {
@Override
public void sendPlayerUUID(final UUID gameId, final String sessionId, final UUID data) {
// execute("sendPlayerUUID", sessionId, new Action() {
// @Override
// public void execute() {
// User user = SessionManager.getInstance().getUser(sessionId);
// if (user != null) {
//// logger.warn("sendPlayerUUID gameId=" + gameId + " sessionId=" + sessionId + " username=" + user.getName());
// user.sendPlayerUUID(gameId, data);
// } else {
// logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
// }
User user = SessionManager.getInstance().getUser(sessionId);
if (user != null) {
// logger.warn("sendPlayerUUID gameId=" + gameId + " sessionId=" + sessionId + " username=" + user.getName());
user.sendPlayerUUID(gameId, data);
} else {
logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
}
// }
// });
// }
//
// @Override
// public void sendPlayerString(final UUID gameId, final String sessionId, final String data) throws MageException {
}
@Override
public void sendPlayerString(final UUID gameId, final String sessionId, final String data) {
// execute("sendPlayerString", sessionId, new Action() {
// @Override
// public void execute() {
// User user = SessionManager.getInstance().getUser(sessionId);
// if (user != null) {
// user.sendPlayerString(gameId, data);
// } else {
// logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
// }
User user = SessionManager.getInstance().getUser(sessionId);
if (user != null) {
user.sendPlayerString(gameId, data);
} else {
logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
}
// }
// });
// }
//
// @Override
// public void sendPlayerManaType(final UUID gameId, final UUID playerId, final String sessionId, final ManaType data) throws MageException {
}
@Override
public void sendPlayerManaType(final UUID gameId, final UUID playerId, final String sessionId, final ManaType data) {
// execute("sendPlayerManaType", sessionId, new Action() {
// @Override
// public void execute() {
// User user = SessionManager.getInstance().getUser(sessionId);
// if (user != null) {
// user.sendPlayerManaType(gameId, playerId, data);
// } else {
// logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
// }
User user = SessionManager.getInstance().getUser(sessionId);
if (user != null) {
user.sendPlayerManaType(gameId, playerId, data);
} else {
logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
}
// }
// });
// }
//
// @Override
// public void sendPlayerBoolean(final UUID gameId, final String sessionId, final Boolean data) throws MageException {
}
@Override
public void sendPlayerBoolean(final UUID gameId, final String sessionId, final Boolean data) {
// execute("sendPlayerBoolean", sessionId, new Action() {
// @Override
// public void execute() {
// User user = SessionManager.getInstance().getUser(sessionId);
// if (user != null) {
// user.sendPlayerBoolean(gameId, data);
// } else {
// logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
// }
User user = SessionManager.getInstance().getUser(sessionId);
if (user != null) {
user.sendPlayerBoolean(gameId, data);
} else {
logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
}
// }
// });
// }
//
// @Override
// public void sendPlayerInteger(final UUID gameId, final String sessionId, final Integer data) throws MageException {
}
@Override
public void sendPlayerInteger(final UUID gameId, final String sessionId, final Integer data) {
// execute("sendPlayerInteger", sessionId, new Action() {
// @Override
// public void execute() {
// User user = SessionManager.getInstance().getUser(sessionId);
// if (user != null) {
// user.sendPlayerInteger(gameId, data);
// } else {
// logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
// }
User user = SessionManager.getInstance().getUser(sessionId);
if (user != null) {
user.sendPlayerInteger(gameId, data);
} else {
logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId);
}
// }
// });
// }
}
//
// @Override
// public DraftPickView sendCardPick(final UUID draftId, final String sessionId, final UUID cardPick, final Set<UUID> hiddenCards) throws MageException {
@ -1387,4 +1394,52 @@ public class Main implements MageServer {
server.gameStarted(sessionId, gameId, playerId);
}
public void initGame(String sessionId, UUID gameId, GameView gameView) {
server.initGame(sessionId, gameId, gameView);
}
void gameAsk(String sessionId, UUID gameId, GameView gameView, String question) {
server.gameAsk(sessionId, gameId, gameView, question);
}
void gameTarget(String sessionId, UUID gameId, GameView gameView, String question, CardsView cardView, Set<UUID> targets, boolean required, Map<String, Serializable> options) {
server.gameTarget(sessionId, gameId, gameView, question, cardView, targets, required, options);
}
void gameSelect(String sessionId, UUID gameId, GameView gameView, String message, Map<String, Serializable> options) {
server.gameSelect(sessionId, gameId, gameView, message, options);
}
void gameChooseAbility(String sessionId, UUID gameId, AbilityPickerView abilities) {
server.gameChooseAbility(sessionId, gameId, abilities);
}
void gameChoosePile(String sessionId, UUID gameId, String message, CardsView pile1, CardsView pile2) {
server.gameChoosePile(sessionId, gameId, message, pile1, pile2);
}
void gameChooseChoice(String sessionId, UUID gameId, Choice choice) {
server.gameChooseChoice(sessionId, gameId, choice);
}
void gamePlayMana(String sessionId, UUID gameId, GameView gameView, String message) {
server.gamePlayMana(sessionId, gameId, gameView, message);
}
void gamePlayXMana(String sessionId, UUID gameId, GameView gameView, String message) {
server.gamePlayXMana(sessionId, gameId, gameView, message);
}
void gameSelectAmount(String sessionId, UUID gameId, String message, int min, int max) {
server.gameSelectAmount(sessionId, gameId, message, min, max);
}
void endGameInfo(String sessionId, UUID gameId, GameEndView view) {
server.endGameInfo(sessionId, gameId, view);
}
void userRequestDialog(String sessionId, UUID gameId, UserRequestMessage userRequestMessage) {
server.userRequestDialog(sessionId, gameId, userRequestMessage);
}
}

View file

@ -27,6 +27,7 @@
*/
package mage.server;
import java.io.Serializable;
import mage.remote.DisconnectReason;
import java.util.ArrayList;
import java.util.Date;
@ -35,10 +36,12 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import mage.cards.decks.Deck;
import mage.choices.Choice;
import mage.constants.ManaType;
import mage.game.Table;
import mage.game.tournament.TournamentPlayer;
@ -51,7 +54,12 @@ import mage.server.tournament.TournamentController;
import mage.server.tournament.TournamentManager;
import mage.server.tournament.TournamentSession;
import mage.server.util.SystemUtil;
import mage.view.AbilityPickerView;
import mage.view.CardsView;
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;
@ -198,6 +206,54 @@ public class User {
Main.getInstance().gameStarted(sessionId, gameId, playerId);
}
public void initGame(UUID gameId, GameView gameView) {
Main.getInstance().initGame(sessionId, gameId, gameView);
}
public void gameAsk(UUID gameId, GameView gameView, String question) {
Main.getInstance().gameAsk(sessionId, gameId, gameView, question);
}
public void gameTarget(UUID gameId, GameView gameView, String question, CardsView cardView, Set<UUID> targets, boolean required, Map<String, Serializable> options) {
Main.getInstance().gameTarget(sessionId, gameId, gameView, question, cardView, targets, required, options);
}
public void gameSelect(UUID gameId, GameView gameView, String message, Map<String, Serializable> options) {
Main.getInstance().gameSelect(sessionId, gameId, gameView, message, options);
}
public void gameChooseAbility(UUID gameId, AbilityPickerView abilities) {
Main.getInstance().gameChooseAbility(sessionId, gameId, abilities);
}
public void gameChoosePile(UUID gameId, String message, CardsView pile1, CardsView pile2) {
Main.getInstance().gameChoosePile(sessionId, gameId, message, pile1, pile2);
}
public void gameChooseChoice(UUID gameId, Choice choice) {
Main.getInstance().gameChooseChoice(sessionId, gameId, choice);
}
public void gamePlayMana(UUID gameId, GameView gameView, String message) {
Main.getInstance().gamePlayMana(sessionId, gameId, gameView, message);
}
public void gamePlayXMana(UUID gameId, GameView gameView, String message) {
Main.getInstance().gamePlayXMana(sessionId, gameId, gameView, message);
}
public void gameSelectAmount(UUID gameId, String message, int min, int max) {
Main.getInstance().gameSelectAmount(sessionId, gameId, message, min, max);
}
public void endGameInfo(UUID gameId, GameEndView view) {
Main.getInstance().endGameInfo(sessionId, gameId, view);
}
public void userRequestDialog (UUID gameId, UserRequestMessage userRequestMessage) {
Main.getInstance().userRequestDialog(sessionId, gameId, userRequestMessage);
}
public void ccDraftStarted(final UUID draftId, final UUID playerId) {
fireCallback(new ClientCallback("startDraft", draftId, new TableClientMessage(draftId, playerId)));
}

View file

@ -84,7 +84,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameAsk", game.getId(), new GameClientMessage(getGameView(), question)));
// user.fireCallback(new ClientCallback("gameAsk", game.getId(), new GameClientMessage(getGameView(), question)));
user.gameAsk(game.getId(), getGameView(), question);
}
}
}
@ -93,7 +94,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameTarget", game.getId(), new GameClientMessage(getGameView(), question, cardView, targets, required, options)));
// user.fireCallback(new ClientCallback("gameTarget", game.getId(), new GameClientMessage(getGameView(), question, cardView, targets, required, options)));
user.gameTarget(game.getId(), getGameView(), question, cardView, targets, required, options);
}
}
}
@ -102,7 +104,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameSelect", game.getId(), new GameClientMessage(getGameView(), message, options)));
// user.fireCallback(new ClientCallback("gameSelect", game.getId(), new GameClientMessage(getGameView(), message, options)));
user.gameSelect(game.getId(), getGameView(), message, options);
}
}
}
@ -111,7 +114,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameChooseAbility", game.getId(), abilities));
// user.fireCallback(new ClientCallback("gameChooseAbility", game.getId(), abilities));
user.gameChooseAbility(game.getId(), abilities);
}
}
}
@ -120,7 +124,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameChoosePile", game.getId(), new GameClientMessage(message, pile1, pile2)));
// user.fireCallback(new ClientCallback("gameChoosePile", game.getId(), new GameClientMessage(message, pile1, pile2)));
user.gameChoosePile(game.getId(), message, pile1, pile2);
}
}
}
@ -129,7 +134,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameChooseChoice", game.getId(), new GameClientMessage(choice)));
// user.fireCallback(new ClientCallback("gameChooseChoice", game.getId(), new GameClientMessage(choice)));
user.gameChooseChoice(game.getId(), choice);
}
}
}
@ -138,7 +144,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gamePlayMana", game.getId(), new GameClientMessage(getGameView(), message)));
// user.fireCallback(new ClientCallback("gamePlayMana", game.getId(), new GameClientMessage(getGameView(), message)));
user.gamePlayMana(game.getId(), getGameView(), message);
}
}
}
@ -147,7 +154,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gamePlayXMana", game.getId(), new GameClientMessage(getGameView(), message)));
// user.fireCallback(new ClientCallback("gamePlayXMana", game.getId(), new GameClientMessage(getGameView(), message)));
user.gamePlayXMana(game.getId(), getGameView(), message);
}
}
}
@ -156,7 +164,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameSelectAmount", game.getId(), new GameClientMessage(message, min, max)));
// user.fireCallback(new ClientCallback("gameSelectAmount", game.getId(), new GameClientMessage(message, min, max)));
user.gameSelectAmount(game.getId(), message, min, max);
}
}
}
@ -165,7 +174,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("endGameInfo", game.getId(), getGameEndView(playerId, table)));
// user.fireCallback(new ClientCallback("endGameInfo", game.getId(), getGameEndView(playerId, table)));
user.endGameInfo(game.getId(), getGameEndView(playerId, table));
}
}
}
@ -193,7 +203,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
userRequestMessage.setGameId(game.getId());
userRequestMessage.setButton1("Accept", PlayerAction.ADD_PERMISSION_TO_ROLLBACK_TURN);
userRequestMessage.setButton2("Deny", PlayerAction.DENY_PERMISSON_TO_ROLLBACK_TURN);
requestedUser.fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage));
// requestedUser.fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage));
requestedUser.userRequestDialog(game.getId(), userRequestMessage);
}
}
}
@ -212,7 +223,8 @@ public class GameSessionPlayer extends GameSessionWatcher {
userRequestMessage.setGameId(game.getId());
userRequestMessage.setButton1("Accept", PlayerAction.ADD_PERMISSION_TO_SEE_HAND_CARDS);
userRequestMessage.setButton2("Reject", null);
user.fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage));
// user.fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage));
user.userRequestDialog(game.getId(), userRequestMessage);
}
}
}

View file

@ -66,7 +66,8 @@ public class GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("gameInit", game.getId(), getGameView()));
// user.fireCallback(new ClientCallback("gameInit", game.getId(), getGameView()));
user.initGame(game.getId(), getGameView());
return true;
}
}