9ff01b16ab
This will be used by my next commit. But trying to get the build going since CI blew up
49 lines
2.2 KiB
Diff
49 lines
2.2 KiB
Diff
From df57dc656157c2df692858b66b253575232f2a68 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Thu, 3 Mar 2016 00:07:23 -0600
|
|
Subject: [PATCH] EAR: Fix bug with teleporting entities
|
|
|
|
[17:53:15] <Aikar> had a reproduceable issue of losing entities on teleport, now resolved
|
|
https://hub.spigotmc.org/stash/projects/SPIGOT/repos/spigot/pull-requests/52/overview
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 96014a9..c99b402 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -119,9 +119,17 @@ public abstract class Entity implements ICommandListener {
|
|
private static final DataWatcherObject<Boolean> aA = DataWatcher.a(Entity.class, DataWatcherRegistry.h);
|
|
private static final DataWatcherObject<Boolean> aB = DataWatcher.a(Entity.class, DataWatcherRegistry.h);
|
|
public boolean aa;
|
|
- public int ab;
|
|
- public int ac;
|
|
- public int ad;
|
|
+ // Paper start - EAR: Fix bug with teleporting entities
|
|
+ public boolean isAddedToChunk() {
|
|
+ int chunkX = MathHelper.floor(locX / 16.0D);
|
|
+ int chunkY = MathHelper.floor(locY / 16.0D);
|
|
+ int chunkZ = MathHelper.floor(locZ / 16.0D);
|
|
+ return aa && getChunkX() == chunkX && getChunkY() == chunkY || getChunkZ() == chunkZ;
|
|
+ }
|
|
+ public int ab; public int getChunkX() { return ab; }
|
|
+ public int ac; public int getChunkY() { return ac; }
|
|
+ public int ad; public int getChunkZ() { return ad; }
|
|
+ // Paper end
|
|
public boolean ah;
|
|
public boolean impulse;
|
|
public int portalCooldown;
|
|
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
|
index f0d3a19..a1bd1a6 100644
|
|
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
|
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
|
@@ -249,7 +249,7 @@ public class ActivationRange
|
|
{
|
|
// Never safe to skip fireworks or entities not yet added to chunk
|
|
// PAIL: inChunk
|
|
- if ( !entity.aa || entity instanceof EntityFireworks ) {
|
|
+ if ( !entity.isAddedToChunk() || entity instanceof EntityFireworks ) { // Paper - EAR: Fix bug with teleporting entities
|
|
return true;
|
|
}
|
|
|
|
--
|
|
2.7.4
|
|
|