diff --git a/Mage.Network/src/main/java/org/mage/network/Server.java b/Mage.Network/src/main/java/org/mage/network/Server.java index 7fbd29b3e63..985037c0c4c 100644 --- a/Mage.Network/src/main/java/org/mage/network/Server.java +++ b/Mage.Network/src/main/java/org/mage/network/Server.java @@ -27,6 +27,7 @@ import org.mage.network.handlers.ExceptionHandler; import org.mage.network.handlers.MessageHandler; import org.mage.network.handlers.server.HeartbeatHandler; import org.mage.network.handlers.PingMessageHandler; +import org.mage.network.handlers.WriteListener; import org.mage.network.handlers.server.ChatMessageHandler; import org.mage.network.handlers.server.ConnectionHandler; import org.mage.network.handlers.server.RegisterClientMessageHandler; @@ -151,17 +152,17 @@ public class Server { public void sendChatMessage(String sessionId, UUID chatId, ChatMessage message) { Channel ch = findChannel(sessionId); if (ch != null) - ch.writeAndFlush(new ChatMessageMessage(chatId, message)); + ch.writeAndFlush(new ChatMessageMessage(chatId, message)).addListener(WriteListener.getInstance()); } public void informClient(String sessionId, String title, String message, MessageType type) { Channel ch = findChannel(sessionId); if (ch != null) - ch.writeAndFlush(new InformClientMessage(title, message, type)); + ch.writeAndFlush(new InformClientMessage(title, message, type)).addListener(WriteListener.getInstance()); } public void informClients(String title, String message, MessageType type) { - clients.writeAndFlush(new InformClientMessage(title, message, type)); + clients.writeAndFlush(new InformClientMessage(title, message, type)).addListener(WriteListener.getInstance()); } public void pingClient(String sessionId) { @@ -175,7 +176,7 @@ public class Server { public void joinedTable(String sessionId, UUID roomId, UUID tableId, UUID chatId, boolean owner, boolean tournament) { Channel ch = findChannel(sessionId); if (ch != null) - ch.writeAndFlush(new JoinedTableMessage(roomId, tableId, chatId, owner, tournament)); + ch.writeAndFlush(new JoinedTableMessage(roomId, tableId, chatId, owner, tournament)).addListener(WriteListener.getInstance()); } diff --git a/Mage.Network/src/main/java/org/mage/network/handlers/client/ChatMessageHandler.java b/Mage.Network/src/main/java/org/mage/network/handlers/client/ChatMessageHandler.java index addcebb5b82..4506c4ca4ed 100644 --- a/Mage.Network/src/main/java/org/mage/network/handlers/client/ChatMessageHandler.java +++ b/Mage.Network/src/main/java/org/mage/network/handlers/client/ChatMessageHandler.java @@ -3,6 +3,7 @@ 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; @@ -32,6 +33,6 @@ public class ChatMessageHandler extends SimpleChannelInboundHandler public RoomView getRoom(UUID roomId) throws Exception { queue.clear(); - ctx.writeAndFlush(new GetRoomRequest(roomId)); + ctx.writeAndFlush(new GetRoomRequest(roomId)).addListener(WriteListener.getInstance()); return queue.take(); } diff --git a/Mage.Network/src/main/java/org/mage/network/handlers/client/ServerMessageHandler.java b/Mage.Network/src/main/java/org/mage/network/handlers/client/ServerMessageHandler.java index 92598e1ef56..7510adf7b0f 100644 --- a/Mage.Network/src/main/java/org/mage/network/handlers/client/ServerMessageHandler.java +++ b/Mage.Network/src/main/java/org/mage/network/handlers/client/ServerMessageHandler.java @@ -5,6 +5,7 @@ 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; @@ -31,7 +32,7 @@ public class ServerMessageHandler extends SimpleChannelInboundHandler getServerMessages() throws Exception { queue.clear(); - ctx.writeAndFlush(new ServerMessagesRequest()); + ctx.writeAndFlush(new ServerMessagesRequest()).addListener(WriteListener.getInstance()); return queue.take(); } diff --git a/Mage.Network/src/main/java/org/mage/network/handlers/client/TableMessageHandler.java b/Mage.Network/src/main/java/org/mage/network/handlers/client/TableMessageHandler.java index ae707710599..25a68abec39 100644 --- a/Mage.Network/src/main/java/org/mage/network/handlers/client/TableMessageHandler.java +++ b/Mage.Network/src/main/java/org/mage/network/handlers/client/TableMessageHandler.java @@ -7,6 +7,7 @@ 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; @@ -34,16 +35,17 @@ public class TableMessageHandler extends SimpleChannelInboundHandler