ce270e1412
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: b2f1908c SPIGOT-5783: Add helpful info to UnknownDependencyException e4f46260 SPIGOT-2623: Add EntityEquipment methods to get/set ItemStacks by slot. 529a9a69 SPIGOT-5751: Clarify behaviour of block drop-related API methods CraftBukkit Changes: 8ea9b138 Remove outdated build delay. ffc2b251 Revert "#675: Fix redirected CommandNodes sometimes not being properly redirected" cb701f6b #675: Fix redirected CommandNodes sometimes not being properly redirected c9d7c16b SPIGOT-2623: Add EntityEquipment methods to get/set ItemStacks by slot. fad2494a #673: Fix Craftworld#isChunkLoaded 8637ec00 SPIGOT-5751: Made breakNaturally and getDrops returns the correct item if no argument is given Spigot Changes: a99063f7 Rebuild patches Fixes #3602
53 lines
3 KiB
Diff
53 lines
3 KiB
Diff
From 0000000000000000000000000000000000000000 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 f4215d38acef8018f09dff5f379c14336647687d..4e4c0acc6c103c85b7ba2a390a54d3513939d547 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -114,7 +114,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
|
|
|
|
@@ -162,6 +162,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();
|
|
|
|
@@ -302,7 +303,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 157738f452493aabdefb228cd527ba85400baad5..611dea90200fe346915d66317e21d94154381e97 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);
|