Skip to content

Commit 602ea9f

Browse files
ookiegajwalynxplay
andauthored
Restore previous PlayerToggleSneakEvent behaviour (#12815)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
1 parent 617e5a4 commit 602ea9f

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

paper-server/patches/features/0030-Optimise-collision-checking-in-player-move-packet-ha.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling
66
Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision
77

88
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
9-
index 08aba415735733f5968fd032ab7ca249cdcf6cde..ee4397711625344622c81424afd11fd6d967efba 100644
9+
index 39a706ae5be3681c32c297c73d57b9bcf56638d4..c8dfd7fdaabc047eec05f1b78c97b551aa0fc586 100644
1010
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
1111
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
1212
@@ -606,6 +606,7 @@ public class ServerGamePacketListenerImpl

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,15 +166,15 @@
166166
+ // CraftBukkit end
167167
+ // Paper start - PlayerToggleSneakEvent
168168
+ net.minecraft.world.entity.player.Input lastInput = this.player.getLastClientInput();
169-
+ boolean shiftKeyDown = packet.input().shift();
170169
+ if (lastInput.shift() != packet.input().shift()) {
171170
+ // Has sneak changed
172171
+ org.bukkit.event.player.PlayerToggleSneakEvent event = new org.bukkit.event.player.PlayerToggleSneakEvent(this.getCraftPlayer(), packet.input().shift());
173172
+ this.cserver.getPluginManager().callEvent(event);
174173
+
175174
+ // Technically the player input and the flag is desynced, but this is previous behavior.. so should be fine?
176-
+ if (event.isCancelled()) {
177-
+ shiftKeyDown = this.player.isShiftKeyDown();
175+
+ if (!event.isCancelled() && this.player.hasClientLoaded()) {
176+
+ // Only set the shift key status if the shift input has changed and the event has not been cancelled
177+
+ this.player.setShiftKeyDown(packet.input().shift());
178178
+ }
179179
+ }
180180
+ // Paper end - PlayerToggleSneakEvent
@@ -183,7 +183,7 @@
183183
this.player.resetLastActionTime();
184184
- this.player.setShiftKeyDown(packet.input().shift());
185185
- }
186-
+ this.player.setShiftKeyDown(shiftKeyDown); // Paper
186+
+ // this.player.setShiftKeyDown(packet.input().shift()); // Paper - move up and only set if event is not cancelled.
187187
+ }
188188
+ // Paper start - Add option to make parrots stay
189189
+ if (packet.input().shift() && this.player.level().paperConfig().entities.behavior.parrotsAreUnaffectedByPlayerMovement) {

0 commit comments

Comments
 (0)