Skip to content

Commit cfa7aab

Browse files
committed
Cleaned up bedrock netty pipeline
1 parent 7919c95 commit cfa7aab

File tree

4 files changed

+37
-33
lines changed

4 files changed

+37
-33
lines changed

src/main/java/com/viaversion/vialoader/netty/VLLegacyPipeline.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
package com.viaversion.vialoader.netty;
2222

2323
import com.viaversion.vialoader.netty.viabedrock.DisconnectHandler;
24-
import com.viaversion.vialoader.netty.viabedrock.RakNetMessageEncapsulationCodec;
24+
import com.viaversion.vialoader.netty.viabedrock.RakNetMessageCodec;
2525
import com.viaversion.viaversion.api.Via;
2626
import com.viaversion.viaversion.api.connection.UserConnection;
2727
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
@@ -31,7 +31,7 @@
3131
import io.netty.channel.ChannelHandlerContext;
3232
import io.netty.channel.ChannelInboundHandlerAdapter;
3333
import net.raphimc.viabedrock.netty.BatchLengthCodec;
34-
import net.raphimc.viabedrock.netty.PacketEncapsulationCodec;
34+
import net.raphimc.viabedrock.netty.PacketCodec;
3535
import net.raphimc.vialegacy.netty.PreNettyLengthPrepender;
3636
import net.raphimc.vialegacy.netty.PreNettyLengthRemover;
3737

@@ -44,8 +44,8 @@ public abstract class VLLegacyPipeline extends ChannelInboundHandlerAdapter {
4444
public static final String VIALEGACY_PRE_NETTY_LENGTH_REMOVER_NAME = "vialegacy-pre-netty-length-remover";
4545

4646
public static final String VIABEDROCK_DISCONNECT_HANDLER_NAME = "viabedrock-disconnect-handler";
47-
public static final String VIABEDROCK_FRAME_ENCAPSULATION_HANDLER_NAME = "viabedrock-frame-encapsulation";
48-
public static final String VIABEDROCK_PACKET_ENCAPSULATION_HANDLER_NAME = "viabedrock-packet-encapsulation";
47+
public static final String VIABEDROCK_RAKNET_MESSAGE_CODEC_NAME = "viabedrock-raknet-message-codec";
48+
public static final String VIABEDROCK_PACKET_CODEC_NAME = "viabedrock-packet-codec";
4949

5050
protected final UserConnection connection;
5151
protected final ProtocolVersion version;
@@ -71,10 +71,10 @@ public void handlerAdded(ChannelHandlerContext ctx) {
7171
ctx.pipeline().addBefore(this.lengthPrependerName(), VIALEGACY_PRE_NETTY_LENGTH_REMOVER_NAME, this.createViaLegacyPreNettyLengthRemover());
7272
} else if (this.version.getName().startsWith("Bedrock")) {
7373
ctx.pipeline().addBefore(this.lengthSplitterName(), VIABEDROCK_DISCONNECT_HANDLER_NAME, this.createViaBedrockDisconnectHandler());
74-
ctx.pipeline().addBefore(this.lengthSplitterName(), VIABEDROCK_FRAME_ENCAPSULATION_HANDLER_NAME, this.createViaBedrockFrameEncapsulationHandler());
74+
ctx.pipeline().addBefore(this.lengthSplitterName(), VIABEDROCK_RAKNET_MESSAGE_CODEC_NAME, this.createViaBedrockRakNetMessageCodec());
7575
this.replaceLengthSplitter(ctx, this.createViaBedrockBatchLengthCodec());
7676
ctx.pipeline().remove(this.lengthPrependerName());
77-
ctx.pipeline().addBefore(VIA_DECODER_NAME, VIABEDROCK_PACKET_ENCAPSULATION_HANDLER_NAME, this.createViaBedrockPacketEncapsulationHandler());
77+
ctx.pipeline().addBefore(VIA_DECODER_NAME, VIABEDROCK_PACKET_CODEC_NAME, this.createViaBedrockPacketCodec());
7878
}
7979
}
8080
}
@@ -120,16 +120,16 @@ protected ChannelHandler createViaBedrockDisconnectHandler() {
120120
return new DisconnectHandler();
121121
}
122122

