De-duplicate recording channel configuration

This commit is contained in:
Jonas Herzig
2024-05-19 17:05:31 +02:00
parent 675134e6d6
commit 3f12413c6b
2 changed files with 3 additions and 17 deletions

View File

@@ -159,9 +159,11 @@ public class ConnectionEventHandler {
if (channel.pipeline().get(PacketListener.DECODER_KEY) != null) { if (channel.pipeline().get(PacketListener.DECODER_KEY) != null) {
// Regular channel, we'll inject our recorder directly before the decoder // Regular channel, we'll inject our recorder directly before the decoder
channel.pipeline().addBefore(PacketListener.DECODER_KEY, PacketListener.RAW_RECORDER_KEY, packetListener); channel.pipeline().addBefore(PacketListener.DECODER_KEY, PacketListener.RAW_RECORDER_KEY, packetListener);
channel.pipeline().addAfter(PacketListener.DECODER_KEY, PacketListener.DECODED_RECORDER_KEY, packetListener.new DecodedPacketListener());
} else { } else {
// Integrated server passes packets directly, there's no splitting, decompression or decoding // Integrated server passes packets directly, there's no splitting, decompression or decoding
channel.pipeline().addFirst(PacketListener.RAW_RECORDER_KEY, packetListener); channel.pipeline().addFirst(PacketListener.RAW_RECORDER_KEY, packetListener);
channel.pipeline().addAfter(PacketListener.RAW_RECORDER_KEY, PacketListener.DECODED_RECORDER_KEY, packetListener.new DecodedPacketListener());
} }
recordingEventHandler = new RecordingEventHandler(packetListener); recordingEventHandler = new RecordingEventHandler(packetListener);

View File

@@ -218,22 +218,6 @@ public class PacketListener extends ChannelInboundHandlerAdapter {
} }
} }
@Override
public void handlerAdded(ChannelHandlerContext ctx) throws Exception {
super.handlerAdded(ctx);
if (ctx.pipeline().get(DECODED_RECORDER_KEY) == null) {
if (ctx.pipeline().get(PacketListener.DECODER_KEY) != null) {
// Regular channel, we'll inject our decoded recorder directly after the decoder
ctx.pipeline().addAfter(DECODER_KEY, DECODED_RECORDER_KEY, new DecodedPacketListener());
} else {
// Integrated server passes packets directly, there's no splitting, decompression or decoding
// The decoded packet handler can just go directly behind this hand
ctx.pipeline().addAfter(RAW_RECORDER_KEY, DECODED_RECORDER_KEY, new DecodedPacketListener());
}
}
}
@Override @Override
public void channelInactive(ChannelHandlerContext ctx) { public void channelInactive(ChannelHandlerContext ctx) {
metaData.setDuration((int) lastSentPacket); metaData.setDuration((int) lastSentPacket);
@@ -450,7 +434,7 @@ public class PacketListener extends ChannelInboundHandlerAdapter {
return resourcePackRecorder; return resourcePackRecorder;
} }
private class DecodedPacketListener extends ChannelInboundHandlerAdapter { public class DecodedPacketListener extends ChannelInboundHandlerAdapter {
@Override @Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {