mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-12 16:27:47 +00:00
Clone FML packet indexes if channel is not open. Fixes potential threading issue.
This commit is contained in:
1 parent
dad870ea0b
commit
7b92a27908
2 files changed
+12
-1
No files matched your search
+3
-1
@@ -238,7 +238,7 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler<Packet> imple
|
||||
manager.closeChannel(new ChatComponentText("Handshake Complete review log file for details."));
|
||||
scm.initializeConnectionToPlayer(manager, player, serverHandler);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void channelRead0(ChannelHandlerContext ctx, Packet msg) throws Exception
|
||||
{
|
||||
@@ -430,6 +430,8 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler<Packet> imple
|
||||
|
||||
public void sendProxy(FMLProxyPacket msg)
|
||||
{
|
||||
if (!manager.isChannelOpen())
|
||||
msg = msg.copy();
|
||||
manager.sendPacket(msg);
|
||||
}
|
||||
|
||||
|
||||
@@ -186,4 +186,13 @@ public class FMLProxyPacket implements Packet<INetHandler> {
|
||||
{
|
||||
return target;
|
||||
}
|
||||
|
||||
public FMLProxyPacket copy()
|
||||
{
|
||||
FMLProxyPacket pkt = new FMLProxyPacket(new PacketBuffer(payload.duplicate()), channel);
|
||||
pkt.dispatcher = dispatcher;
|
||||
pkt.netHandler = netHandler;
|
||||
pkt.target = target;
|
||||
return pkt;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user