added watch game methods

This commit is contained in:
betasteward 2015-07-11 07:40:06 -04:00
parent 8225a4080c
commit 4bb7ffd452
22 changed files with 235 additions and 114 deletions

View file

@ -330,7 +330,11 @@ public class Client {
}
public void watchTournamentTable(UUID tableId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
try {
clientMessageHandler.watchTournamentTable(tableId);
} catch (Exception ex) {
logger.error("Error watching tournament table", ex);
}
}
public UUID getTournamentChatId(UUID tournamentId) {
@ -369,7 +373,11 @@ public class Client {
}
public void watchTable(UUID roomId, UUID tableId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
try {
clientMessageHandler.watchTable(roomId, tableId);
} catch (Exception ex) {
logger.error("Error watching table", ex);
}
}
public void replayGame(UUID gameId) {
@ -416,16 +424,16 @@ public class Client {
return null;
}
public UUID watchGame(UUID gameId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public boolean startReplay(UUID gameId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void stopWatching(UUID gameId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
try {
clientMessageHandler.stopWatching(gameId);
} catch (Exception ex) {
logger.error("Error stopping watching game", ex);
}
}
public void stopReplay(UUID gameId) {

View file

@ -75,6 +75,7 @@ import org.mage.network.messages.callback.SideboardCallback;
import org.mage.network.messages.callback.StartDraftCallback;
import org.mage.network.messages.callback.TournamentStartedCallback;
import org.mage.network.messages.callback.UserRequestDialogCallback;
import org.mage.network.messages.callback.WatchGameCallback;
/**
*
@ -364,8 +365,10 @@ public class Server {
ch.writeAndFlush(new ShowTournamentCallback(tournamentId)).addListener(WriteListener.getInstance());
}
public void watchGame(String sessionId, UUID gameId) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
public void watchGame(String sessionId, UUID gameId, UUID chatId, GameView game) {
Channel ch = findChannel(sessionId);
if (ch != null)
ch.writeAndFlush(new WatchGameCallback(gameId, chatId, game)).addListener(WriteListener.getInstance());
}
public void replayGame(String sessionId, UUID gameId) {

View file

@ -1,12 +1,5 @@
package org.mage.network.handlers.client;
import org.mage.network.messages.requests.GetTournamentChatIdRequest;
import org.mage.network.messages.requests.GetTournamentRequest;
import org.mage.network.messages.requests.JoinTournamentRequest;
import org.mage.network.messages.requests.StartTournamentRequest;
import org.mage.network.messages.requests.CreateTournamentRequest;
import org.mage.network.messages.requests.QuitTournamentRequest;
import org.mage.network.messages.requests.QuitMatchRequest;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import java.io.Serializable;
@ -31,11 +24,15 @@ 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.requests.CreateTableRequest;
import org.mage.network.messages.requests.CreateTournamentRequest;
import org.mage.network.messages.requests.GetRoomRequest;
import org.mage.network.messages.requests.GetTournamentChatIdRequest;
import org.mage.network.messages.requests.GetTournamentRequest;
import org.mage.network.messages.requests.JoinChatRequest;
import org.mage.network.messages.requests.JoinDraftRequest;
import org.mage.network.messages.requests.JoinGameRequest;
import org.mage.network.messages.requests.JoinTableRequest;
import org.mage.network.messages.requests.JoinTournamentRequest;
import org.mage.network.messages.requests.JoinTournamentTableRequest;
import org.mage.network.messages.requests.LeaveChatRequest;
import org.mage.network.messages.requests.LeaveTableRequest;
@ -43,6 +40,8 @@ import org.mage.network.messages.requests.MarkCardRequest;
import org.mage.network.messages.requests.PickCardRequest;
import org.mage.network.messages.requests.PlayerActionRequest;
import org.mage.network.messages.requests.QuitDraftRequest;
import org.mage.network.messages.requests.QuitMatchRequest;
import org.mage.network.messages.requests.QuitTournamentRequest;
import org.mage.network.messages.requests.RemoveTableRequest;
import org.mage.network.messages.requests.SendFeedbackRequest;
import org.mage.network.messages.requests.SendPlayerBooleanRequest;
@ -53,10 +52,14 @@ import org.mage.network.messages.requests.SendPlayerUUIDRequest;
import org.mage.network.messages.requests.ServerMessagesRequest;
import org.mage.network.messages.requests.SetPreferencesRequest;
import org.mage.network.messages.requests.StartMatchRequest;
import org.mage.network.messages.requests.StartTournamentRequest;
import org.mage.network.messages.requests.StopWatchingRequest;
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;
import org.mage.network.messages.requests.WatchTableRequest;
import org.mage.network.messages.requests.WatchTournamentTableRequest;
/**
*
@ -301,4 +304,16 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
return tournamentViewQueue.take();
}
public void watchTournamentTable(UUID tableId) {
ctx.writeAndFlush(new WatchTournamentTableRequest(tableId)).addListener(WriteListener.getInstance());
}
public void watchTable(UUID roomId, UUID tableId) {
ctx.writeAndFlush(new WatchTableRequest(roomId, tableId)).addListener(WriteListener.getInstance());
}
public void stopWatching(UUID gameId) {
ctx.writeAndFlush(new StopWatchingRequest(gameId)).addListener(WriteListener.getInstance());
}
}

View file

@ -71,4 +71,5 @@ public interface MageClient {
void showTournament(UUID tournamentId);
void tournamentStarted(UUID tournamentId);
void watchGame(UUID gameId, UUID chatId, GameView game);
}

View file

@ -73,6 +73,10 @@ public interface MageServer {
boolean joinTournament(UUID tournamentId, String sessionId);
void quitTournament(UUID tournamentId, String sessionId);
void watchTable(String sessionId, UUID roomId, UUID tableId);
void watchTournamentTable(String sessionId, UUID tableId);
void stopWatching(UUID gameId, String sessionId);
void pingTime(long milliSeconds, String sessionId);
}

View file

@ -0,0 +1,28 @@
package org.mage.network.messages.callback;
import java.util.UUID;
import mage.view.GameView;
import org.mage.network.handlers.client.ClientMessageHandler;
import org.mage.network.messages.ClientMessage;
/**
*
* @author BetaSteward
*/
public class WatchGameCallback extends ClientMessage {
private final UUID gameId;
private final UUID chatId;
private final GameView game;
public WatchGameCallback(UUID gameId, UUID chatId, GameView game) {
this.gameId = gameId;
this.chatId = chatId;
this.game = game;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.getClient().watchGame(gameId, chatId, game);
}
}

View file

@ -0,0 +1,23 @@
package org.mage.network.messages.requests;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class StopWatchingRequest extends ServerRequest {
private final UUID gameId;
public StopWatchingRequest(UUID gameId) {
this.gameId = gameId;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.stopWatching(gameId, getSessionId(ctx));
}
}

View file

@ -0,0 +1,25 @@
//package org.mage.network.messages.requests;
//
//import io.netty.channel.ChannelHandlerContext;
//import java.util.UUID;
//import org.mage.network.handlers.WriteListener;
//import org.mage.network.interfaces.MageServer;
//import org.mage.network.messages.responses.UUIDResponse;
//
///**
// *
// * @author BetaSteward
// */
//public class WatchGameRequest extends ServerRequest {
// private final UUID gameId;
//
// public WatchGameRequest(UUID gameId) {
// this.gameId = gameId;
// }
//
// @Override
// public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
// ctx.writeAndFlush(new UUIDResponse(server.watchGame(gameId, getSessionId(ctx)))).addListener(WriteListener.getInstance());
// }
//
//}

View file

@ -0,0 +1,25 @@
package org.mage.network.messages.requests;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class WatchTableRequest extends ServerRequest {
private final UUID roomId;
private final UUID tableId;
public WatchTableRequest(UUID roomId, UUID tableId) {
this.roomId = roomId;
this.tableId = tableId;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.watchTable(getSessionId(ctx), roomId, tableId);
}
}

View file

@ -0,0 +1,23 @@
package org.mage.network.messages.requests;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class WatchTournamentTableRequest extends ServerRequest {
private final UUID tableId;
public WatchTournamentTableRequest(UUID tableId) {
this.tableId = tableId;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.watchTournamentTable(getSessionId(ctx), tableId);
}
}