mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-06 00:07:56 +01:00
Update PlayerConnection for all teleportation of players
Previous fix for SPIGOT-1903 only applied to world changes, but many other cases of players been teleporting can cause that same bug. So call it any time setPosition is called to ensure we never falsely trigger "moved too quickly" And this commit may be considered evil to some people.
This commit is contained in:
parent
14f6bee0a1
commit
e0b057c30f
@ -1,9 +1,23 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Sun, 10 Apr 2016 22:36:10 -0400
|
||||
Subject: [PATCH] SPIGOT-1903: Update PlayerConnection on world change
|
||||
Subject: [PATCH] SPIGOT-1903: Update PlayerConnection on teleporting players
|
||||
|
||||
Otherwise the player will trigger a "moved too quickly" next movement packet
|
||||
and rubber band.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -0,0 +0,0 @@ public abstract class Entity implements ICommandListener {
|
||||
this.locX = d0;
|
||||
this.locY = d1;
|
||||
this.locZ = d2;
|
||||
+ if (this instanceof EntityPlayer && ((EntityPlayer) this).playerConnection != null) ((EntityPlayer) this).playerConnection.captureCurrentPosition(); // Paper
|
||||
float f = this.width / 2.0F;
|
||||
float f1 = this.length;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@ -17,16 +31,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
this.l = this.player.locX;
|
||||
this.m = this.player.locY;
|
||||
this.n = this.player.locZ;
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||
}
|
||||
WorldServer worldserver = ((CraftWorld) location.getWorld()).getHandle();
|
||||
entityplayer1.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
|
||||
+ entityplayer1.playerConnection.captureCurrentPosition(); // Paper
|
||||
// CraftBukkit end
|
||||
|
||||
worldserver.getChunkProviderServer().getChunkAt((int) entityplayer1.locX >> 4, (int) entityplayer1.locZ >> 4);
|
||||
--
|
Loading…
Reference in New Issue
Block a user