From 418b7794d2156f4d1b1a779ff9ef1198f941f292 Mon Sep 17 00:00:00 2001 From: Lex Manos Date: Wed, 4 Mar 2015 21:00:31 -0800 Subject: [PATCH] Fix Debug packet logger on local memory connections. --- .../play/client/C17PacketCustomPayload.java.patch | 14 ++++++++++++++ .../fml/common/network/PacketLoggingHandler.java | 6 ++++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 fml/patches/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java.patch diff --git a/fml/patches/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java.patch b/fml/patches/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java.patch new file mode 100644 index 000000000..c7acfd978 --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java.patch @@ -0,0 +1,14 @@ +--- ../src-base/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java ++++ ../src-work/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java +@@ -47,7 +47,11 @@ + public void func_148840_b(PacketBuffer p_148840_1_) throws IOException + { + p_148840_1_.func_180714_a(this.field_149562_a); ++ synchronized(this) { //This may be access multiple times, from multiple threads, lets be safe. ++ this.field_149561_c.markReaderIndex(); + p_148840_1_.writeBytes((ByteBuf)this.field_149561_c); ++ this.field_149561_c.resetReaderIndex(); ++ } + } + + public void func_148833_a(INetHandlerPlayServer p_148833_1_) diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java b/fml/src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java index 46ffd56de..64146631c 100644 --- a/fml/src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java +++ b/fml/src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java @@ -30,17 +30,19 @@ public class PacketLoggingHandler { pipeline.addBefore("packet_handler", "splitter", new SimpleChannelInboundHandler() { + String prefix = (direction == EnumPacketDirection.SERVERBOUND ? "SERVER: C->S" : "CLIENT: S->C"); @Override protected void channelRead0(ChannelHandlerContext ctx, Packet msg) throws Exception { PacketBuffer buf = new PacketBuffer(Unpooled.buffer()); msg.writePacketData(buf); - FMLLog.log(Level.DEBUG, "$s $s:\n%s", msg.getClass().getSimpleName(), ByteBufUtils.getContentDump(buf)); + FMLLog.log(Level.DEBUG, "%s %s:\n%s", prefix, msg.getClass().getSimpleName(), ByteBufUtils.getContentDump(buf)); ctx.fireChannelRead(msg); } }); pipeline.addBefore("splitter", "prepender", new ChannelOutboundHandlerAdapter() { + String prefix = (direction == EnumPacketDirection.SERVERBOUND ? "SERVER: S->C" : "CLIENT: C->S"); @Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { @@ -48,7 +50,7 @@ public class PacketLoggingHandler { PacketBuffer buf = new PacketBuffer(Unpooled.buffer()); ((Packet)msg).writePacketData(buf); - FMLLog.log(Level.DEBUG, "$s $s:\n%s", msg.getClass().getSimpleName(), ByteBufUtils.getContentDump(buf)); + FMLLog.log(Level.DEBUG, "%s %s:\n%s", prefix, msg.getClass().getSimpleName(), ByteBufUtils.getContentDump(buf)); } ctx.write(msg, promise); }