mirror of
https://github.com/PaperMC/Paper.git
synced 2025-07-26 09:42:06 -07:00
Restore previous PlayerToggleSneakEvent behaviour (#12815)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
This commit is contained in:
@@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling
|
|||||||
Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision
|
Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index 08aba415735733f5968fd032ab7ca249cdcf6cde..ee4397711625344622c81424afd11fd6d967efba 100644
|
index 39a706ae5be3681c32c297c73d57b9bcf56638d4..c8dfd7fdaabc047eec05f1b78c97b551aa0fc586 100644
|
||||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -606,6 +606,7 @@ public class ServerGamePacketListenerImpl
|
@@ -606,6 +606,7 @@ public class ServerGamePacketListenerImpl
|
||||||
|
@@ -166,15 +166,15 @@
|
|||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
+ // Paper start - PlayerToggleSneakEvent
|
+ // Paper start - PlayerToggleSneakEvent
|
||||||
+ net.minecraft.world.entity.player.Input lastInput = this.player.getLastClientInput();
|
+ net.minecraft.world.entity.player.Input lastInput = this.player.getLastClientInput();
|
||||||
+ boolean shiftKeyDown = packet.input().shift();
|
|
||||||
+ if (lastInput.shift() != packet.input().shift()) {
|
+ if (lastInput.shift() != packet.input().shift()) {
|
||||||
+ // Has sneak changed
|
+ // Has sneak changed
|
||||||
+ org.bukkit.event.player.PlayerToggleSneakEvent event = new org.bukkit.event.player.PlayerToggleSneakEvent(this.getCraftPlayer(), packet.input().shift());
|
+ org.bukkit.event.player.PlayerToggleSneakEvent event = new org.bukkit.event.player.PlayerToggleSneakEvent(this.getCraftPlayer(), packet.input().shift());
|
||||||
+ this.cserver.getPluginManager().callEvent(event);
|
+ this.cserver.getPluginManager().callEvent(event);
|
||||||
+
|
+
|
||||||
+ // Technically the player input and the flag is desynced, but this is previous behavior.. so should be fine?
|
+ // Technically the player input and the flag is desynced, but this is previous behavior.. so should be fine?
|
||||||
+ if (event.isCancelled()) {
|
+ if (!event.isCancelled() && this.player.hasClientLoaded()) {
|
||||||
+ shiftKeyDown = this.player.isShiftKeyDown();
|
+ // Only set the shift key status if the shift input has changed and the event has not been cancelled
|
||||||
|
+ this.player.setShiftKeyDown(packet.input().shift());
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - PlayerToggleSneakEvent
|
+ // Paper end - PlayerToggleSneakEvent
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
this.player.resetLastActionTime();
|
this.player.resetLastActionTime();
|
||||||
- this.player.setShiftKeyDown(packet.input().shift());
|
- this.player.setShiftKeyDown(packet.input().shift());
|
||||||
- }
|
- }
|
||||||
+ this.player.setShiftKeyDown(shiftKeyDown); // Paper
|
+ // this.player.setShiftKeyDown(packet.input().shift()); // Paper - move up and only set if event is not cancelled.
|
||||||
+ }
|
+ }
|
||||||
+ // Paper start - Add option to make parrots stay
|
+ // Paper start - Add option to make parrots stay
|
||||||
+ if (packet.input().shift() && this.player.level().paperConfig().entities.behavior.parrotsAreUnaffectedByPlayerMovement) {
|
+ if (packet.input().shift() && this.player.level().paperConfig().entities.behavior.parrotsAreUnaffectedByPlayerMovement) {
|
||||||
|
Reference in New Issue
Block a user