2023-06-26 05:01:20 +08:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
|
|
Date: Sun, 25 Jun 2023 13:57:30 -0700
|
|
|
|
Subject: [PATCH] Sync vehicle position to player position on player data load
|
|
|
|
|
|
|
|
This allows the player to be re-positioned before logging into
|
|
|
|
the world without causing thread checks to trip on Folia.
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
2023-09-27 04:20:12 +08:00
|
|
|
index 3ed41fc4c73e418ea11ed11e365423e014c88715..7bfbcda5cf086c3c50f8cb202ceaf685a899141c 100644
|
2023-06-26 05:01:20 +08:00
|
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
2023-09-27 04:20:12 +08:00
|
|
|
@@ -492,7 +492,13 @@ public abstract class PlayerList {
|
2023-06-26 05:01:20 +08:00
|
|
|
CompoundTag nbttagcompound1 = nbttagcompound.getCompound("RootVehicle");
|
|
|
|
// CraftBukkit start
|
|
|
|
ServerLevel finalWorldServer = worldserver1;
|
|
|
|
+ Vec3 playerPos = player.position(); // Paper - force sync root vehicle to player position
|
|
|
|
Entity entity = EntityType.loadEntityRecursive(nbttagcompound1.getCompound("Entity"), finalWorldServer, (entity1) -> {
|
|
|
|
+ // Paper start - force sync root vehicle to player position
|
|
|
|
+ if (entity1.distanceToSqr(player) > (5.0 * 5.0)) {
|
|
|
|
+ entity1.setPosRaw(playerPos.x, playerPos.y, playerPos.z, true);
|
|
|
|
+ }
|
|
|
|
+ // Paper end - force sync root vehicle to player position
|
|
|
|
return !finalWorldServer.addWithUUID(entity1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.MOUNT) ? null : entity1; // Paper
|
|
|
|
// CraftBukkit end
|
|
|
|
});
|