Skip to content

Commit d656507

Browse files
committed
cleanup packet modules
1 parent 29c766d commit d656507

25 files changed

+123
-119
lines changed

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/BedTrap.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,11 @@ private void onPlayerPostRespawn(PlayerPostRespawnEvent event) {
104104
@Override
105105
@SuppressWarnings("deprecation")
106106
public void onPacketReceive(PacketReceiveEvent event) {
107-
if (event.isCancelled()) return;
108-
if (event.getConnectionState() != ConnectionState.PLAY) return;
107+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
109108
if (event.getPacketType() != PacketType.Play.Client.CLIENT_STATUS) return;
110109
if (new WrapperPlayClientClientStatus(event).getAction() != WrapperPlayClientClientStatus.Action.PERFORM_RESPAWN) return;
111110

112-
Player player = event.getPlayer();
113-
if (player == null) return;
111+
final Player player = event.getPlayer();
114112

115113
if (!deadPlayers.contains(player.getUniqueId()) && !player.isDead()) {
116114
return;

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/BeehiveCoordinates.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.github.retrooper.packetevents.event.PacketListenerPriority;
44
import com.github.retrooper.packetevents.event.PacketSendEvent;
55
import com.github.retrooper.packetevents.manager.server.ServerVersion;
6+
import com.github.retrooper.packetevents.protocol.ConnectionState;
67
import com.github.retrooper.packetevents.protocol.component.ComponentTypes;
78
import com.github.retrooper.packetevents.protocol.component.PatchableComponentMap;
89
import com.github.retrooper.packetevents.protocol.component.builtin.item.BundleContents;
@@ -45,7 +46,7 @@ public BeehiveCoordinates() {
4546

4647
@Override
4748
public void onPacketSend(PacketSendEvent event) {
48-
if (event.isCancelled()) return;
49+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
4950

5051
if (event.getPacketType() == PacketType.Play.Server.SET_SLOT) {
5152
WrapperPlayServerSetSlot packet = new WrapperPlayServerSetSlot(event);

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/BigArguments.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.github.retrooper.packetevents.event.PacketListenerPriority;
44
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
55
import com.github.retrooper.packetevents.netty.buffer.ByteBufHelper;
6+
import com.github.retrooper.packetevents.protocol.ConnectionState;
67
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
78

89
import java.nio.charset.StandardCharsets;
@@ -22,7 +23,7 @@ public BigArguments() {
2223

2324
@Override
2425
public void onPacketReceive(PacketReceiveEvent event) {
25-
if (event.isCancelled()) return;
26+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
2627

2728
if (
2829
event.getPacketType() == PacketType.Play.Client.CHAT_MESSAGE

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/BundleCrash.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.github.retrooper.packetevents.event.PacketListenerPriority;
44
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
55
import com.github.retrooper.packetevents.manager.server.ServerVersion;
6+
import com.github.retrooper.packetevents.protocol.ConnectionState;
67
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
78
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientSelectBundleItem;
89
import me.xginko.aef.utils.enums.Platform;
@@ -23,7 +24,8 @@ public BundleCrash() {
2324

2425
@Override
2526
public void onPacketReceive(PacketReceiveEvent event) {
26-
if (event.isCancelled() || event.getPacketType() != PacketType.Play.Client.SELECT_BUNDLE_ITEM) return;
27+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
28+
if (event.getPacketType() != PacketType.Play.Client.SELECT_BUNDLE_ITEM) return;
2729

2830
WrapperPlayClientSelectBundleItem selectBundleItem = new WrapperPlayClientSelectBundleItem(event);
2931

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/InvalidRecipeID.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ public class InvalidRecipeID extends PacketModule {
2222
private List<?> allRecipeDisplays;
2323

2424
public InvalidRecipeID() {
25-
super("patches.invalid-recipe-id", Platform.getServerVersion().isNewerThanOrEquals(ServerVersion.V_1_21_2), PacketListenerPriority.HIGHEST,
25+
super("patches.invalid-recipe-id", Platform.getServerVersion().isNewerThanOrEquals(ServerVersion.V_1_21_2) &&
26+
Platform.getServerVersion().isOlderThanOrEquals(ServerVersion.V_1_21_4), PacketListenerPriority.HIGHEST,
2627
"Prevents console error spamming of IndexOutOfBoundsException from bad recipe packets.\n" +
27-
"Only relevant for 1.21.2+");
28+
"Only relevant for 1.21.2-4");
2829
this.log = config.getBoolean(configPath + ".log", false);
2930
this.kick = config.getBoolean(configPath + ".kick-player", false);
3031
}
@@ -47,7 +48,8 @@ public void enable() {
4748
public void onPacketReceive(PacketReceiveEvent event) {
4849
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
4950

50-
int recipeIndex;
51+
final int recipeIndex;
52+
5153
if (event.getPacketType() == PacketType.Play.Client.SET_DISPLAYED_RECIPE) {
5254
recipeIndex = new WrapperPlayClientSetDisplayedRecipe(event).getRecipeId().getId();
5355
} else if (event.getPacketType() == PacketType.Play.Client.CRAFT_RECIPE_REQUEST) {

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/InvalidSequence.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.github.retrooper.packetevents.event.PacketListenerPriority;
44
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
55
import com.github.retrooper.packetevents.manager.server.ServerVersion;
6+
import com.github.retrooper.packetevents.protocol.ConnectionState;
67
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
78
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientPlayerBlockPlacement;
89
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientPlayerDigging;
@@ -27,17 +28,20 @@ public InvalidSequence() {
2728

2829
@Override
2930
public void onPacketReceive(PacketReceiveEvent event) {
30-
if (event.isCancelled()) return;
31-
32-
int sequence;
33-
if (event.getPacketType() == PacketType.Play.Client.PLAYER_BLOCK_PLACEMENT) {
34-
sequence = new WrapperPlayClientPlayerBlockPlacement(event).getSequence();
35-
} else if (event.getPacketType() == PacketType.Play.Client.PLAYER_DIGGING) {
36-
sequence = new WrapperPlayClientPlayerDigging(event).getSequence();
37-
} else if (event.getPacketType() == PacketType.Play.Client.USE_ITEM) {
38-
sequence = new WrapperPlayClientUseItem(event).getSequence();
39-
} else {
40-
return;
31+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
32+
33+
final int sequence;
34+
35+
switch (event.getPacketType()) {
36+
case PacketType.Play.Client.PLAYER_BLOCK_PLACEMENT ->
37+
sequence = new WrapperPlayClientPlayerBlockPlacement(event).getSequence();
38+
case PacketType.Play.Client.PLAYER_DIGGING ->
39+
sequence = new WrapperPlayClientPlayerDigging(event).getSequence();
40+
case PacketType.Play.Client.USE_ITEM ->
41+
sequence = new WrapperPlayClientUseItem(event).getSequence();
42+
default -> {
43+
return;
44+
}
4145
}
4246

4347
if (sequence < 0) {

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/InvalidSignUpdate.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.github.retrooper.packetevents.PacketEvents;
44
import com.github.retrooper.packetevents.event.PacketListenerPriority;
55
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
6+
import com.github.retrooper.packetevents.protocol.ConnectionState;
67
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
78
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientUpdateSign;
89
import me.xginko.aef.utils.models.ExpiringSet;
@@ -51,7 +52,7 @@ public void disable() {
5152

5253
@Override
5354
public void onPacketReceive(PacketReceiveEvent event) {
54-
if (event.isCancelled()) return;
55+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
5556
if (event.getPacketType() != PacketType.Play.Client.UPDATE_SIGN) return;
5657

5758
if (cooldowns.contains(event.getUser().getUUID())) {

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/NoComExploit.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.github.retrooper.packetevents.event.PacketListenerPriority;
44
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
5+
import com.github.retrooper.packetevents.protocol.ConnectionState;
56
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
67
import com.github.retrooper.packetevents.util.Vector3i;
78
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientPlayerBlockPlacement;
@@ -35,33 +36,32 @@ public NoComExploit() {
3536

3637
@Override
3738
public void onPacketReceive(PacketReceiveEvent event) {
38-
if (event.isCancelled()) return;
39+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
3940

40-
Vector3i blockPos;
41-
if (event.getPacketType() == PacketType.Play.Client.PLAYER_DIGGING) {
42-
blockPos = new WrapperPlayClientPlayerDigging(event).getBlockPosition();
43-
} else if (event.getPacketType() == PacketType.Play.Client.PLAYER_BLOCK_PLACEMENT) {
44-
blockPos = new WrapperPlayClientPlayerBlockPlacement(event).getBlockPosition();
45-
} else if (event.getPacketType() == PacketType.Play.Client.UPDATE_SIGN) {
46-
blockPos = new WrapperPlayClientUpdateSign(event).getBlockPosition();
47-
} else if (event.getPacketType() == PacketType.Play.Client.QUERY_BLOCK_NBT) {
48-
blockPos = new WrapperPlayClientQueryBlockNBT(event).getBlockPosition();
49-
} else if (event.getPacketType() == PacketType.Play.Client.UPDATE_COMMAND_BLOCK) {
50-
blockPos = new WrapperPlayClientUpdateCommandBlock(event).getPosition();
51-
} else if (event.getPacketType() == PacketType.Play.Client.UPDATE_JIGSAW_BLOCK) {
52-
blockPos = new WrapperPlayClientUpdateJigsawBlock(event).getPosition();
53-
} else {
54-
return;
41+
final Vector3i blockPos;
42+
43+
switch (event.getPacketType()) {
44+
case PacketType.Play.Client.PLAYER_DIGGING ->
45+
blockPos = new WrapperPlayClientPlayerDigging(event).getBlockPosition();
46+
case PacketType.Play.Client.PLAYER_BLOCK_PLACEMENT ->
47+
blockPos = new WrapperPlayClientPlayerBlockPlacement(event).getBlockPosition();
48+
case PacketType.Play.Client.UPDATE_SIGN ->
49+
blockPos = new WrapperPlayClientUpdateSign(event).getBlockPosition();
50+
case PacketType.Play.Client.QUERY_BLOCK_NBT ->
51+
blockPos = new WrapperPlayClientQueryBlockNBT(event).getBlockPosition();
52+
case PacketType.Play.Client.UPDATE_COMMAND_BLOCK ->
53+
blockPos = new WrapperPlayClientUpdateCommandBlock(event).getPosition();
54+
case PacketType.Play.Client.UPDATE_JIGSAW_BLOCK ->
55+
blockPos = new WrapperPlayClientUpdateJigsawBlock(event).getPosition();
56+
default -> {
57+
return;
58+
}
5559
}
5660

5761
if (blockPos.x == 0 && blockPos.y == 0 && blockPos.z == 0) {
5862
return; // PacketTypes like PlayerDigging are also used for dropping and swapping items. This prevents false positives.
5963
}
6064

61-
if (event.getPlayer() == null) {
62-
return;
63-
}
64-
6565
if (distanceSquared(blockPos, ((Entity) event.getPlayer()).getLocation()) > maxDistanceSquared) {
6666
event.setCancelled(true);
6767
onCancel(log, kick, event.getUser());

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/PurpurBeehiveCrash.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.github.retrooper.packetevents.event.PacketListenerPriority;
44
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
5+
import com.github.retrooper.packetevents.protocol.ConnectionState;
56
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
67
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientPluginMessage;
78
import com.google.common.io.ByteStreams;
@@ -39,13 +40,13 @@ public PurpurBeehiveCrash() {
3940

4041
@Override
4142
public void onPacketReceive(PacketReceiveEvent event) {
43+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
4244
if (event.getPacketType() != PacketType.Play.Client.PLUGIN_MESSAGE) return;
43-
if (event.isCancelled() || event.getPlayer() == null) return;
4445

45-
WrapperPlayClientPluginMessage packet = new WrapperPlayClientPluginMessage(event);
46-
if (!packet.getChannelName().equalsIgnoreCase(beehive_c2s_channel)) return;
46+
WrapperPlayClientPluginMessage pluginMessage = new WrapperPlayClientPluginMessage(event);
47+
if (!pluginMessage.getChannelName().equalsIgnoreCase(beehive_c2s_channel)) return;
4748

48-
if (distanceSquared(ByteStreams.newDataInput(packet.getData()).readLong(), ((Entity) event.getPlayer()).getLocation()) > maxDistanceSquared) {
49+
if (distanceSquared(ByteStreams.newDataInput(pluginMessage.getData()).readLong(), ((Entity) event.getPlayer()).getLocation()) > maxDistanceSquared) {
4950
event.setCancelled(true);
5051
onCancel(log, kick, event.getUser());
5152
}

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/TabCompleteCrash.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.github.retrooper.packetevents.event.PacketListenerPriority;
44
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
5+
import com.github.retrooper.packetevents.protocol.ConnectionState;
56
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
67
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientTabComplete;
78
import org.bukkit.permissions.ServerOperator;
@@ -25,7 +26,7 @@ public TabCompleteCrash() {
2526

2627
@Override
2728
public void onPacketReceive(PacketReceiveEvent event) {
28-
if (event.isCancelled()) return;
29+
if (event.isCancelled() || event.getConnectionState() != ConnectionState.PLAY) return;
2930
if (event.getPacketType() != PacketType.Play.Client.TAB_COMPLETE) return;
3031

3132
final String text = new WrapperPlayClientTabComplete(event).getText();
@@ -46,7 +47,7 @@ public void onPacketReceive(PacketReceiveEvent event) {
4647
}
4748
}
4849

49-
if (event.getPlayer() != null && ((ServerOperator) event.getPlayer()).isOp()) return;
50+
if (((ServerOperator) event.getPlayer()).isOp()) return;
5051

5152
for (String sequence : sequences) {
5253
if (text.contains(sequence)) {

0 commit comments

Comments
 (0)