Skip to content
This repository was archived by the owner on Apr 4, 2023. It is now read-only.

Commit b8568ff

Browse files
Fix an error when packet_handler isn't in the connection pipeline
Added a fallback for `packet_handler` not being in the connection pipeline for any reason
2 parents 64decc4 + 33afcd1 commit b8568ff

File tree

3 files changed

+102
-36
lines changed

3 files changed

+102
-36
lines changed

1.19.1/src/main/java/me/doclic/noencryption/PlayerListener.java

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,47 @@ public static void startup() {
2525
for (final Player player : Bukkit.getOnlinePlayers()) {
2626

2727
final ChannelPipeline pipeline = new CompatiblePlayer().getChannel(player).pipeline();
28-
pipeline.addBefore("packet_handler", "no_encryption_interceptor", new ChannelDuplexHandler() {
28+
if (pipeline.get("packet_handler") == null) {
29+
pipeline.addFirst("no_encryption_interceptor", new ChannelDuplexHandler() {
2930

30-
@Override
31-
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
31+
@Override
32+
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
3233

33-
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
34-
super.channelRead(channelHandlerContext, newPacket);
34+
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
35+
super.channelRead(channelHandlerContext, newPacket);
3536

36-
}
37+
}
3738

38-
@Override
39-
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
39+
@Override
40+
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
4041

41-
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
42-
super.write(channelHandlerContext, newPacket, promise);
42+
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
43+
super.write(channelHandlerContext, newPacket, promise);
4344

44-
}
45+
}
4546

46-
});
47+
});
48+
} else {
49+
pipeline.addBefore("packet_handler", "no_encryption_interceptor", new ChannelDuplexHandler() {
50+
51+
@Override
52+
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
53+
54+
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
55+
super.channelRead(channelHandlerContext, newPacket);
56+
57+
}
58+
59+
@Override
60+
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
61+
62+
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
63+
super.write(channelHandlerContext, newPacket, promise);
64+
65+
}
66+
67+
});
68+
}
4769

4870
}
4971

1.19.2/src/main/java/me/doclic/noencryption/PlayerListener.java

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,25 +59,47 @@ public void onPlayerJoin (PlayerJoinEvent e) {
5959
if (e.getPlayer().isOnline()) {
6060
final Player player = e.getPlayer();
6161
final ChannelPipeline pipeline = new CompatiblePlayer().getChannel(player).pipeline();
62-
pipeline.addBefore("packet_handler", "no_encryption_interceptor", new ChannelDuplexHandler() {
62+
if (pipeline.get("packet_handler") == null) {
63+
pipeline.addFirst("no_encryption_interceptor", new ChannelDuplexHandler() {
6364

64-
@Override
65-
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
65+
@Override
66+
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
6667

67-
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
68-
super.channelRead(channelHandlerContext, newPacket);
68+
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
69+
super.channelRead(channelHandlerContext, newPacket);
6970

70-
}
71+
}
7172

72-
@Override
73-
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
73+
@Override
74+
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
7475

75-
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
76-
super.write(channelHandlerContext, newPacket, promise);
76+
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
77+
super.write(channelHandlerContext, newPacket, promise);
7778

78-
}
79+
}
7980

80-
});
81+
});
82+
} else {
83+
pipeline.addBefore("packet_handler", "no_encryption_interceptor", new ChannelDuplexHandler() {
84+
85+
@Override
86+
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
87+
88+
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
89+
super.channelRead(channelHandlerContext, newPacket);
90+
91+
}
92+
93+
@Override
94+
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
95+
96+
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
97+
super.write(channelHandlerContext, newPacket, promise);
98+
99+
}
100+
101+
});
102+
}
81103
}
82104

83105
} else {

1.19/src/main/java/me/doclic/noencryption/PlayerListener.java

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,47 @@ public static void startup() {
2525
for (final Player player : Bukkit.getOnlinePlayers()) {
2626

2727
final ChannelPipeline pipeline = new CompatiblePlayer().getChannel(player).pipeline();
28-
pipeline.addBefore("packet_handler", "no_encryption_interceptor", new ChannelDuplexHandler() {
28+
if (pipeline.get("packet_handler") == null) {
29+
pipeline.addFirst("no_encryption_interceptor", new ChannelDuplexHandler() {
2930

30-
@Override
31-
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
31+
@Override
32+
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
3233

33-
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
34-
super.channelRead(channelHandlerContext, newPacket);
34+
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
35+
super.channelRead(channelHandlerContext, newPacket);
3536

36-
}
37+
}
3738

38-
@Override
39-
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
39+
@Override
40+
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
4041

41-
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
42-
super.write(channelHandlerContext, newPacket, promise);
42+
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
43+
super.write(channelHandlerContext, newPacket, promise);
4344

44-
}
45+
}
4546

46-
});
47+
});
48+
} else {
49+
pipeline.addBefore("packet_handler", "no_encryption_interceptor", new ChannelDuplexHandler() {
50+
51+
@Override
52+
public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
53+
54+
Object newPacket = new CompatiblePacketListener().readPacket(channelHandlerContext, packet);
55+
super.channelRead(channelHandlerContext, newPacket);
56+
57+
}
58+
59+
@Override
60+
public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise promise) throws Exception {
61+
62+
Object newPacket = new CompatiblePacketListener().writePacket(channelHandlerContext, packet, promise);
63+
super.write(channelHandlerContext, newPacket, promise);
64+
65+
}
66+
67+
});
68+
}
4769

4870
}
4971

0 commit comments

Comments
 (0)