fa9c5e0f95
Previously, Entity Activation Range only applied to the root entity of a vehicle chain. If that vehicle is active, every entity as it's passenger would then tick. This creates scenarios where EAR does not apply your desired ranges to passengers. Additionally, any entity that was a passenger never had its inactiveTick method called when the parent was inactive, creating behavioral desyncs. This could of been a source of many villager issues when those villagers were in minecarts as players commonly do. Now we will process passengers checking their activation state independently of their vehicle and if they are inactive, call their inactiveTick() method to ensure state remains consistent. This also helps improve any desync issues with entity position of passengers too. This also removes immunity for passenger/vehicles, so it should improve performance of these minecart villagers too for EAR.
28 Zeilen
1.5 KiB
Diff
28 Zeilen
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: 2277 <38501234+2277@users.noreply.github.com>
|
|
Date: Tue, 31 Mar 2020 10:33:55 +0100
|
|
Subject: [PATCH] Move player to spawn point if spawn in unloaded world
|
|
|
|
The code following this has better support for null worlds to move
|
|
them back to the world spawn.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index a1da42cb757cec0114e1c4f435e342291c9143d8..24f8252bf449e27ab7d816288a43e9ad6b282e9a 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -1714,9 +1714,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
bworld = server.getWorld(worldName);
|
|
}
|
|
|
|
- if (bworld == null) {
|
|
- bworld = ((org.bukkit.craftbukkit.CraftServer) server).getServer().getWorldServer(World.OVERWORLD).getWorld();
|
|
- }
|
|
+ // Paper start - Move player to spawn point if spawn in unloaded world
|
|
+// if (bworld == null) {
|
|
+// bworld = ((org.bukkit.craftbukkit.CraftServer) server).getServer().getWorldServer(World.OVERWORLD).getWorld();
|
|
+// }
|
|
+ // Paper end - Move player to spawn point if spawn in unloaded world
|
|
|
|
spawnIn(bworld == null ? null : ((CraftWorld) bworld).getHandle());
|
|
}
|