mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-18 12:48:53 +01:00
da9d110d5b
This patch does not appear to be doing anything useful, and may hide errors. Currently, the save logic does not run through this path either so it did not do anything. Additionally, properly implement support for handling RegionFileSizeException in Moonrise.
48 lines
2.8 KiB
Diff
48 lines
2.8 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.
|
|
|
|
== AT ==
|
|
public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
index 9f3a7ba170b729fad228e212436f15bb8169f906..5437ccea0205c23435de3584b26ee5a48afc5d1b 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
@@ -419,7 +419,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
|
|
this.server = server;
|
|
this.stats = server.getPlayerList().getPlayerStats(this);
|
|
this.advancements = server.getPlayerList().getPlayerAdvancements(this);
|
|
- this.moveTo(this.adjustSpawnLocation(world, world.getSharedSpawnPos()).getBottomCenter(), 0.0F, 0.0F);
|
|
+ // this.moveTo(this.adjustSpawnLocation(world, world.getSharedSpawnPos()).getBottomCenter(), 0.0F, 0.0F); // Paper - Don't move existing players to world spawn
|
|
this.updateOptions(clientOptions);
|
|
this.object = null;
|
|
|
|
@@ -856,7 +856,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
|
|
position = Vec3.atCenterOf(world.getSharedSpawnPos());
|
|
}
|
|
this.setLevel(world);
|
|
- this.setPos(position);
|
|
+ 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 2f48182fea64a82857cbb93dc94f7019ac55215a..e137278f9dc02eefaaf7071a3219436a94cfcfac 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -226,6 +226,7 @@ public abstract class PlayerList {
|
|
// Paper start - Entity#getEntitySpawnReason
|
|
if (optional.isEmpty()) {
|
|
player.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; // set Player SpawnReason to DEFAULT on first login
|
|
+ player.moveTo(player.adjustSpawnLocation(worldserver1, worldserver1.getSharedSpawnPos()).getBottomCenter(), 0.0F, 0.0F);
|
|
}
|
|
// Paper end - Entity#getEntitySpawnReason
|
|
player.setServerLevel(worldserver1);
|