mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 15:08:27 +02:00
Upstream has released updates that appears 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: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
57 lines
2.9 KiB
Diff
57 lines
2.9 KiB
Diff
From 3761e0c1541d0ec88c01ac318204538ee4c43315 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Thu, 9 Apr 2020 21:20:33 -0400
|
|
Subject: [PATCH] Don't move existing players to world spawn
|
|
|
|
This can cause a nasty server lag the spawn chunks are not kept loaded
|
|
or they aren't finished loading yet, or if the world spawn radius is
|
|
larger than the keep loaded range.
|
|
|
|
By skipping this, we avoid potential for a large spike on server start.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
index a16a8c10a2..50886c1374 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -118,7 +118,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
this.serverStatisticManager = minecraftserver.getPlayerList().getStatisticManager(this);
|
|
this.advancementDataPlayer = minecraftserver.getPlayerList().f(this);
|
|
this.H = 1.0F;
|
|
- this.a(worldserver);
|
|
+ //this.a(worldserver); // Paper - don't move to spawn on login, only first join
|
|
|
|
this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper
|
|
|
|
@@ -166,6 +166,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
}
|
|
// CraftBukkit end
|
|
|
|
+ public void moveToSpawn(WorldServer worldserver) { a(worldserver); } // Paper - OBFHELPER
|
|
private void a(WorldServer worldserver) {
|
|
BlockPosition blockposition = worldserver.getSpawn();
|
|
|
|
@@ -306,7 +307,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
position = new Vec3D(world.getSpawn());
|
|
}
|
|
this.world = world;
|
|
- this.setPosition(position.getX(), position.getY(), position.getZ());
|
|
+ this.setPositionRaw(position.getX(), position.getY(), position.getZ()); // Paper - don't register to chunks yet
|
|
}
|
|
this.dimension = ((WorldServer) this.world).getWorldProvider().getDimensionManager();
|
|
this.playerInteractManager.a((WorldServer) world);
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
|
index 01345a62b7..dfe6251576 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
|
@@ -108,6 +108,7 @@ public abstract class PlayerList {
|
|
NBTTagCompound bukkit = nbttagcompound.getCompound("bukkit");
|
|
s = bukkit.hasKeyOfType("lastKnownName", 8) ? bukkit.getString("lastKnownName") : s;
|
|
}
|
|
+ if (nbttagcompound == null) entityplayer.moveToSpawn(worldserver); // Paper - only move to spawn on first login, otherwise, stay where you are....
|
|
// CraftBukkit end
|
|
|
|
entityplayer.spawnIn(worldserver);
|
|
--
|
|
2.26.2
|
|
|