De-duplicate recording channel configuration
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user