17f71ac87b
Upstream has released updates that appear 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: 70d24eb8 SPIGOT-6587: Update documentation/error of drop chance API CraftBukkit Changes: 470050ad SPIGOT-6587: Update documentation/error of drop chance API 1c39efa3 Fix Inventory#getViewers on the player inventory not returning the player first time their inventory is opened d161627d Fix PrepareItemCraftEvent#isRepair aa1fae73 SPIGOT-6586: EntityChangeBlockEvent for falling block does not cancel properly 8a04072e SPIGOT-6583: Throwing eggs doesn't make sounds Spigot Changes: f773da84 Remove redundant patch cd367234 Rebuild patches
46 lines
2.4 KiB
Diff
46 lines
2.4 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/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
index b4e273363dcdafef1eef76a313c08cf707991603..9dc42d44aa37985374a35c716a867a4c5ddbc1df 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
@@ -309,7 +309,7 @@ public class ServerPlayer extends Player {
|
|
this.stats = server.getPlayerList().getStatisticManager(this);
|
|
this.advancements = server.getPlayerList().getPlayerAdvancements(this);
|
|
this.maxUpStep = 1.0F;
|
|
- this.fudgeSpawnLocation(world);
|
|
+ //this.c(worldserver); // Paper - don't move to spawn on login, only first join
|
|
|
|
this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper
|
|
|
|
@@ -528,7 +528,7 @@ public class ServerPlayer extends Player {
|
|
position = Vec3.atCenterOf(((ServerLevel) world).getSharedSpawnPos());
|
|
}
|
|
this.level = world;
|
|
- this.setPos(position.x(), position.y(), position.z());
|
|
+ this.setPosRaw(position.x(), position.y(), position.z()); // Paper - don't register to chunks yet
|
|
}
|
|
this.gameMode.setLevel((ServerLevel) world);
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
index 22c1aacb517c8bb4a745a52437cfa687de2fe272..7928fe911f56d28ea8baaf0c15685bce4600f883 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -208,6 +208,8 @@ public abstract class PlayerList {
|
|
worldserver1 = worldserver;
|
|
}
|
|
|
|
+ if (nbttagcompound == null) player.fudgeSpawnLocation(worldserver1); // Paper - only move to spawn on first login, otherwise, stay where you are....
|
|
+
|
|
player.setLevel(worldserver1);
|
|
String s1 = "local";
|
|
|