mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 15:49:00 +01:00
Ensure chunks are always loaded on hard position sets
Player Movement, Entity Creation and Teleportation move entities with a very "You are here, no debate" change, making the server register them as there, regardless if that chunk was loaded or not. It appears possible that with hack clients and lag, a player may be able to move fast enough to move into an unloaded chunk and get into a buggy state. To prevent this, we will ensure a chunk is always loaded, guaranteeing that the entity will be properly registered into its new home comfortably. Closes #1316
This commit is contained in:
parent
29da1d351d
commit
0661cf198e
1 changed files with 31 additions and 0 deletions
|
@ -0,0 +1,31 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Thu, 16 Aug 2018 17:36:41 -0400
|
||||
Subject: [PATCH] Ensure chunks are always loaded on hard position sets
|
||||
|
||||
Player Movement, Entity Creation and Teleportation move
|
||||
entities with a very "You are here, no debate" change, making
|
||||
the server register them as there, regardless if that chunk was
|
||||
loaded or not.
|
||||
|
||||
It appears possible that with hack clients and lag, a player
|
||||
may be able to move fast enough to move into an unloaded
|
||||
chunk and get into a buggy state.
|
||||
|
||||
To prevent this, we will ensure a chunk is always loaded,
|
||||
guaranteeing that the entity will be properly registered
|
||||
into its new home comfortably.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 9b5f7fcf72..3c279d3fe8 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, KeyedObject { // Paper
|
||||
this.lastYaw -= 360.0F;
|
||||
}
|
||||
|
||||
+ world.getChunkAt((int) Math.floor(this.locX), (int) Math.floor(this.locZ)); // Paper - ensure chunk is always loaded
|
||||
this.setPosition(this.locX, this.locY, this.locZ);
|
||||
this.setYawPitch(f, f1);
|
||||
}
|
||||
--
|
Loading…
Reference in a new issue