diff --git a/src/main/java/org/adde0109/ambassador/forge/packet/GenericForgeLoginWrapperPacket.java b/src/main/java/org/adde0109/ambassador/forge/packet/GenericForgeLoginWrapperPacket.java index d750990..d4cafaf 100644 --- a/src/main/java/org/adde0109/ambassador/forge/packet/GenericForgeLoginWrapperPacket.java +++ b/src/main/java/org/adde0109/ambassador/forge/packet/GenericForgeLoginWrapperPacket.java @@ -1,24 +1,30 @@ package org.adde0109.ambassador.forge.packet; -import com.velocitypowered.proxy.protocol.util.DeferredByteBufHolder; import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; -public class GenericForgeLoginWrapperPacket extends DeferredByteBufHolder implements IForgeLoginWrapperPacket { +public class GenericForgeLoginWrapperPacket implements IForgeLoginWrapperPacket { + + private final byte[] content; private final T context; - GenericForgeLoginWrapperPacket(ByteBuf input, T context) { - super(input); + GenericForgeLoginWrapperPacket(byte[] content, T context) { + this.content = content; this.context = context; } - static public GenericForgeLoginWrapperPacket create(ByteBuf input, Context context) { - return new GenericForgeLoginWrapperPacket<>(input.retain(), context); + static public GenericForgeLoginWrapperPacket read(ByteBuf input, Context context) { + byte[] content = new byte[input.readableBytes()]; + input.readBytes(content); + return new GenericForgeLoginWrapperPacket<>(content, context); } @Override public ByteBuf encode() { - return content(); + ByteBuf buf = Unpooled.buffer(); + buf.writeBytes(content); + return buf; } @Override diff --git a/src/main/java/org/adde0109/ambassador/forge/packet/ModDataPacket.java b/src/main/java/org/adde0109/ambassador/forge/packet/ModDataPacket.java index 7356aeb..bfc6cf4 100644 --- a/src/main/java/org/adde0109/ambassador/forge/packet/ModDataPacket.java +++ b/src/main/java/org/adde0109/ambassador/forge/packet/ModDataPacket.java @@ -3,7 +3,8 @@ package org.adde0109.ambassador.forge.packet; import io.netty.buffer.ByteBuf; public class ModDataPacket extends GenericForgeLoginWrapperPacket { - ModDataPacket(ByteBuf input, Context context) { - super(input, context); + + ModDataPacket(byte[] content, Context context) { + super(content, context); } } diff --git a/src/main/java/org/adde0109/ambassador/forge/pipeline/ForgeLoginWrapperCodec.java b/src/main/java/org/adde0109/ambassador/forge/pipeline/ForgeLoginWrapperCodec.java index 3170a1c..bc161d4 100644 --- a/src/main/java/org/adde0109/ambassador/forge/pipeline/ForgeLoginWrapperCodec.java +++ b/src/main/java/org/adde0109/ambassador/forge/pipeline/ForgeLoginWrapperCodec.java @@ -70,7 +70,7 @@ public class ForgeLoginWrapperCodec extends MessageToMessageCodec