123-
protected ChannelHandler createViaBedrockFrameEncapsulationHandler() {
124-
return new RakNetMessageEncapsulationCodec();
123+
protected ChannelHandler createViaBedrockRakNetMessageCodec() {
124+
return new RakNetMessageCodec();
125125
}
126126

127127
protected ChannelHandler createViaBedrockBatchLengthCodec() {
128128
return new BatchLengthCodec();
129129
}
130130

131-
protected ChannelHandler createViaBedrockPacketEncapsulationHandler() {
132-
return new PacketEncapsulationCodec();
131+
protected ChannelHandler createViaBedrockPacketCodec() {
132+
return new PacketCodec();
133133
}
134134

135135
protected void replaceLengthSplitter(final ChannelHandlerContext ctx, final ChannelHandler handler) {

src/main/java/com/viaversion/vialoader/netty/VLPipeline.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
package com.viaversion.vialoader.netty;
2222

2323
import com.viaversion.vialoader.netty.viabedrock.DisconnectHandler;
24-
import com.viaversion.vialoader.netty.viabedrock.RakNetMessageEncapsulationCodec;
24+
import com.viaversion.vialoader.netty.viabedrock.RakNetMessageCodec;
2525
import com.viaversion.viaversion.api.Via;
2626
import com.viaversion.viaversion.api.connection.UserConnection;
2727
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
@@ -32,7 +32,7 @@
3232
import io.netty.channel.ChannelInboundHandlerAdapter;
3333
import io.netty.channel.ChannelPipeline;
3434
import net.raphimc.viabedrock.netty.BatchLengthCodec;
35-
import net.raphimc.viabedrock.netty.PacketEncapsulationCodec;
35+
import net.raphimc.viabedrock.netty.PacketCodec;
3636
import net.raphimc.vialegacy.netty.PreNettyLengthCodec;
3737

3838
public abstract class VLPipeline extends ChannelInboundHandlerAdapter {
@@ -42,8 +42,8 @@ public abstract class VLPipeline extends ChannelInboundHandlerAdapter {
4242
public static final String VIALEGACY_PRE_NETTY_LENGTH_CODEC_NAME = "vialegacy-pre-netty-length-codec";
4343

4444
public static final String VIABEDROCK_DISCONNECT_HANDLER_NAME = "viabedrock-disconnect-handler";
45-
public static final String VIABEDROCK_FRAME_ENCAPSULATION_HANDLER_NAME = "viabedrock-frame-encapsulation";
46-
public static final String VIABEDROCK_PACKET_ENCAPSULATION_HANDLER_NAME = "viabedrock-packet-encapsulation";
45+
public static final String VIABEDROCK_RAKNET_MESSAGE_CODEC_NAME = "viabedrock-raknet-message-codec";
46+
public static final String VIABEDROCK_PACKET_CODEC_NAME = "viabedrock-packet-codec";
4747

4848
protected final UserConnection connection;
4949
protected final ProtocolVersion version;
@@ -67,9 +67,9 @@ public void handlerAdded(ChannelHandlerContext ctx) {
6767
ctx.pipeline().addBefore(this.lengthCodecName(), VIALEGACY_PRE_NETTY_LENGTH_CODEC_NAME, this.createViaLegacyPreNettyLengthCodec());
6868
} else if (this.version.getName().startsWith("Bedrock")) {
6969
ctx.pipeline().addBefore(this.lengthCodecName(), VIABEDROCK_DISCONNECT_HANDLER_NAME, this.createViaBedrockDisconnectHandler());
70-
ctx.pipeline().addBefore(this.lengthCodecName(), VIABEDROCK_FRAME_ENCAPSULATION_HANDLER_NAME, this.createViaBedrockFrameEncapsulationHandler());
70+
ctx.pipeline().addBefore(this.lengthCodecName(), VIABEDROCK_RAKNET_MESSAGE_CODEC_NAME, this.createViaBedrockRakNetMessageCodec());
7171
this.replaceLengthCodec(ctx, this.createViaBedrockBatchLengthCodec());
72-
ctx.pipeline().addBefore(VIA_CODEC_NAME, VIABEDROCK_PACKET_ENCAPSULATION_HANDLER_NAME, this.createViaBedrockPacketEncapsulationHandler());
72+
ctx.pipeline().addBefore(VIA_CODEC_NAME, VIABEDROCK_PACKET_CODEC_NAME, this.createViaBedrockPacketCodec());
7373
}
7474
}
7575
}
@@ -99,16 +99,16 @@ protected ChannelHandler createViaBedrockDisconnectHandler() {
9999
return new DisconnectHandler();
100100
}
101101

102-
protected ChannelHandler createViaBedrockFrameEncapsulationHandler() {
103-
return new RakNetMessageEncapsulationCodec();
102+
protected ChannelHandler createViaBedrockRakNetMessageCodec() {
103+
return new RakNetMessageCodec();
104104
}
105105

106106
protected ChannelHandler createViaBedrockBatchLengthCodec() {
107107
return new BatchLengthCodec();
108108
}
109109

110-
protected ChannelHandler createViaBedrockPacketEncapsulationHandler() {
111-
return new PacketEncapsulationCodec();
110+
protected ChannelHandler createViaBedrockPacketCodec() {
111+
return new PacketCodec();
112112
}
113113

114114
protected void replaceLengthCodec(final ChannelHandlerContext ctx, final ChannelHandler handler) {

src/main/java/com/viaversion/vialoader/netty/viabedrock/RakNetMessageEncapsulationCodec.java renamed to src/main/java/com/viaversion/vialoader/netty/viabedrock/RakNetMessageCodec.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,37 +30,37 @@
3030

3131
import java.util.List;
3232

33-
public class RakNetMessageEncapsulationCodec extends MessageToMessageCodec<RakMessage, ByteBuf> {
33+
public class RakNetMessageCodec extends MessageToMessageCodec<RakMessage, ByteBuf> {
3434

35-
private static final int FRAME_ID = 0xFE;
35+
private static final int MINECRAFT_MESSAGE_ID = 0xFE;
3636

3737
@Override
38-
protected void encode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) {
38+
protected void encode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
3939
final CompositeByteBuf buf = ctx.alloc().compositeBuffer(2);
4040
try {
41-
buf.addComponent(true, ctx.alloc().ioBuffer(1).writeByte(FRAME_ID));
42-
buf.addComponent(true, msg.retainedSlice());
41+
buf.addComponent(true, ctx.alloc().ioBuffer(1).writeByte(MINECRAFT_MESSAGE_ID));
42+
buf.addComponent(true, in.retainedSlice());
4343
out.add(new RakMessage(buf.retain()));
4444
} finally {
4545
buf.release();
4646
}
4747
}
4848

4949
@Override
50-
protected void decode(ChannelHandlerContext ctx, RakMessage msg, List<Object> out) {
51-
if (msg.channel() != 0 && msg.reliability() != RakReliability.RELIABLE_ORDERED) {
50+
protected void decode(ChannelHandlerContext ctx, RakMessage in, List<Object> out) {
51+
if (in.channel() != 0 && in.reliability() != RakReliability.RELIABLE_ORDERED) {
5252
return;
5353
}
54-
final ByteBuf in = msg.content();
55-
if (!in.isReadable()) {
54+
final ByteBuf buf = in.content();
55+
if (!buf.isReadable()) {
5656
return;
5757
}
58-
final int id = in.readUnsignedByte();
59-
if (id != FRAME_ID) { // Mojang client seems to ignore invalid frames
60-
ViaBedrock.getPlatform().getLogger().warning("Received invalid RakNet frame id: " + id);
58+
final int messageId = buf.readUnsignedByte();
59+
if (messageId != MINECRAFT_MESSAGE_ID) { // Mojang client seems to ignore invalid messages
60+
ViaBedrock.getPlatform().getLogger().warning("Received invalid RakNet message id: " + messageId);
6161
return;
6262
}
63-
out.add(in.readRetainedSlice(in.readableBytes()));
63+
out.add(buf.readRetainedSlice(buf.readableBytes()));
6464
}
6565

6666
}

src/main/java/com/viaversion/vialoader/netty/viabedrock/RakNetPingEncapsulationCodec.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.net.InetSocketAddress;
3131
import java.util.List;
3232

33+
@Deprecated
3334
public class RakNetPingEncapsulationCodec extends MessageToMessageCodec<RakPong, ByteBuf> {
3435

3536
private final InetSocketAddress remoteAddress;
@@ -60,6 +61,9 @@ protected void decode(ChannelHandlerContext ctx, RakPong in, List<Object> out) {
6061
final ByteBuf buf = ctx.alloc().buffer();
6162
buf.writeByte(RakConstants.ID_UNCONNECTED_PONG);
6263
buf.writeLong(in.getPingTime());
64+
buf.writeLong(in.getGuid());
65+
buf.writeBytes(RakConstants.DEFAULT_UNCONNECTED_MAGIC);
66+
buf.writeShort(in.getPongData().readableBytes());
6367
buf.writeBytes(in.getPongData());
6468
out.add(buf);
6569
}

0 commit comments

Comments
 (0)