From a53287b2581039fde0984b15d87a04b5982f6038 Mon Sep 17 00:00:00 2001 From: Jakfut Date: Tue, 27 Oct 2026 21:14:08 +0000 Subject: [PATCH 1/2] Send only the written bytes of each network packet --- src/main/java/detrav/net/DetravNetwork.java | 3 ++- src/main/java/gregtech/common/GTNetwork.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/detrav/net/DetravNetwork.java b/src/main/java/detrav/net/DetravNetwork.java index 30bdb23157e..be3a440456c 100644 --- a/src/main/java/detrav/net/DetravNetwork.java +++ b/src/main/java/detrav/net/DetravNetwork.java @@ -38,9 +38,10 @@ protected void encode(ChannelHandlerContext ctx, DetravPacket msg, List ByteBuf buf = Unpooled.buffer(); buf.writeByte(msg.getPacketID()); msg.encode(new ByteBufOutputStream(buf)); + // FMLProxyPacket sends the whole backing array of its buffer, so give it one holding only the written bytes out.add( new FMLProxyPacket( - buf, + buf.copy(), ctx.channel() .attr(NetworkRegistry.FML_CHANNEL) .get())); diff --git a/src/main/java/gregtech/common/GTNetwork.java b/src/main/java/gregtech/common/GTNetwork.java index f118f7120e0..892f498669f 100644 --- a/src/main/java/gregtech/common/GTNetwork.java +++ b/src/main/java/gregtech/common/GTNetwork.java @@ -55,9 +55,10 @@ protected void encode(ChannelHandlerContext aContext, GTPacket aPacket, List Date: Tue, 27 Oct 2026 21:29:46 +0000 Subject: [PATCH 2/2] Send only the written bytes of the large molecular assembler's crafting effect item --- src/main/java/gregtech/api/net/GTPacketLMACraftingFX.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/net/GTPacketLMACraftingFX.java b/src/main/java/gregtech/api/net/GTPacketLMACraftingFX.java index 35537e75066..5f2a7eeaa9c 100644 --- a/src/main/java/gregtech/api/net/GTPacketLMACraftingFX.java +++ b/src/main/java/gregtech/api/net/GTPacketLMACraftingFX.java @@ -51,7 +51,9 @@ public void encode(ByteBuf buffer) { try { ByteBuf stackBuffer = Unpooled.buffer(); itemStack.writeToPacket(stackBuffer); - byte[] data = stackBuffer.array(); + // only the written bytes: the backing array also holds the buffer's unused capacity + byte[] data = new byte[stackBuffer.readableBytes()]; + stackBuffer.readBytes(data); buffer.writeInt(data.length); buffer.writeBytes(data); } catch (IOException e) {