added JoinTournamentTable + more refactoring

This commit is contained in:
betasteward 2015-07-01 22:53:22 -04:00
parent 1d2108fe7f
commit a316b01b15
21 changed files with 98 additions and 169 deletions

View file

@ -221,8 +221,13 @@ public class Client {
return false;
}
public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String human, int i, DeckCardLists importDeck, String text) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deck, String password) {
try {
return clientMessageHandler.joinTournamentTable(roomId, tableId, playerName, playerType, skill, deck, password);
} catch (Exception ex) {
logger.error("Error joining tournament table", ex);
}
return false;
}
public boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deck, String password) {

View file

@ -1,5 +1,6 @@
package org.mage.network.handlers.client;
import org.mage.network.messages.requests.JoinTournamentTableRequest;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import java.io.Serializable;
@ -107,6 +108,12 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
return booleanQueue.take();
}
public boolean joinTournamentTable(UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws Exception {
booleanQueue.clear();
ctx.writeAndFlush(new JoinTournamentTableRequest(roomId, tableId, name, playerType, skill, deckList, password)).addListener(WriteListener.getInstance());
return booleanQueue.take();
}
public boolean leaveTable(UUID roomId, UUID tableId) throws Exception {
booleanQueue.clear();
ctx.writeAndFlush(new LeaveTableRequest(roomId, tableId)).addListener(WriteListener.getInstance());

View file

@ -42,7 +42,8 @@ public interface MageServer {
boolean leaveTable(String sessionId, UUID roomId, UUID tableId);
void removeTable(String sessionId, UUID roomId, UUID tableId);
void swapSeats(String sessionId, UUID roomId, UUID tableId, int seatNum1, int seatNum2);
boolean joinTournamentTable(String sessionId, UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password);
boolean startMatch(String sessionId, UUID roomId, UUID tableId);
UUID joinGame(UUID gameId, String sessionId);
void sendPlayerUUID(UUID gameId, String sessionId, UUID data);

View file

@ -4,7 +4,7 @@ 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.ChatRoomIdResponse;
import org.mage.network.messages.responses.UUIDResponse;
/**
*
@ -20,7 +20,7 @@ public class ChatRoomIdRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new ChatRoomIdResponse(server.getRoomChatId(roomId))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new UUIDResponse(server.getRoomChatId(roomId))).addListener(WriteListener.getInstance());
}
}

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.game.match.MatchOptions;
import org.mage.network.handlers.WriteListener;
import org.mage.network.interfaces.MageServer;
import org.mage.network.messages.responses.CreateTableResponse;
import org.mage.network.messages.responses.TableViewResponse;
/**
*
@ -23,7 +23,7 @@ public class CreateTableRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new CreateTableResponse(server.createTable(ctx.channel().id().asLongText(), roomId, options))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new TableViewResponse(server.createTable(ctx.channel().id().asLongText(), roomId, options))).addListener(WriteListener.getInstance());
}
}

View file

@ -4,7 +4,7 @@ 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.JoinGameResponse;
import org.mage.network.messages.responses.UUIDResponse;
/**
*
@ -20,7 +20,7 @@ public class JoinGameRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new JoinGameResponse(server.joinGame(gameId, ctx.channel().id().asLongText()))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new UUIDResponse(server.joinGame(gameId, ctx.channel().id().asLongText()))).addListener(WriteListener.getInstance());
}
}

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.cards.decks.DeckCardLists;
import org.mage.network.handlers.WriteListener;
import org.mage.network.interfaces.MageServer;
import org.mage.network.messages.responses.JoinTableResponse;
import org.mage.network.messages.responses.BooleanResponse;
/**
*
@ -33,7 +33,7 @@ public class JoinTableRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new JoinTableResponse(server.joinTable(ctx.channel().id().asLongText(), roomId, tableId, name, playerType, skill, deckList, password))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new BooleanResponse(server.joinTable(ctx.channel().id().asLongText(), roomId, tableId, name, playerType, skill, deckList, password))).addListener(WriteListener.getInstance());
}
}

View file

@ -0,0 +1,38 @@
package org.mage.network.messages.requests;
import io.netty.channel.ChannelHandlerContext;
import java.util.UUID;
import mage.cards.decks.DeckCardLists;
import org.mage.network.handlers.WriteListener;
import org.mage.network.interfaces.MageServer;
import org.mage.network.messages.responses.BooleanResponse;
/**
*
* @author BetaSteward
*/
public class JoinTournamentTableRequest extends ServerRequest {
private final UUID roomId;
private final UUID tableId;
private final String name;
private final String playerType;
private final int skill;
private final DeckCardLists deckList;
private final String password;
public JoinTournamentTableRequest(UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) {
this.roomId = roomId;
this.tableId = tableId;
this.name = name;
this.playerType = playerType;
this.skill = skill;
this.deckList = deckList;
this.password = password;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new BooleanResponse(server.joinTournamentTable(ctx.channel().id().asLongText(), roomId, tableId, name, playerType, skill, deckList, password))).addListener(WriteListener.getInstance());
}
}

View file

@ -4,7 +4,7 @@ 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.LeaveTableResponse;
import org.mage.network.messages.responses.BooleanResponse;
/**
*
@ -22,7 +22,7 @@ public class LeaveTableRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new LeaveTableResponse(server.leaveTable(ctx.channel().id().asLongText(), roomId, tableId))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new BooleanResponse(server.leaveTable(ctx.channel().id().asLongText(), roomId, tableId))).addListener(WriteListener.getInstance());
}
}

View file

@ -4,7 +4,7 @@ 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.StartMatchResponse;
import org.mage.network.messages.responses.BooleanResponse;
/**
*
@ -22,7 +22,7 @@ public class StartMatchRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new StartMatchResponse(server.startMatch(ctx.channel().id().asLongText(), roomId, tableId))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new BooleanResponse(server.startMatch(ctx.channel().id().asLongText(), roomId, tableId))).addListener(WriteListener.getInstance());
}
}

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.cards.decks.DeckCardLists;
import org.mage.network.handlers.WriteListener;
import org.mage.network.interfaces.MageServer;
import org.mage.network.messages.responses.SubmitDeckResponse;
import org.mage.network.messages.responses.BooleanResponse;
/**
*
@ -22,7 +22,7 @@ public class SubmitDeckRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new SubmitDeckResponse(server.submitDeck(ctx.channel().id().asLongText(), tableId, deckCardLists))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new BooleanResponse(server.submitDeck(ctx.channel().id().asLongText(), tableId, deckCardLists))).addListener(WriteListener.getInstance());
}
}

View file

@ -4,7 +4,7 @@ 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.TableWaitingResponse;
import org.mage.network.messages.responses.TableViewResponse;
/**
*
@ -22,7 +22,7 @@ public class TableWaitingRequest extends ServerRequest {
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
ctx.writeAndFlush(new TableWaitingResponse(server.getTable(roomId, tableId))).addListener(WriteListener.getInstance());
ctx.writeAndFlush(new TableViewResponse(server.getTable(roomId, tableId))).addListener(WriteListener.getInstance());
}
}

View file

@ -7,11 +7,11 @@ import org.mage.network.messages.ClientMessage;
*
* @author BetaSteward
*/
public class JoinTableResponse extends ClientMessage {
public class BooleanResponse extends ClientMessage {
private boolean success;
public JoinTableResponse(boolean success) {
public BooleanResponse(boolean success) {
this.success = success;
}

View file

@ -1,24 +0,0 @@
package org.mage.network.messages.responses;
import java.util.UUID;
import org.mage.network.handlers.client.ClientMessageHandler;
import org.mage.network.messages.ClientMessage;
/**
*
* @author BetaSteward
*/
public class ChatRoomIdResponse extends ClientMessage {
private UUID chatId;
public ChatRoomIdResponse(UUID chatId) {
this.chatId = chatId;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.receiveId(chatId);
}
}

View file

@ -1,23 +0,0 @@
package org.mage.network.messages.responses;
import org.mage.network.handlers.client.ClientMessageHandler;
import org.mage.network.messages.ClientMessage;
/**
*
* @author BetaSteward
*/
public class LeaveTableResponse extends ClientMessage {
private boolean success;
public LeaveTableResponse(boolean success) {
this.success = success;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.receiveBoolean(success);
}
}

View file

@ -1,23 +0,0 @@
package org.mage.network.messages.responses;
import org.mage.network.handlers.client.ClientMessageHandler;
import org.mage.network.messages.ClientMessage;
/**
*
* @author BetaSteward
*/
public class StartMatchResponse extends ClientMessage {
private boolean success;
public StartMatchResponse(boolean success) {
this.success = success;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.receiveBoolean(success);
}
}

View file

@ -1,23 +0,0 @@
package org.mage.network.messages.responses;
import org.mage.network.handlers.client.ClientMessageHandler;
import org.mage.network.messages.ClientMessage;
/**
*
* @author BetaSteward
*/
public class SubmitDeckResponse extends ClientMessage {
private boolean success;
public SubmitDeckResponse(boolean success) {
this.success = success;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.receiveBoolean(success);
}
}

View file

@ -8,17 +8,17 @@ import org.mage.network.messages.ClientMessage;
*
* @author BetaSteward
*/
public class CreateTableResponse extends ClientMessage {
public class TableViewResponse extends ClientMessage {
private TableView table;
private TableView view;
public CreateTableResponse(TableView table) {
this.table = table;
public TableViewResponse(TableView view) {
this.view = view;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.receiveTableView(table);
handler.receiveTableView(view);
}
}

View file

@ -1,24 +0,0 @@
package org.mage.network.messages.responses;
import mage.view.TableView;
import org.mage.network.handlers.client.ClientMessageHandler;
import org.mage.network.messages.ClientMessage;
/**
*
* @author BetaSteward
*/
public class TableWaitingResponse extends ClientMessage {
private TableView table;
public TableWaitingResponse(TableView table) {
this.table = table;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.receiveTableView(table);
}
}

View file

@ -8,17 +8,17 @@ import org.mage.network.messages.ClientMessage;
*
* @author BetaSteward
*/
public class JoinGameResponse extends ClientMessage {
public class UUIDResponse extends ClientMessage {
private UUID chatId;
private UUID id;
public JoinGameResponse(UUID chatId) {
this.chatId = chatId;
public UUIDResponse(UUID id) {
this.id = id;
}
@Override
public void handleMessage(ClientMessageHandler handler) {
handler.receiveId(chatId);
handler.receiveId(id);
}
}

View file

@ -305,27 +305,22 @@ public class ServerMain implements MageServer {
return ret;
}
// @Override
// public boolean joinTournamentTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final String playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException {
// return executeWithResult("joinTournamentTable", sessionId, new ActionWithBooleanResult() {
// @Override
// public Boolean execute() throws MageException {
// UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
// if (logger.isTraceEnabled()) {
// User user = UserManager.getInstance().getUser(userId);
// if (user != null) {
// logger.trace("join tourn. tableId: " + tableId + " " + name);
// }
// }
// if (userId == null) {
// logger.fatal("Got no userId from sessionId" + sessionId + " tableId" + tableId);
// return false;
// }
// boolean ret = GamesRoomManager.getInstance().getRoom(roomId).joinTournamentTable(userId, tableId, name, playerType, skill, deckList, password);
// return ret;
// }
// });
// }
@Override
public boolean joinTournamentTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final String playerType, final int skill, final DeckCardLists deckList, final String password) {
UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
if (logger.isTraceEnabled()) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
logger.trace("join tourn. tableId: " + tableId + " " + name);
}
}
if (userId == null) {
logger.fatal("Got no userId from sessionId" + sessionId + " tableId" + tableId);
return false;
}
boolean ret = GamesRoomManager.getInstance().getRoom(roomId).joinTournamentTable(userId, tableId, name, playerType, skill, deckList, password);
return ret;
}
@Override
public boolean submitDeck(final String sessionId, final UUID tableId, final DeckCardLists deckList) {