From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ivan Pekov Date: Wed, 26 Aug 2020 21:01:33 +0300 Subject: [PATCH] Load also the chunk that you're teleporting to Fixes Tuinity-178 diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java index 00930eeea75758645b173f4bc2fbf635e1d426ba..2df0162d70d4d60f05565d22cb4ef69b21f2d4bf 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -225,7 +225,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { return true; } - public final void loadChunksForMoveAsync(AxisAlignedBB axisalignedbb, double toX, double toZ, + public final void loadChunksForMoveAsync(AxisAlignedBB axisalignedbb, int toX, int toZ, // Yatopia java.util.function.Consumer> onLoad) { if (Thread.currentThread() != this.serverThread) { this.getChunkProvider().serverThreadQueue.execute(() -> { @@ -282,6 +282,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { chunkProvider.getChunkAtAsynchronously(cx, cz, ChunkStatus.FULL, true, false, consumer); } } + chunkProvider.getChunkAtAsynchronously(toX >> 4, toZ >> 4, ChunkStatus.FULL, true, false, consumer); // Yatopia } // Tuinity end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index 407c03408a312d54ab16a80ccdee5308af43c62f..f938732a64e8672873b8387d20776a5a73f4c01b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -545,7 +545,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { net.minecraft.server.WorldServer world = ((CraftWorld)locationClone.getWorld()).getHandle(); java.util.concurrent.CompletableFuture ret = new java.util.concurrent.CompletableFuture<>(); - world.loadChunksForMoveAsync(getHandle().getBoundingBoxAt(locationClone.getX(), locationClone.getY(), locationClone.getZ()), location.getX(), location.getZ(), (list) -> { + world.loadChunksForMoveAsync(getHandle().getBoundingBoxAt(locationClone.getX(), locationClone.getY(), locationClone.getZ()), location.getBlockX(), location.getBlockZ(), (list) -> { // Yatopia net.minecraft.server.ChunkProviderServer chunkProviderServer = world.getChunkProvider(); for (net.minecraft.server.IChunkAccess chunk : list) { chunkProviderServer.addTicketAtLevel(net.minecraft.server.TicketType.POST_TELEPORT, chunk.getPos(), 33, CraftEntity.this.getEntityId());