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

Commit 51de3d6

Browse files
BillyGalbreathgranny
authored andcommitted
Add more logger output for invalid movement kicks
1 parent db412df commit 51de3d6

2 files changed

Lines changed: 25 additions & 35 deletions

File tree

patches/server/0249-Add-more-logger-output-for-invalid-movement-kicks.patch

Lines changed: 0 additions & 35 deletions
This file was deleted.

purpur-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@
4343
Location oldTo = to.clone();
4444
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
4545
this.cserver.getPluginManager().callEvent(event);
46+
@@ -709,6 +_,7 @@
47+
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
48+
if (packet.getId() == this.awaitingTeleport) {
49+
if (this.awaitingPositionFromClient == null) {
50+
+ ServerGamePacketListenerImpl.LOGGER.warn("Disconnected on accept teleport packet. Was not expecting position data from client at this time"); // Purpur - Add more logger output for invalid movement kicks
51+
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
52+
return;
53+
}
4654
@@ -1169,6 +_,10 @@
4755
final int maxBookPageSize = pageMax.intValue();
4856
final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
@@ -131,6 +139,23 @@
131139
@Override
132140
public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) {
133141
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
142+
@@ -1285,7 +_,15 @@
143+
@Override
144+
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
145+
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
146+
- if (containsInvalidValues(packet.getX(0.0), packet.getY(0.0), packet.getZ(0.0), packet.getYRot(0.0F), packet.getXRot(0.0F))) {
147+
+ // Purpur start - Add more logger output for invalid movement kicks
148+
+ boolean invalidX = Double.isNaN(packet.getX(0.0));
149+
+ boolean invalidY = Double.isNaN(packet.getY(0.0));
150+
+ boolean invalidZ = Double.isNaN(packet.getZ(0.0));
151+
+ boolean invalidYaw = !Floats.isFinite(packet.getYRot(0.0F));
152+
+ boolean invalidPitch = !Floats.isFinite(packet.getXRot(0.0F));
153+
+ if (invalidX || invalidY || invalidZ || invalidYaw || invalidPitch) {
154+
+ ServerGamePacketListenerImpl.LOGGER.warn(String.format("Disconnected on move player packet. Invalid data: x=%b, y=%b, z=%b, yaw=%b, pitch=%b", invalidX, invalidY, invalidZ, invalidYaw, invalidPitch));
155+
+ // Purpur end - Add more logger output for invalid movement kicks
156+
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
157+
} else {
158+
ServerLevel serverLevel = this.player.serverLevel();
134159
@@ -1460,7 +_,7 @@
135160
movedWrongly = true;
136161
if (event.getLogWarning())

0 commit comments

Comments
 (0)