mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 04:22:01 -08:00
simplified client message handling
This commit is contained in:
parent
a241556fdc
commit
dd8fe2d05c
26 changed files with 232 additions and 552 deletions
|
|
@ -33,20 +33,11 @@ import mage.view.TournamentView;
|
|||
import mage.view.UserView;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.network.handlers.ExceptionHandler;
|
||||
import org.mage.network.handlers.MessageHandler;
|
||||
import org.mage.network.handlers.client.HeartbeatHandler;
|
||||
import org.mage.network.handlers.PingMessageHandler;
|
||||
import org.mage.network.handlers.client.ChatMessageHandler;
|
||||
import org.mage.network.handlers.client.ChatRoomHandler;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
import org.mage.network.handlers.client.ClientRegisteredMessageHandler;
|
||||
import org.mage.network.handlers.client.ConnectionHandler;
|
||||
import org.mage.network.handlers.client.InformClientMessageHandler;
|
||||
import org.mage.network.handlers.client.JoinTableMessageHandler;
|
||||
import org.mage.network.handlers.client.JoinedTableMessageHandler;
|
||||
import org.mage.network.handlers.client.LeaveTableMessageHandler;
|
||||
import org.mage.network.handlers.client.ServerMessageHandler;
|
||||
import org.mage.network.handlers.client.RoomMessageHandler;
|
||||
import org.mage.network.handlers.client.TableMessageHandler;
|
||||
import org.mage.network.handlers.client.TableWaitingMessageHandler;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.MessageType;
|
||||
|
||||
|
|
@ -63,18 +54,8 @@ public class Client {
|
|||
|
||||
private final MageClient client;
|
||||
// private final MessageHandler h;
|
||||
private final ConnectionHandler connectionHandler;
|
||||
private final ChatRoomHandler chatRoomHandler;
|
||||
private final ChatMessageHandler chatMessageHandler;
|
||||
private final InformClientMessageHandler informClientMessageHandler;
|
||||
private final ClientMessageHandler clientMessageHandler;
|
||||
private final ClientRegisteredMessageHandler clientRegisteredMessageHandler;
|
||||
private final ServerMessageHandler serverMessageHandler;
|
||||
private final RoomMessageHandler roomMessageHandler;
|
||||
private final TableMessageHandler tableMessageHandler;
|
||||
private final JoinTableMessageHandler joinTableMessageHandler;
|
||||
private final JoinedTableMessageHandler joinedTableMessageHandler;
|
||||
private final TableWaitingMessageHandler tableWaitingMessageHandler;
|
||||
private final LeaveTableMessageHandler leaveTableMessageHandler;
|
||||
|
||||
private final ExceptionHandler exceptionHandler;
|
||||
|
||||
|
|
@ -88,18 +69,8 @@ public class Client {
|
|||
public Client(MageClient client) {
|
||||
this.client = client;
|
||||
// h = new MessageHandler();
|
||||
connectionHandler = new ConnectionHandler(client);
|
||||
chatRoomHandler = new ChatRoomHandler();
|
||||
chatMessageHandler = new ChatMessageHandler(client);
|
||||
informClientMessageHandler = new InformClientMessageHandler(client);
|
||||
clientMessageHandler = new ClientMessageHandler(client);
|
||||
clientRegisteredMessageHandler = new ClientRegisteredMessageHandler();
|
||||
serverMessageHandler = new ServerMessageHandler();
|
||||
roomMessageHandler = new RoomMessageHandler();
|
||||
tableMessageHandler = new TableMessageHandler();
|
||||
joinTableMessageHandler = new JoinTableMessageHandler();
|
||||
joinedTableMessageHandler = new JoinedTableMessageHandler(client);
|
||||
tableWaitingMessageHandler = new TableWaitingMessageHandler();
|
||||
leaveTableMessageHandler = new LeaveTableMessageHandler();
|
||||
|
||||
exceptionHandler = new ExceptionHandler();
|
||||
}
|
||||
|
|
@ -153,23 +124,13 @@ public class Client {
|
|||
ch.pipeline().addLast(new ObjectDecoder(ClassResolvers.cacheDisabled(null)));
|
||||
ch.pipeline().addLast(new ObjectEncoder());
|
||||
|
||||
ch.pipeline().addLast("connectionHandler", connectionHandler);
|
||||
ch.pipeline().addLast("idleStateHandler", new IdleStateHandler(IDLE_TIMEOUT, IDLE_PING_TIME, 0));
|
||||
ch.pipeline().addLast("heartbeatHandler", new HeartbeatHandler());
|
||||
ch.pipeline().addLast("pingMessageHandler", new PingMessageHandler());
|
||||
|
||||
// ch.pipeline().addLast("h", h);
|
||||
ch.pipeline().addLast("chatMessageHandler", chatMessageHandler);
|
||||
ch.pipeline().addLast("informClientMessageHandler", informClientMessageHandler);
|
||||
ch.pipeline().addLast("clientRegisteredMessageHandler", clientRegisteredMessageHandler);
|
||||
ch.pipeline().addLast("chatRoomHandler", chatRoomHandler);
|
||||
ch.pipeline().addLast("serverMessageHandler", serverMessageHandler);
|
||||
ch.pipeline().addLast("roomMessageHandler", roomMessageHandler);
|
||||
ch.pipeline().addLast("tableMessageHandler", tableMessageHandler);
|
||||
ch.pipeline().addLast("joinTableMessageHandler", joinTableMessageHandler);
|
||||
ch.pipeline().addLast("joinedTableMessageHandler", joinedTableMessageHandler);
|
||||
ch.pipeline().addLast("tableWaitingMessageHandler", tableWaitingMessageHandler);
|
||||
ch.pipeline().addLast("leaveTableMessageHandler", leaveTableMessageHandler);
|
||||
ch.pipeline().addLast("clientMessageHandler", clientMessageHandler);
|
||||
|
||||
ch.pipeline().addLast("exceptionHandler", exceptionHandler);
|
||||
}
|
||||
|
|
@ -194,15 +155,15 @@ public class Client {
|
|||
}
|
||||
|
||||
public void sendChatMessage(UUID chatId, String message) {
|
||||
chatMessageHandler.sendMessage(chatId, message);
|
||||
clientMessageHandler.sendMessage(chatId, message);
|
||||
}
|
||||
|
||||
public void joinChat(UUID chatId) {
|
||||
chatRoomHandler.joinChat(chatId);
|
||||
clientMessageHandler.joinChat(chatId);
|
||||
}
|
||||
|
||||
public void leaveChat(UUID chatId) {
|
||||
chatRoomHandler.leaveChat(chatId);
|
||||
clientMessageHandler.leaveChat(chatId);
|
||||
}
|
||||
|
||||
public void sendPlayerUUID(UUID gameId, UUID id) {
|
||||
|
|
@ -239,7 +200,7 @@ public class Client {
|
|||
|
||||
public boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deck, String password) {
|
||||
try {
|
||||
return joinTableMessageHandler.joinTable(roomId, tableId, playerName, playerType, skill, deck, password);
|
||||
return clientMessageHandler.joinTable(roomId, tableId, playerName, playerType, skill, deck, password);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error creating table", ex);
|
||||
}
|
||||
|
|
@ -248,7 +209,7 @@ public class Client {
|
|||
|
||||
public TableView createTable(UUID roomId, MatchOptions options) {
|
||||
try {
|
||||
return tableMessageHandler.createTable(roomId, options);
|
||||
return clientMessageHandler.createTable(roomId, options);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error creating table", ex);
|
||||
}
|
||||
|
|
@ -257,7 +218,7 @@ public class Client {
|
|||
|
||||
public void removeTable(UUID roomId, UUID tableId) {
|
||||
try {
|
||||
tableMessageHandler.removeTable(roomId, tableId);
|
||||
clientMessageHandler.removeTable(roomId, tableId);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error removing table", ex);
|
||||
}
|
||||
|
|
@ -275,14 +236,6 @@ public class Client {
|
|||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
// public boolean isTableOwner(UUID roomId, UUID tableId) {
|
||||
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
// }
|
||||
|
||||
// public UUID getTableChatId(UUID tableId) {
|
||||
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
// }
|
||||
|
||||
public boolean startMatch(UUID roomId, UUID tableId) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
|
@ -293,7 +246,7 @@ public class Client {
|
|||
|
||||
public boolean leaveTable(UUID roomId, UUID tableId) {
|
||||
try {
|
||||
return leaveTableMessageHandler.leaveTable(roomId, tableId);
|
||||
return clientMessageHandler.leaveTable(roomId, tableId);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error leaving table", ex);
|
||||
}
|
||||
|
|
@ -302,7 +255,7 @@ public class Client {
|
|||
|
||||
public void swapSeats(UUID roomId, UUID tableId, int seatNum1, int seatNum2) {
|
||||
try {
|
||||
tableMessageHandler.swapSeats(roomId, tableId, seatNum1, seatNum2);
|
||||
clientMessageHandler.swapSeats(roomId, tableId, seatNum1, seatNum2);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error swaping seats", ex);
|
||||
}
|
||||
|
|
@ -314,7 +267,7 @@ public class Client {
|
|||
|
||||
public TableView getTable(UUID roomId, UUID tableId) {
|
||||
try {
|
||||
return tableWaitingMessageHandler.getTable(roomId, tableId);
|
||||
return clientMessageHandler.getTable(roomId, tableId);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error getting chat room id", ex);
|
||||
}
|
||||
|
|
@ -355,7 +308,7 @@ public class Client {
|
|||
|
||||
public UUID getRoomChatId(UUID roomId) {
|
||||
try {
|
||||
return chatRoomHandler.getChatRoomId(roomId);
|
||||
return clientMessageHandler.getChatRoomId(roomId);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error getting chat room id", ex);
|
||||
}
|
||||
|
|
@ -364,7 +317,7 @@ public class Client {
|
|||
|
||||
public List<String> getServerMessages() {
|
||||
try {
|
||||
return serverMessageHandler.getServerMessages();
|
||||
return clientMessageHandler.getServerMessages();
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error getting server messages", ex);
|
||||
}
|
||||
|
|
@ -373,7 +326,7 @@ public class Client {
|
|||
|
||||
public RoomView getRoom(UUID roomId) {
|
||||
try {
|
||||
return roomMessageHandler.getRoom(roomId);
|
||||
return clientMessageHandler.getRoom(roomId);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Error getting tables", ex);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.UUID;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.ChatMessageMessage;
|
||||
import org.mage.network.model.ChatMessageRequest;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ChatMessageHandler extends SimpleChannelInboundHandler<ChatMessageMessage> {
|
||||
|
||||
private final MageClient client;
|
||||
private ChannelHandlerContext ctx;
|
||||
|
||||
public ChatMessageHandler (MageClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, ChatMessageMessage msg) throws Exception {
|
||||
client.receiveChatMessage(msg.getChatId(), msg.getMessage());
|
||||
}
|
||||
|
||||
public void sendMessage(UUID chatId, String message) {
|
||||
ctx.writeAndFlush(new ChatMessageRequest(chatId, message)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.model.ChatRoomIdMessage;
|
||||
import org.mage.network.model.ChatRoomIdRequest;
|
||||
import org.mage.network.model.JoinChatRequest;
|
||||
import org.mage.network.model.LeaveChatRequest;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ChatRoomHandler extends SimpleChannelInboundHandler<ChatRoomIdMessage> {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<UUID> queue = new LinkedBlockingQueue<>();
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void messageReceived(ChannelHandlerContext ctx, ChatRoomIdMessage msg) {
|
||||
queue.offer(msg.getId());
|
||||
}
|
||||
|
||||
public UUID getChatRoomId(UUID roomId) throws Exception {
|
||||
queue.clear();
|
||||
ctx.writeAndFlush(new ChatRoomIdRequest(roomId)).addListener(WriteListener.getInstance());
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
public void joinChat(UUID chatId) {
|
||||
ctx.writeAndFlush(new JoinChatRequest(chatId)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void leaveChat(UUID chatId) {
|
||||
ctx.writeAndFlush(new LeaveChatRequest(chatId)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.view.RoomView;
|
||||
import mage.view.TableView;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.ChatMessageRequest;
|
||||
import org.mage.network.model.ChatRoomIdRequest;
|
||||
import org.mage.network.model.ClientMessage;
|
||||
import org.mage.network.model.CreateTableRequest;
|
||||
import org.mage.network.model.GetRoomRequest;
|
||||
import org.mage.network.model.JoinChatRequest;
|
||||
import org.mage.network.model.JoinTableRequest;
|
||||
import org.mage.network.model.LeaveChatRequest;
|
||||
import org.mage.network.model.LeaveTableRequest;
|
||||
import org.mage.network.model.RemoveTableRequest;
|
||||
import org.mage.network.model.ServerMessagesRequest;
|
||||
import org.mage.network.model.SwapSeatRequest;
|
||||
import org.mage.network.model.TableWaitingRequest;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMessage> {
|
||||
|
||||
private final MageClient client;
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<Boolean> booleanQueue = new LinkedBlockingQueue<>();
|
||||
private final BlockingQueue<UUID> uuidQueue = new LinkedBlockingQueue<>();
|
||||
private final BlockingQueue<RoomView> roomViewQueue = new LinkedBlockingQueue<>();
|
||||
private final BlockingQueue<TableView> tableViewQueue = new LinkedBlockingQueue<>();
|
||||
private final BlockingQueue<List<String>> stringListQueue = new LinkedBlockingQueue<>();
|
||||
|
||||
public ClientMessageHandler (MageClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void messageReceived(ChannelHandlerContext ctx, ClientMessage msg) {
|
||||
msg.handleMessage(this);
|
||||
}
|
||||
|
||||
public List<String> getServerMessages() throws Exception {
|
||||
stringListQueue.clear();
|
||||
ctx.writeAndFlush(new ServerMessagesRequest()).addListener(WriteListener.getInstance());
|
||||
return stringListQueue.take();
|
||||
}
|
||||
|
||||
public UUID getChatRoomId(UUID roomId) throws Exception {
|
||||
uuidQueue.clear();
|
||||
ctx.writeAndFlush(new ChatRoomIdRequest(roomId)).addListener(WriteListener.getInstance());
|
||||
return uuidQueue.take();
|
||||
}
|
||||
|
||||
public RoomView getRoom(UUID roomId) throws Exception {
|
||||
roomViewQueue.clear();
|
||||
ctx.writeAndFlush(new GetRoomRequest(roomId)).addListener(WriteListener.getInstance());
|
||||
return roomViewQueue.take();
|
||||
}
|
||||
|
||||
public TableView createTable(UUID roomId, MatchOptions options) throws Exception {
|
||||
tableViewQueue.clear();
|
||||
ctx.writeAndFlush(new CreateTableRequest(roomId, options)).addListener(WriteListener.getInstance());
|
||||
return tableViewQueue.take();
|
||||
}
|
||||
|
||||
public TableView getTable(UUID roomId, UUID tableId) throws Exception {
|
||||
tableViewQueue.clear();
|
||||
ctx.writeAndFlush(new TableWaitingRequest(roomId, tableId)).addListener(WriteListener.getInstance());
|
||||
return tableViewQueue.take();
|
||||
}
|
||||
|
||||
public boolean joinTable(UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws Exception {
|
||||
booleanQueue.clear();
|
||||
ctx.writeAndFlush(new JoinTableRequest(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());
|
||||
return booleanQueue.take();
|
||||
}
|
||||
|
||||
public void joinChat(UUID chatId) {
|
||||
ctx.writeAndFlush(new JoinChatRequest(chatId)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void leaveChat(UUID chatId) {
|
||||
ctx.writeAndFlush(new LeaveChatRequest(chatId)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void sendMessage(UUID chatId, String message) {
|
||||
ctx.writeAndFlush(new ChatMessageRequest(chatId, message)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void removeTable(UUID roomId, UUID tableId) throws Exception {
|
||||
ctx.writeAndFlush(new RemoveTableRequest(roomId, tableId)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void swapSeats(UUID roomId, UUID tableId, int seatNum1, int seatNum2) throws Exception {
|
||||
ctx.writeAndFlush(new SwapSeatRequest(roomId, tableId, seatNum1, seatNum2)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public MageClient getClient() {
|
||||
return client;
|
||||
}
|
||||
|
||||
public void receiveBoolean(boolean b) {
|
||||
booleanQueue.offer(b);
|
||||
}
|
||||
|
||||
public void receiveId(UUID id) {
|
||||
uuidQueue.offer(id);
|
||||
}
|
||||
|
||||
public void receiveRoomView(RoomView view) {
|
||||
roomViewQueue.offer(view);
|
||||
}
|
||||
|
||||
public void receiveTableView(TableView view) {
|
||||
tableViewQueue.offer(view);
|
||||
}
|
||||
|
||||
public void receiveStringList(List<String> list) {
|
||||
stringListQueue.offer(list);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerAdapter;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ConnectionHandler extends ChannelHandlerAdapter {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(ConnectionHandler.class);
|
||||
private final MageClient client;
|
||||
|
||||
public ConnectionHandler (MageClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
|
||||
// logger.error("Connection error", cause);
|
||||
// client.disconnected(true);
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.InformClientMessage;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class InformClientMessageHandler extends SimpleChannelInboundHandler<InformClientMessage> {
|
||||
|
||||
private final MageClient client;
|
||||
|
||||
public InformClientMessageHandler (MageClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, InformClientMessage msg) throws Exception {
|
||||
client.inform(msg.getTitle(), msg.getMessage(), msg.getType());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.model.JoinTableMessage;
|
||||
import org.mage.network.model.JoinTableRequest;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class JoinTableMessageHandler extends SimpleChannelInboundHandler<JoinTableMessage> {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<Boolean> queue = new LinkedBlockingQueue<>();
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, JoinTableMessage msg) throws Exception {
|
||||
queue.offer(msg.getSuccess());
|
||||
}
|
||||
|
||||
public boolean joinTable(UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws Exception {
|
||||
queue.clear();
|
||||
ctx.writeAndFlush(new JoinTableRequest(roomId, tableId, name, playerType, skill, deckList, password)).addListener(WriteListener.getInstance());
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import org.mage.network.interfaces.MageClient;
|
||||
import org.mage.network.model.JoinedTableMessage;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class JoinedTableMessageHandler extends SimpleChannelInboundHandler<JoinedTableMessage> {
|
||||
|
||||
|
||||
private final MageClient client;
|
||||
|
||||
public JoinedTableMessageHandler (MageClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, JoinedTableMessage msg) throws Exception {
|
||||
client.joinedTable(msg.getRoomId(), msg.getTableId(), msg.getChatId(), msg.isOwner(), msg.isTournament());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.model.LeaveTableRequest;
|
||||
import org.mage.network.model.LeftTableMessage;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class LeaveTableMessageHandler extends SimpleChannelInboundHandler<LeftTableMessage> {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<Boolean> queue = new LinkedBlockingQueue<>();
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, LeftTableMessage msg) throws Exception {
|
||||
queue.offer(msg.getSuccess());
|
||||
}
|
||||
|
||||
public boolean leaveTable(UUID roomId, UUID tableId) throws Exception {
|
||||
queue.clear();
|
||||
ctx.writeAndFlush(new LeaveTableRequest(roomId, tableId)).addListener(WriteListener.getInstance());
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import mage.view.RoomView;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.model.GetRoomRequest;
|
||||
import org.mage.network.model.RoomMessage;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class RoomMessageHandler extends SimpleChannelInboundHandler<RoomMessage> {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<RoomView> queue = new LinkedBlockingQueue<>();
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, RoomMessage msg) throws Exception {
|
||||
queue.offer(msg.getRoom());
|
||||
}
|
||||
|
||||
public RoomView getRoom(UUID roomId) throws Exception {
|
||||
queue.clear();
|
||||
ctx.writeAndFlush(new GetRoomRequest(roomId)).addListener(WriteListener.getInstance());
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.model.ServerMessagesMessage;
|
||||
import org.mage.network.model.ServerMessagesRequest;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ServerMessageHandler extends SimpleChannelInboundHandler<ServerMessagesMessage> {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<List<String>> queue = new LinkedBlockingQueue<>();
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, ServerMessagesMessage msg) throws Exception {
|
||||
queue.offer(msg.getMessages());
|
||||
}
|
||||
|
||||
public List<String> getServerMessages() throws Exception {
|
||||
queue.clear();
|
||||
ctx.writeAndFlush(new ServerMessagesRequest()).addListener(WriteListener.getInstance());
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import mage.game.match.MatchOptions;
|
||||
import mage.view.TableView;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.model.CreateTableMessage;
|
||||
import org.mage.network.model.CreateTableRequest;
|
||||
import org.mage.network.model.RemoveTableRequest;
|
||||
import org.mage.network.model.SwapSeatRequest;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class TableMessageHandler extends SimpleChannelInboundHandler<CreateTableMessage> {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<TableView> queue = new LinkedBlockingQueue<>();
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, CreateTableMessage msg) throws Exception {
|
||||
queue.offer(msg.getTable());
|
||||
}
|
||||
|
||||
public TableView createTable(UUID roomId, MatchOptions options) throws Exception {
|
||||
queue.clear();
|
||||
ctx.writeAndFlush(new CreateTableRequest(roomId, options)).addListener(WriteListener.getInstance());
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
public void removeTable(UUID roomId, UUID tableId) throws Exception {
|
||||
ctx.writeAndFlush(new RemoveTableRequest(roomId, tableId)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
public void swapSeats(UUID roomId, UUID tableId, int seatNum1, int seatNum2) throws Exception {
|
||||
ctx.writeAndFlush(new SwapSeatRequest(roomId, tableId, seatNum1, seatNum2)).addListener(WriteListener.getInstance());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
package org.mage.network.handlers.client;
|
||||
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import mage.view.TableView;
|
||||
import org.mage.network.handlers.WriteListener;
|
||||
import org.mage.network.model.TableWaitingMessage;
|
||||
import org.mage.network.model.TableWaitingRequest;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class TableWaitingMessageHandler extends SimpleChannelInboundHandler<TableWaitingMessage> {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
private final BlockingQueue<TableView> queue = new LinkedBlockingQueue<>();
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
this.ctx = ctx;
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void messageReceived(ChannelHandlerContext ctx, TableWaitingMessage msg) throws Exception {
|
||||
queue.offer(msg.getRoom());
|
||||
}
|
||||
|
||||
public TableView getTable(UUID roomId, UUID tableId) throws Exception {
|
||||
queue.clear();
|
||||
ctx.writeAndFlush(new TableWaitingRequest(roomId, tableId)).addListener(WriteListener.getInstance());
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
import mage.view.ChatMessage;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ChatMessageMessage implements Serializable {
|
||||
public class ChatMessageMessage extends ClientMessage {
|
||||
|
||||
private UUID chatId;
|
||||
private ChatMessage message;
|
||||
|
|
@ -17,13 +17,10 @@ public class ChatMessageMessage implements Serializable {
|
|||
this.chatId = chatId;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public UUID getChatId() {
|
||||
return chatId;
|
||||
}
|
||||
|
||||
public ChatMessage getMessage() {
|
||||
return message;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.getClient().receiveChatMessage(chatId, message);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,22 +1,23 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ChatRoomIdMessage implements Serializable {
|
||||
public class ChatRoomIdMessage extends ClientMessage {
|
||||
|
||||
private UUID id;
|
||||
private UUID chatId;
|
||||
|
||||
public ChatRoomIdMessage(UUID id) {
|
||||
this.id = id;
|
||||
public ChatRoomIdMessage(UUID chatId) {
|
||||
this.chatId = chatId;
|
||||
}
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveId(chatId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public abstract class ClientMessage implements Serializable {
|
||||
|
||||
public abstract void handleMessage(ClientMessageHandler handler);
|
||||
|
||||
}
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import mage.view.TableView;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class CreateTableMessage implements Serializable {
|
||||
public class CreateTableMessage extends ClientMessage {
|
||||
|
||||
private TableView table;
|
||||
|
||||
|
|
@ -15,8 +15,9 @@ public class CreateTableMessage implements Serializable {
|
|||
this.table = table;
|
||||
}
|
||||
|
||||
public TableView getTable() {
|
||||
return table;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveTableView(table);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class InformClientMessage implements Serializable {
|
||||
public class InformClientMessage extends ClientMessage {
|
||||
|
||||
private String title;
|
||||
private String message;
|
||||
|
|
@ -18,15 +18,8 @@ public class InformClientMessage implements Serializable {
|
|||
this.type = type;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public MessageType getType() {
|
||||
return type;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.getClient().inform(title, message, type);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class JoinTableMessage implements Serializable {
|
||||
public class JoinTableMessage extends ClientMessage {
|
||||
|
||||
private boolean success;
|
||||
|
||||
|
|
@ -14,8 +14,9 @@ public class JoinTableMessage implements Serializable {
|
|||
this.success = success;
|
||||
}
|
||||
|
||||
public boolean getSuccess() {
|
||||
return success;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveBoolean(success);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class JoinedTableMessage implements Serializable {
|
||||
public class JoinedTableMessage extends ClientMessage {
|
||||
|
||||
private UUID roomId;
|
||||
private UUID tableId;
|
||||
|
|
@ -23,23 +23,8 @@ public class JoinedTableMessage implements Serializable {
|
|||
this.tournament = tournament;
|
||||
}
|
||||
|
||||
public UUID getRoomId() {
|
||||
return roomId;
|
||||
}
|
||||
|
||||
public UUID getTableId() {
|
||||
return tableId;
|
||||
}
|
||||
|
||||
public UUID getChatId() {
|
||||
return chatId;
|
||||
}
|
||||
|
||||
public boolean isOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public boolean isTournament() {
|
||||
return tournament;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.getClient().joinedTable(roomId, tableId, chatId, owner, tournament);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class LeftTableMessage implements Serializable {
|
||||
public class LeftTableMessage extends ClientMessage {
|
||||
|
||||
private boolean success;
|
||||
|
||||
|
|
@ -14,8 +14,9 @@ public class LeftTableMessage implements Serializable {
|
|||
this.success = success;
|
||||
}
|
||||
|
||||
public boolean getSuccess() {
|
||||
return success;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveBoolean(success);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import mage.view.RoomView;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class RoomMessage implements Serializable {
|
||||
public class RoomMessage extends ClientMessage {
|
||||
|
||||
private RoomView room;
|
||||
|
||||
|
|
@ -18,5 +18,10 @@ public class RoomMessage implements Serializable {
|
|||
public RoomView getRoom() {
|
||||
return room;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveRoomView(room);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class ServerMessagesMessage implements Serializable {
|
||||
public class ServerMessagesMessage extends ClientMessage {
|
||||
|
||||
private List<String> messages;
|
||||
|
||||
|
|
@ -15,8 +15,9 @@ public class ServerMessagesMessage implements Serializable {
|
|||
this.messages = messages;
|
||||
}
|
||||
|
||||
public List<String> getMessages() {
|
||||
return messages;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveStringList(messages);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
package org.mage.network.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import mage.view.TableView;
|
||||
import org.mage.network.handlers.client.ClientMessageHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward
|
||||
*/
|
||||
public class TableWaitingMessage implements Serializable {
|
||||
public class TableWaitingMessage extends ClientMessage {
|
||||
|
||||
private TableView table;
|
||||
|
||||
|
|
@ -15,8 +15,9 @@ public class TableWaitingMessage implements Serializable {
|
|||
this.table = table;
|
||||
}
|
||||
|
||||
public TableView getRoom() {
|
||||
return table;
|
||||
@Override
|
||||
public void handleMessage(ClientMessageHandler handler) {
|
||||
handler.receiveTableView(table);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue