Skip to content

Commit 7dff86c

Browse files
committed
Fix the StreamSerializer
String-based methods will still work, but deserializing from a data input stream has been deprecated since it depends on hacky code Fixes #31, Fixes #125
1 parent 4bb917e commit 7dff86c

File tree

10 files changed

+292
-190
lines changed

10 files changed

+292
-190
lines changed

ProtocolLib/src/main/java/com/comphenix/protocol/compat/netty/Netty.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@ public static WrappedByteBuf createPacketBuffer() {
6161
return getCompat().createPacketBuffer();
6262
}
6363

64-
public static WrappedByteBuf allocateUnpooled() {
65-
return getCompat().allocateUnpooled();
66-
}
67-
6864
public static Class<?> getGenericFutureListenerArray() {
6965
return getCompat().getGenericFutureListenerArray();
7066
}
@@ -92,4 +88,12 @@ public static WrappedByteBuf packetReader(DataInputStream input) {
9288
public static WrappedByteBuf packetWriter(DataOutputStream output) {
9389
return getCompat().packetWriter(output);
9490
}
91+
92+
public static WrappedByteBuf copiedBuffer(byte[] array) {
93+
return getCompat().copiedBuffer(array);
94+
}
95+
96+
public static WrappedByteBuf buffer() {
97+
return getCompat().buffer();
98+
}
9599
}

ProtocolLib/src/main/java/com/comphenix/protocol/compat/netty/NettyCompat.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,14 @@
3030
* @author dmulloy2
3131
*/
3232

33+
// TODO: Sort out packet readers/writers
3334
public interface NettyCompat {
3435

3536
WrappedByteBuf createPacketBuffer();
3637

37-
WrappedByteBuf allocateUnpooled();
38+
WrappedByteBuf copiedBuffer(byte[] array);
39+
40+
WrappedByteBuf buffer();
3841

3942
Class<?> getGenericFutureListenerArray();
4043

ProtocolLib/src/main/java/com/comphenix/protocol/compat/netty/WrappedByteBuf.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,6 @@ public interface WrappedByteBuf {
4141
void writeByte(int i);
4242

4343
void writeBytes(byte[] bytes);
44+
45+
byte[] array();
4446
}

ProtocolLib/src/main/java/com/comphenix/protocol/compat/netty/independent/IndependentNetty.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,6 @@ public WrappedByteBuf createPacketBuffer() {
5555
}
5656
}
5757

58-
@Override
59-
public WrappedByteBuf allocateUnpooled() {
60-
return new NettyByteBuf(UnpooledByteBufAllocator.DEFAULT.buffer());
61-
}
62-
6358
@Override
6459
public Class<?> getGenericFutureListenerArray() {
6560
return GenericFutureListener[].class;
@@ -97,4 +92,14 @@ public WrappedByteBuf packetReader(DataInputStream input) {
9792
public WrappedByteBuf packetWriter(DataOutputStream output) {
9893
return new NettyByteBuf(NettyByteBufAdapter.packetWriter(output));
9994
}
95+
96+
@Override
97+
public WrappedByteBuf copiedBuffer(byte[] array) {
98+
return new NettyByteBuf(Unpooled.copiedBuffer(array));
99+
}
100+
101+
@Override
102+
public WrappedByteBuf buffer() {
103+
return new NettyByteBuf(Unpooled.buffer());
104+
}
100105
}

ProtocolLib/src/main/java/com/comphenix/protocol/compat/netty/independent/NettyByteBuf.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,9 @@ public void writeByte(int i) {
7575
public void writeBytes(byte[] bytes) {
7676
handle.get().writeBytes(bytes);
7777
}
78+
79+
@Override
80+
public byte[] array() {
81+
return handle.get().array();
82+
}
7883
}

ProtocolLib/src/main/java/com/comphenix/protocol/utility/MinecraftMethods.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ public Object intercept(Object obj, Method method, Object[] args, MethodProxy pr
174174
// Create our proxy object
175175
Object javaProxy = enhancer.create(
176176
new Class<?>[] { MinecraftReflection.getByteBufClass() },
177-
new Object[] { Netty.allocateUnpooled().getHandle() }
177+
new Object[] { Netty.buffer().getHandle() }
178178
);
179179

180180
Object lookPacket = new PacketContainer(PacketType.Play.Client.CLOSE_WINDOW).getHandle();

0 commit comments

Comments
 (0)