added UpdateDeck + filled out callback method templates

This commit is contained in:
betasteward 2015-07-01 15:10:23 -04:00
parent 88e30ee6e1
commit 1d2108fe7f
16 changed files with 328 additions and 82 deletions

View file

@ -166,7 +166,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
private static final Preferences prefs = Preferences.userNodeForPackage(MageFrame.class);
private JLabel title;
private Rectangle titleRectangle;
private static final MageVersion version = new MageVersion(MageVersion.MAGE_VERSION_MAJOR, MageVersion.MAGE_VERSION_MINOR, MageVersion.MAGE_VERSION_PATCH, MageVersion.MAGE_VERSION_MINOR_PATCH, MageVersion.MAGE_VERSION_INFO);
private static final MageVersion version = MageVersion.getCurrent();
private UUID clientId;
private static MagePane activeFrame;
private static boolean liteMode = false;

View file

@ -51,6 +51,7 @@ public class MageVersion implements Serializable, Comparable<MageVersion> {
private final String minorPatch; // doesn't matter for compatibility
private String info = "";
private static MageVersion currentVersion = new MageVersion(MAGE_VERSION_MAJOR, MAGE_VERSION_MINOR, MAGE_VERSION_PATCH, MAGE_VERSION_MINOR_PATCH, MAGE_VERSION_INFO);
public MageVersion(int major, int minor, int patch, String minorPatch, String info) {
this.major = major;
@ -61,7 +62,7 @@ public class MageVersion implements Serializable, Comparable<MageVersion> {
}
public static MageVersion getCurrent() {
return new MageVersion(MAGE_VERSION_MAJOR, MAGE_VERSION_MINOR, MAGE_VERSION_PATCH, MAGE_VERSION_MINOR_PATCH, MAGE_VERSION_INFO);
return currentVersion;
}
public int getMajor() {

View file

@ -204,7 +204,11 @@ public class Client {
}
public void updateDeck(UUID tableId, DeckCardLists deckCardLists) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
try {
clientMessageHandler.updateDeck(tableId, deckCardLists);
} catch (Exception ex) {
logger.error("Error updating deck", ex);
}
}
public boolean sendFeedback(String title, String type, String message, String email) {

View file

@ -28,9 +28,13 @@ import mage.choices.Choice;
import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.ChatMessage;
import mage.view.DraftClientMessage;
import mage.view.DraftView;
import mage.view.GameClientMessage;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.TableClientMessage;
import mage.view.TournamentView;
import mage.view.UserRequestMessage;
import org.apache.log4j.Logger;
import org.mage.network.handlers.ExceptionHandler;
@ -40,6 +44,8 @@ import org.mage.network.handlers.server.ConnectionHandler;
import org.mage.network.handlers.server.HeartbeatHandler;
import org.mage.network.handlers.server.ServerRequestHandler;
import org.mage.network.interfaces.MageServer;
import org.mage.network.messages.MessageType;
import org.mage.network.messages.PingMessage;
import org.mage.network.messages.callback.ChatMessageCallback;
import org.mage.network.messages.callback.GameAskCallback;
import org.mage.network.messages.callback.GameChooseAbilityCallback;
@ -60,8 +66,6 @@ import org.mage.network.messages.callback.GameTargetCallback;
import org.mage.network.messages.callback.GameUpdateCallback;
import org.mage.network.messages.callback.InformClientCallback;
import org.mage.network.messages.callback.JoinedTableCallback;
import org.mage.network.messages.MessageType;
import org.mage.network.messages.PingMessage;
import org.mage.network.messages.callback.UserRequestDialogCallback;
/**
@ -293,5 +297,80 @@ public class Server {
if (ch != null)
ch.writeAndFlush(new GameErrorCallback(gameId, message)).addListener(WriteListener.getInstance());
}
public void showGameEndDialog(String sessionId, UUID gameId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void startDraft(String sessionId, UUID draftId, TableClientMessage tableClientMessage) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void draftInit(String sessionId, UUID draftId, DraftClientMessage draftClientMessage) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void draftUpdate(String sessionId, UUID draftId, DraftView draftView) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void draftInform(String sessionId, UUID draftId, DraftClientMessage draftClientMessage) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void draftOver(String sessionId, UUID draftId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void draftPick(String sessionId, UUID draftId, DraftClientMessage draftClientMessage) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void sideboard(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void construct(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void startTournament(String sessionId, UUID tournamentId, TableClientMessage tableClientMessage) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void showTournament(String sessionId, UUID tournamentId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void tournamentInit(String sessionId, UUID tournamentId, TournamentView tournamentView) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void tournamentUpdate(String sessionId, UUID tournamentId, TournamentView tournamentView) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void tournamentOver(String sessionId, UUID tournamentId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void watchGame(String sessionId, UUID gameId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void replayGame(String sessionId, UUID gameId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void replayInit(String sessionId, UUID gameId, GameView gameView) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void replayDone(String sessionId, UUID gameId, String result) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void replayUpdate(String sessionId, UUID gameId, GameView gameView) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View file

@ -16,9 +16,9 @@ import mage.view.TableView;
import mage.view.UserDataView;
import org.mage.network.handlers.WriteListener;
import org.mage.network.interfaces.MageClient;
import org.mage.network.messages.ClientMessage;
import org.mage.network.messages.requests.ChatMessageRequest;
import org.mage.network.messages.requests.ChatRoomIdRequest;
import org.mage.network.messages.ClientMessage;
import org.mage.network.messages.requests.CreateTableRequest;
import org.mage.network.messages.requests.GetRoomRequest;
import org.mage.network.messages.requests.JoinChatRequest;
@ -40,6 +40,7 @@ import org.mage.network.messages.requests.StartMatchRequest;
import org.mage.network.messages.requests.SubmitDeckRequest;
import org.mage.network.messages.requests.SwapSeatRequest;
import org.mage.network.messages.requests.TableWaitingRequest;
import org.mage.network.messages.requests.UpdateDeckRequest;
/**
*
@ -130,6 +131,10 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
return booleanQueue.take();
}
public void updateDeck(UUID tableId, DeckCardLists deckCardLists) throws Exception {
ctx.writeAndFlush(new UpdateDeckRequest(tableId, deckCardLists)).addListener(WriteListener.getInstance());
}
public void sendFeedback(String title, String type, String message, String email) {
ctx.writeAndFlush(new SendFeedbackRequest(title, type, message, email)).addListener(WriteListener.getInstance());
}

View file

@ -53,6 +53,8 @@ public interface MageServer {
void sendPlayerAction(PlayerAction playerAction, UUID gameId, String sessionId, Serializable data);
boolean submitDeck(String sessionId, UUID tableId, DeckCardLists deckList);
void updateDeck(String sessionId, UUID tableId, DeckCardLists deckList);
void pingTime(long milliSeconds, String sessionId);
}

View file

@ -0,0 +1,26 @@
package org.mage.network.messages.requests;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import mage.cards.decks.DeckCardLists;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class UpdateDeckRequest extends ServerRequest {
private final UUID tableId;
private final DeckCardLists deckCardLists;
public UpdateDeckRequest(UUID tableId, DeckCardLists deckCardLists) {
this.tableId = tableId;
this.deckCardLists = deckCardLists;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.updateDeck(ctx.channel().id().asLongText(), tableId, deckCardLists);
}
}

View file

@ -36,7 +36,6 @@ import java.util.HashSet;
import java.util.Locale;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import mage.interfaces.callback.ClientCallback;
import mage.view.ChatMessage;
import mage.view.ChatMessage.MessageColor;
import mage.view.ChatMessage.MessageType;
@ -120,7 +119,7 @@ public class ChatSession {
public boolean broadcastInfoToUser(User toUser, String message) {
if (clients.containsKey(toUser.getId())) {
toUser.fireCallback(new ClientCallback("chatMessage", chatId, new ChatMessage(null, message, timeFormatter.format(new Date()), MessageColor.BLUE, MessageType.USER_INFO, null)));
toUser.chatMessage(chatId, new ChatMessage(null, message, timeFormatter.format(new Date()), MessageColor.BLUE, MessageType.USER_INFO, null));
return true;
}
return false;
@ -128,11 +127,11 @@ public class ChatSession {
public boolean broadcastWhisperToUser(User fromUser, User toUser, String message) {
if (clients.containsKey(toUser.getId())) {
toUser.fireCallback(new ClientCallback("chatMessage", chatId,
new ChatMessage(new StringBuilder("Whisper from ").append(fromUser.getName()).toString(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER, SoundToPlay.PlayerWhispered)));
toUser.chatMessage(chatId,
new ChatMessage(new StringBuilder("Whisper from ").append(fromUser.getName()).toString(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER, SoundToPlay.PlayerWhispered));
if (clients.containsKey(fromUser.getId())) {
fromUser.fireCallback(new ClientCallback("chatMessage", chatId,
new ChatMessage(new StringBuilder("Whisper to ").append(toUser.getName()).toString(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER, null)));
fromUser.chatMessage(chatId,
new ChatMessage(new StringBuilder("Whisper to ").append(toUser.getName()).toString(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER, null));
return true;
}
}

View file

@ -73,11 +73,15 @@ import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.ChatMessage;
import mage.view.ChatMessage.MessageColor;
import mage.view.DraftClientMessage;
import mage.view.DraftView;
import mage.view.GameClientMessage;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.RoomView;
import mage.view.TableClientMessage;
import mage.view.TableView;
import mage.view.TournamentView;
import mage.view.UserDataView;
import mage.view.UserRequestMessage;
import org.apache.commons.lang3.StringEscapeUtils;
@ -332,18 +336,13 @@ public class ServerMain implements MageServer {
return ret;
}
// @Override
// public void updateDeck(final String sessionId, final UUID tableId, final DeckCardLists deckList) throws MageException, GameException {
// execute("updateDeck", sessionId, new Action() {
// @Override
// public void execute() throws MageException {
// UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
// TableManager.getInstance().updateDeck(userId, tableId, deckList);
// logger.trace("Session " + sessionId + " updated deck");
// }
// });
// }
//
@Override
public void updateDeck(final String sessionId, final UUID tableId, final DeckCardLists deckList) {
UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
TableManager.getInstance().updateDeck(userId, tableId, deckList);
logger.trace("Session " + sessionId + " updated deck");
}
@Override
public RoomView getRoom(UUID roomId) {
GamesRoom room = GamesRoomManager.getInstance().getRoom(roomId);
@ -1272,4 +1271,80 @@ public class ServerMain implements MageServer {
server.gameError(sessionId, gameId, message);
}
public void startDraft(String sessionId, UUID draftId, TableClientMessage tableClientMessage) {
server.startDraft(sessionId, draftId, tableClientMessage);
}
public void draftInit(String sessionId, UUID draftId, DraftClientMessage draftClientMessage) {
server.draftInit(sessionId, draftId, draftClientMessage);
}
public void draftUpdate(String sessionId, UUID draftId, DraftView draftView) {
server.draftUpdate(sessionId, draftId, draftView);
}
public void draftInform(String sessionId, UUID draftId, DraftClientMessage draftClientMessage) {
server.draftInform(sessionId, draftId, draftClientMessage);
}
public void draftOver(String sessionId, UUID draftId) {
server.draftOver(sessionId, draftId);
}
public void draftPick(String sessionId, UUID draftId, DraftClientMessage draftClientMessage) {
server.draftPick(sessionId, draftId, draftClientMessage);
}
public void sideboard(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
server.sideboard(sessionId, tableId, tableClientMessage);
}
public void construct(String sessionId, UUID tableId, TableClientMessage tableClientMessage) {
server.construct(sessionId, tableId, tableClientMessage);
}
public void startTournament(String sessionId, UUID tournamentId, TableClientMessage tableClientMessage) {
server.startTournament(sessionId, tournamentId, tableClientMessage);
}
public void showTournament(String sessionId, UUID tournamentId) {
server.showTournament(sessionId, tournamentId);
}
public void tournamentInit(String sessionId, UUID tournamentId, TournamentView tournamentView) {
server.tournamentInit(sessionId, tournamentId, tournamentView);
}
public void tournamentUpdate(String sessionId, UUID tournamentId, TournamentView tournamentView) {
server.tournamentUpdate(sessionId, tournamentId, tournamentView);
}
public void tournamentOver(String sessionId, UUID tournamentId) {
server.tournamentOver(sessionId, tournamentId);
}
public void showGameEndDialog(String sessionId, UUID gameId) {
server.showGameEndDialog(sessionId, gameId);
}
public void watchGame(String sessionId, UUID gameId) {
server.watchGame(sessionId, gameId);
}
public void replayGame(String sessionId, UUID gameId) {
server.replayGame(sessionId, gameId);
}
public void replayInit(String sessionId, UUID gameId, GameView gameView) {
server.replayInit(sessionId, gameId, gameView);
}
public void replayDone(String sessionId, UUID gameId, String result) {
server.replayDone(sessionId, gameId, result);
}
public void replayUpdate(String sessionId, UUID gameId, GameView gameView) {
server.replayUpdate(sessionId, gameId, gameView);
}
}

View file

@ -390,12 +390,21 @@ public class TableController {
return true;
}
public void updateDeck(UUID userId, DeckCardLists deckList) throws MageException {
public void updateDeck(UUID userId, DeckCardLists deckList) {
UUID playerId = userPlayerMap.get(userId);
if (table.getState() != TableState.SIDEBOARDING && table.getState() != TableState.CONSTRUCTING) {
return;
}
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("Update deck", "Error loading deck");
return;
}
updateDeck(userId, playerId, deck);
}
@ -427,7 +436,7 @@ public class TableController {
public boolean watchTable(UUID userId) {
if (table.isTournament()) {
UserManager.getInstance().getUser(userId).ccShowTournament(table.getTournament().getId());
UserManager.getInstance().getUser(userId).showTournament(table.getTournament().getId());
return true;
} else {
if (table.isTournamentSubTable() && !table.getTournament().getOptions().isWatchingAllowed()) {
@ -440,7 +449,7 @@ public class TableController {
if (userPlayerMap.get(userId) != null) {
return false;
}
return UserManager.getInstance().getUser(userId).ccWatchGame(match.getGame().getId());
return UserManager.getInstance().getUser(userId).watchGame(match.getGame().getId());
}
}
@ -646,7 +655,7 @@ public class TableController {
User user = UserManager.getInstance().getUser(entry.getKey());
if (user != null) {
logger.info(new StringBuilder("User ").append(user.getName()).append(" tournament started: ").append(tournament.getId()).append(" userId: ").append(user.getId()));
user.ccTournamentStarted(tournament.getId(), entry.getValue());
user.tournamentStarted(tournament.getId(), entry.getValue());
}
}
ServerMessagesUtil.getInstance().incTournamentsStarted();
@ -665,7 +674,7 @@ public class TableController {
User user = UserManager.getInstance().getUser(entry.getKey());
if (user != null) {
logger.info(new StringBuilder("User ").append(user.getName()).append(" draft started: ").append(draft.getId()).append(" userId: ").append(user.getId()));
user.ccDraftStarted(draft.getId(), entry.getValue());
user.draftStarted(draft.getId(), entry.getValue());
} else {
logger.fatal(new StringBuilder("Start draft user not found userId: ").append(entry.getKey()));
}
@ -678,7 +687,7 @@ public class TableController {
User user = UserManager.getInstance().getUser(entry.getKey());
int remaining = (int) futureTimeout.getDelay(TimeUnit.SECONDS);
if (user != null) {
user.ccSideboard(deck, table.getId(), remaining, options.isLimited());
user.sideboard(deck, table.getId(), remaining, options.isLimited());
}
break;
}

View file

@ -39,7 +39,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import mage.MageException;
import mage.cards.decks.Deck;
import mage.cards.decks.DeckCardLists;
import mage.constants.TableState;
@ -166,7 +165,7 @@ public class TableManager {
return true;
}
public void updateDeck(UUID userId, UUID tableId, DeckCardLists deckList) throws MageException {
public void updateDeck(UUID userId, UUID tableId, DeckCardLists deckList) {
if (controllers.containsKey(tableId)) {
controllers.get(tableId).updateDeck(userId, deckList);
}

View file

@ -43,7 +43,6 @@ import mage.choices.Choice;
import mage.constants.ManaType;
import mage.game.Table;
import mage.game.tournament.TournamentPlayer;
import mage.interfaces.callback.ClientCallback;
import mage.players.net.UserData;
import mage.players.net.UserGroup;
import mage.remote.DisconnectReason;
@ -56,10 +55,14 @@ import mage.server.tournament.TournamentSession;
import mage.server.util.SystemUtil;
import mage.view.AbilityPickerView;
import mage.view.CardsView;
import mage.view.ChatMessage;
import mage.view.DraftClientMessage;
import mage.view.DraftView;
import mage.view.GameClientMessage;
import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.TableClientMessage;
import mage.view.TournamentView;
import mage.view.UserRequestMessage;
import org.apache.log4j.Logger;
import org.mage.network.messages.MessageType;
@ -187,15 +190,15 @@ public class User {
return connectionTime;
}
public void fireCallback(final ClientCallback call) {
if (isConnected()) {
Session session = SessionManager.getInstance().getSession(sessionId);
if (session != null) {
// public void fireCallback(final ClientCallback call) {
// if (isConnected()) {
// Session session = SessionManager.getInstance().getSession(sessionId);
// if (session != null) {
//
// session.fireCallback(call);
}
}
}
// }
// }
// }
public void joinedTable(final UUID roomId, final UUID tableId, final UUID chatId, boolean owner, boolean tournament) {
// fireCallback(new ClientCallback("joinedTable", tableId, new TableClientMessage(roomId, tableId, isTournament)));
@ -275,29 +278,65 @@ public class User {
ServerMain.getInstance().gameError(sessionId, gameId, message);
}
public void ccDraftStarted(final UUID draftId, final UUID playerId) {
fireCallback(new ClientCallback("startDraft", draftId, new TableClientMessage(draftId, playerId)));
}
public void ccTournamentStarted(final UUID tournamentId, final UUID playerId) {
fireCallback(new ClientCallback("startTournament", tournamentId, new TableClientMessage(tournamentId, playerId)));
}
public void ccSideboard(final Deck deck, final UUID tableId, final int time, boolean limited) {
fireCallback(new ClientCallback("sideboard", tableId, new TableClientMessage(deck, tableId, time, limited)));
public void sideboard(final Deck deck, final UUID tableId, final int time, boolean limited) {
ServerMain.getInstance().sideboard(sessionId, tableId, new TableClientMessage(deck, tableId, time, limited));
sideboarding.put(tableId, deck);
}
public void ccConstruct(final Deck deck, final UUID tableId, final int time) {
fireCallback(new ClientCallback("construct", tableId, new TableClientMessage(deck, tableId, time)));
public void construct(final Deck deck, final UUID tableId, final int time) {
ServerMain.getInstance().construct(sessionId, tableId, new TableClientMessage(deck, tableId, time));
}
public void ccShowTournament(final UUID tournamentId) {
fireCallback(new ClientCallback("showTournament", tournamentId));
public void tournamentStarted(final UUID tournamentId, final UUID playerId) {
ServerMain.getInstance().startTournament(sessionId, tournamentId, new TableClientMessage(tournamentId, playerId));
}
public void ccShowGameEndDialog(final UUID gameId) {
fireCallback(new ClientCallback("showGameEndDialog", gameId));
public void showTournament(final UUID tournamentId) {
ServerMain.getInstance().showTournament(sessionId, tournamentId);
}
public void tournamentInit(UUID tournamentId, TournamentView tournamentView) {
ServerMain.getInstance().tournamentInit(sessionId, tournamentId, tournamentView);
}
public void tournamentUpdate(UUID tournamentId, TournamentView tournamentView) {
ServerMain.getInstance().tournamentUpdate(sessionId, tournamentId, tournamentView);
}
public void tournamentOver(UUID tournamentId, String message) {
ServerMain.getInstance().tournamentOver(sessionId, tournamentId);
}
public void showGameEndDialog(final UUID gameId) {
ServerMain.getInstance().showGameEndDialog(sessionId, gameId);
}
public void draftStarted(final UUID draftId, final UUID playerId) {
ServerMain.getInstance().startDraft(sessionId, draftId, new TableClientMessage(draftId, playerId));
}
public void draftInit(UUID draftId, DraftClientMessage draftClientMessage) {
ServerMain.getInstance().draftInit(sessionId, draftId, draftClientMessage);
}
public void draftUpdate(UUID draftId, DraftView draftView) {
ServerMain.getInstance().draftUpdate(sessionId, draftId, draftView);
}
public void draftInform(UUID draftId, DraftClientMessage draftClientMessage) {
ServerMain.getInstance().draftInform(sessionId, draftId, draftClientMessage);
}
public void draftOver(UUID draftId) {
ServerMain.getInstance().draftOver(sessionId, draftId);
}
public void draftPick(UUID draftId, DraftClientMessage draftClientMessage) {
ServerMain.getInstance().draftPick(sessionId, draftId, draftClientMessage);
}
public void chatMessage(UUID chatId, ChatMessage chatMessage) {
ServerMain.getInstance().sendChatMessage(sessionId, chatId, chatMessage);
}
public void showUserMessage(final String title, String message) {
@ -308,13 +347,25 @@ public class User {
ServerMain.getInstance().informClient(sessionId, title, message, MessageType.ERROR);
}
public boolean ccWatchGame(final UUID gameId) {
fireCallback(new ClientCallback("watchGame", gameId));
public boolean watchGame(final UUID gameId) {
ServerMain.getInstance().watchGame(sessionId, gameId);
return true;
}
public void ccReplayGame(final UUID gameId) {
fireCallback(new ClientCallback("replayGame", gameId));
public void replayGame(final UUID gameId) {
ServerMain.getInstance().replayGame(sessionId, gameId);
}
public void replayInit(UUID gameId, GameView gameView) {
ServerMain.getInstance().replayInit(sessionId, gameId, gameView);
}
public void replayDone(UUID gameId, String result) {
ServerMain.getInstance().replayDone(sessionId, gameId, result);
}
public void replayUpdate(UUID gameId, GameView gameView) {
ServerMain.getInstance().replayUpdate(sessionId, gameId, gameView);
}
public void sendPlayerUUID(final UUID gameId, final UUID data) {
@ -370,7 +421,7 @@ public class User {
for (Entry<UUID, UUID> entry : userTournaments.entrySet()) {
TournamentController tournamentController = TournamentManager.getInstance().getTournamentController(entry.getValue());
if (tournamentController != null) {
ccTournamentStarted(entry.getValue(), entry.getKey());
tournamentStarted(entry.getValue(), entry.getKey());
tournamentController.rejoin(entry.getKey());
}
}
@ -382,7 +433,7 @@ public class User {
}
for (Entry<UUID, DraftSession> entry : draftSessions.entrySet()) {
ccDraftStarted(entry.getValue().getDraftId(), entry.getKey());
draftStarted(entry.getValue().getDraftId(), entry.getKey());
entry.getValue().init();
entry.getValue().update();
}
@ -392,7 +443,7 @@ public class User {
}
for (Entry<UUID, Deck> entry : sideboarding.entrySet()) {
TableController controller = TableManager.getInstance().getController(entry.getKey());
ccSideboard(entry.getValue(), entry.getKey(), controller.getRemainingTime(), controller.getOptions().isLimited());
sideboard(entry.getValue(), entry.getKey(), controller.getRemainingTime(), controller.getOptions().isLimited());
}
}

View file

@ -35,7 +35,6 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import mage.game.draft.Draft;
import mage.interfaces.callback.ClientCallback;
import mage.server.User;
import mage.server.UserManager;
import mage.server.util.ThreadExecutor;
@ -74,7 +73,7 @@ public class DraftSession {
if (user != null) {
if (futureTimeout != null && !futureTimeout.isDone()) {
int remaining = (int) futureTimeout.getDelay(TimeUnit.SECONDS);
user.fireCallback(new ClientCallback("draftInit", draft.getId(), new DraftClientMessage(getDraftPickView(remaining))));
user.draftInit(draft.getId(), new DraftClientMessage(getDraftPickView(remaining)));
}
return true;
}
@ -86,7 +85,7 @@ public class DraftSession {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("draftUpdate", draft.getId(), getDraftView()));
user.draftUpdate(draft.getId(), getDraftView());
}
}
}
@ -97,7 +96,7 @@ public class DraftSession {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("draftInform", draft.getId(), new DraftClientMessage(getDraftView(), message)));
user.draftInform(draft.getId(), new DraftClientMessage(getDraftView(), message));
}
}
}
@ -106,7 +105,7 @@ public class DraftSession {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("draftOver", draft.getId()));
user.draftOver(draft.getId());
}
}
}
@ -116,7 +115,7 @@ public class DraftSession {
setupTimeout(timeout);
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("draftPick", draft.getId(), new DraftClientMessage(getDraftPickView(timeout))));
user.draftPick(draft.getId(), new DraftClientMessage(getDraftPickView(timeout)));
}
}
}

View file

@ -50,7 +50,7 @@ public class ReplayManager {
public void replayGame(UUID gameId, UUID userId) {
ReplaySession replaySession = new ReplaySession(gameId, userId);
replaySessions.put(gameId.toString() + userId.toString(), replaySession);
UserManager.getInstance().getUser(userId).ccReplayGame(gameId);
UserManager.getInstance().getUser(userId).replayGame(gameId);
}
public void startReplay(UUID gameId, UUID userId) {

View file

@ -31,7 +31,6 @@ package mage.server.game;
import java.util.UUID;
import mage.game.Game;
import mage.game.GameState;
import mage.interfaces.callback.ClientCallback;
import mage.server.User;
import mage.server.UserManager;
import mage.view.GameView;
@ -54,7 +53,7 @@ public class ReplaySession implements GameCallback {
replay.start();
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("replayInit", replay.getGame().getId(), new GameView(replay.next(), replay.getGame(), null, null)));
user.replayInit(replay.getGame().getId(), new GameView(replay.next(), replay.getGame(), null, null));
}
}
@ -81,7 +80,7 @@ public class ReplaySession implements GameCallback {
public void gameResult(final String result) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("replayDone", replay.getGame().getId(), result));
user.replayDone(replay.getGame().getId(), result);
}
ReplayManager.getInstance().endReplay(replay.getGame().getId(), userId);
}
@ -93,7 +92,7 @@ public class ReplaySession implements GameCallback {
else {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("replayUpdate", replay.getGame().getId(), new GameView(state, game, null, null)));
user.replayUpdate(replay.getGame().getId(), new GameView(state, game, null, null));
}
}
}

View file

@ -30,14 +30,12 @@ package mage.server.tournament;
import mage.cards.decks.Deck;
import mage.game.tournament.Tournament;
import mage.interfaces.callback.ClientCallback;
import mage.server.User;
import mage.server.UserManager;
import mage.server.util.ThreadExecutor;
import mage.view.TournamentView;
import org.apache.log4j.Logger;
import java.rmi.RemoteException;
import java.util.UUID;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
@ -70,7 +68,7 @@ public class TournamentSession {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("tournamentInit", tournament.getId(), getTournamentView()));
user.tournamentInit(tournament.getId(), getTournamentView());
return true;
}
}
@ -81,7 +79,7 @@ public class TournamentSession {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("tournamentUpdate", tournament.getId(), getTournamentView()));
user.tournamentUpdate(tournament.getId(), getTournamentView());
}
}
}
@ -90,7 +88,7 @@ public class TournamentSession {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
user.fireCallback(new ClientCallback("tournamentOver", tournament.getId(), message));
user.tournamentOver(tournament.getId(), message);
}
}
}
@ -101,7 +99,7 @@ public class TournamentSession {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
int remaining = (int) futureTimeout.getDelay(TimeUnit.SECONDS);
user.ccConstruct(tournament.getPlayer(playerId).getDeck(), tableId, remaining);
user.construct(tournament.getPlayer(playerId).getDeck(), tableId, remaining);
}
}
}