geforkt von Mirrors/Paper
d8847bc1f3
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: fde5602a PR-927: Add PlayerRecipeBookSettingsChangeEvent 949ff217 PR-930: Add methods to get/set evoker fang attack delay f6f7c79d SPIGOT-7514, PR-929: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics d40e22da PR-712: Add API to get full result of crafting items CraftBukkit Changes: c8feb0629 PR-1291: Improve precondition message in Entity#playEffect 482c56a00 PR-1285: Add PlayerRecipeBookSettingsChangeEvent cdf798800 PR-1290: Add methods to get/set evoker fang attack delay 2c1b5f78f SPIGOT-7514, PR-1289: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics 6aa644ae9 PR-992: Add API to get full result of crafting items ffb1319bc PR-1287: Fix scoreboards not updating in Player#setStatistic
32 Zeilen
1.9 KiB
Diff
32 Zeilen
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Fri, 12 Jun 2020 16:51:39 -0700
|
|
Subject: [PATCH] Prevent position desync in playerconnection causing tp
|
|
exploit
|
|
|
|
Caused the server to revert to the player's overworld coordinates
|
|
after teleporting into the end.
|
|
|
|
Sidenote: The underlying issue is that the move call can teleport
|
|
entities and do other things like kill the entity. In the future,
|
|
to fix all exploits derieved from this usually unexpected
|
|
behaviour, we need to move all of this dangerous logic outside
|
|
of the move call and into an appropriate place in the tick method.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
index c251202cb6b69b4dfa46b6836c6da1664f533738..3f9f2e4b64df72f3f01aed191d57766978c5886c 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -1341,6 +1341,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
|
|
|
this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
|
|
this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move
|
|
+ // Paper start - prevent position desync
|
|
+ if (this.awaitingPositionFromClient != null) {
|
|
+ return; // ... thanks Mojang for letting move calls teleport across dimensions.
|
|
+ }
|
|
+ // Paper end - prevent position desync
|
|
double d11 = d7;
|
|
|
|
d6 = d0 - this.player.getX();
|