mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
cleanup
This commit is contained in:
@@ -5,7 +5,7 @@ Subject: [PATCH] Async chunk sending
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||||
index 0bca3843e8568b37cda6ae312bdf4f423a0891a9..71561ac77e32d7f971c343ad83a268c076ce668a 100644
|
index 0bca3843e8568b37cda6ae312bdf4f423a0891a9..98054ab2be3fecc5f6a111a11cfe94f1a10419c1 100644
|
||||||
--- a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
--- a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||||
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||||
@@ -440,7 +440,15 @@ public final class RegionizedPlayerChunkLoader {
|
@@ -440,7 +440,15 @@ public final class RegionizedPlayerChunkLoader {
|
||||||
@@ -13,7 +13,7 @@ index 0bca3843e8568b37cda6ae312bdf4f423a0891a9..71561ac77e32d7f971c343ad83a268c0
|
|||||||
((ChunkSystemChunkHolder)((ChunkSystemServerLevel)this.world).moonrise$getChunkTaskScheduler().chunkHolderManager
|
((ChunkSystemChunkHolder)((ChunkSystemServerLevel)this.world).moonrise$getChunkTaskScheduler().chunkHolderManager
|
||||||
.getChunkHolder(chunkX, chunkZ).vanillaChunkHolder).moonrise$removeReceivedChunk(this.player);
|
.getChunkHolder(chunkX, chunkZ).vanillaChunkHolder).moonrise$removeReceivedChunk(this.player);
|
||||||
- this.player.connection.send(new ClientboundForgetLevelChunkPacket(new ChunkPos(chunkX, chunkZ)));
|
- this.player.connection.send(new ClientboundForgetLevelChunkPacket(new ChunkPos(chunkX, chunkZ)));
|
||||||
+ // Leaf start - Async chunk send
|
+ // Leaf start - Async chunk sending
|
||||||
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
||||||
+ org.dreeam.leaf.async.chunk.AsyncChunkSend.POOL.execute(
|
+ org.dreeam.leaf.async.chunk.AsyncChunkSend.POOL.execute(
|
||||||
+ () -> this.player.connection.send(new ClientboundForgetLevelChunkPacket(new ChunkPos(chunkX, chunkZ)))
|
+ () -> this.player.connection.send(new ClientboundForgetLevelChunkPacket(new ChunkPos(chunkX, chunkZ)))
|
||||||
@@ -21,19 +21,19 @@ index 0bca3843e8568b37cda6ae312bdf4f423a0891a9..71561ac77e32d7f971c343ad83a268c0
|
|||||||
+ } else {
|
+ } else {
|
||||||
+ this.player.connection.send(new ClientboundForgetLevelChunkPacket(new ChunkPos(chunkX, chunkZ)));
|
+ this.player.connection.send(new ClientboundForgetLevelChunkPacket(new ChunkPos(chunkX, chunkZ)));
|
||||||
+ }
|
+ }
|
||||||
+ // Leaf end - Async chunk send
|
+ // Leaf end - Async chunk sending
|
||||||
// Paper start - PlayerChunkUnloadEvent
|
// Paper start - PlayerChunkUnloadEvent
|
||||||
if (io.papermc.paper.event.packet.PlayerChunkUnloadEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
if (io.papermc.paper.event.packet.PlayerChunkUnloadEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
||||||
new io.papermc.paper.event.packet.PlayerChunkUnloadEvent(player.getBukkitEntity().getWorld().getChunkAt(new ChunkPos(chunkX, chunkZ).longKey), player.getBukkitEntity()).callEvent();
|
new io.papermc.paper.event.packet.PlayerChunkUnloadEvent(player.getBukkitEntity().getWorld().getChunkAt(new ChunkPos(chunkX, chunkZ).longKey), player.getBukkitEntity()).callEvent();
|
||||||
diff --git a/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
diff --git a/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
||||||
index 9f6d7c5dc0e591488a8a3763d8a1f1b3671d5299..6123afd9c27f1f9a954b173413e61bfb276b0f0a 100644
|
index 9f6d7c5dc0e591488a8a3763d8a1f1b3671d5299..8af4c964ce67373f9b911ce13164f48c29a07d85 100644
|
||||||
--- a/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
--- a/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
||||||
+++ b/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
+++ b/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
||||||
@@ -75,6 +75,45 @@ public class ClientboundLevelChunkPacketData {
|
@@ -75,6 +75,52 @@ public class ClientboundLevelChunkPacketData {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Leaf start - Async chunk send
|
+ // Leaf start - Async chunk sending
|
||||||
+ public ClientboundLevelChunkPacketData(LevelChunk levelChunk, io.papermc.paper.antixray.ChunkPacketInfo<net.minecraft.world.level.block.state.BlockState> chunkPacketInfo, BlockEntity[] blockEntities, Map<Heightmap.Types, long[]> heightmaps) {
|
+ public ClientboundLevelChunkPacketData(LevelChunk levelChunk, io.papermc.paper.antixray.ChunkPacketInfo<net.minecraft.world.level.block.state.BlockState> chunkPacketInfo, BlockEntity[] blockEntities, Map<Heightmap.Types, long[]> heightmaps) {
|
||||||
+ this.heightmaps = heightmaps;
|
+ this.heightmaps = heightmaps;
|
||||||
+
|
+
|
||||||
@@ -77,7 +77,7 @@ index 9f6d7c5dc0e591488a8a3763d8a1f1b3671d5299..6123afd9c27f1f9a954b173413e61bfb
|
|||||||
+ this.blockEntitiesData.add(ClientboundLevelChunkPacketData.BlockEntityInfo.create(blockEntity));
|
+ this.blockEntitiesData.add(ClientboundLevelChunkPacketData.BlockEntityInfo.create(blockEntity));
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // Leaf end - Async chunk send
|
+ // Leaf end - Async chunk sending
|
||||||
+
|
+
|
||||||
public ClientboundLevelChunkPacketData(RegistryFriendlyByteBuf buffer, int x, int z) {
|
public ClientboundLevelChunkPacketData(RegistryFriendlyByteBuf buffer, int x, int z) {
|
||||||
this.heightmaps = HEIGHTMAPS_STREAM_CODEC.decode(buffer);
|
this.heightmaps = HEIGHTMAPS_STREAM_CODEC.decode(buffer);
|
||||||
@@ -91,14 +91,14 @@ index 9f6d7c5dc0e591488a8a3763d8a1f1b3671d5299..6123afd9c27f1f9a954b173413e61bfb
|
|||||||
throw new IllegalStateException("Didn't fill chunk buffer: expected " + buffer.capacity() + " bytes, got " + buffer.writerIndex());
|
throw new IllegalStateException("Didn't fill chunk buffer: expected " + buffer.capacity() + " bytes, got " + buffer.writerIndex());
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java
|
diff --git a/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java
|
||||||
index 8578d1f78ddd1bb75f3230f04bfaa35af9f5f822..4f54c4c8e49c1e0352ab2c5c23277b4103504c55 100644
|
index 8578d1f78ddd1bb75f3230f04bfaa35af9f5f822..d8e938abf5123b092cec80feb6468e3d91ae823e 100644
|
||||||
--- a/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java
|
--- a/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java
|
||||||
+++ b/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java
|
+++ b/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java
|
||||||
@@ -44,6 +44,17 @@ public class ClientboundLevelChunkWithLightPacket implements Packet<ClientGamePa
|
@@ -44,6 +44,17 @@ public class ClientboundLevelChunkWithLightPacket implements Packet<ClientGamePa
|
||||||
this.lightData = new ClientboundLightUpdatePacketData(pos, lightEngine, skyLight, blockLight);
|
this.lightData = new ClientboundLightUpdatePacketData(pos, lightEngine, skyLight, blockLight);
|
||||||
chunk.getLevel().chunkPacketBlockController.modifyBlocks(this, chunkPacketInfo); // Paper - Anti-Xray - Modify blocks
|
chunk.getLevel().chunkPacketBlockController.modifyBlocks(this, chunkPacketInfo); // Paper - Anti-Xray - Modify blocks
|
||||||
}
|
}
|
||||||
+ // Leaf start - Async chunk send
|
+ // Leaf start - Async chunk sending
|
||||||
+ public ClientboundLevelChunkWithLightPacket(LevelChunk chunk, LevelLightEngine lightEngine, @Nullable BitSet skyLight, @Nullable BitSet blockLight, boolean modifyBlocks, net.minecraft.world.level.block.entity.BlockEntity[] blockEntities, java.util.Map<net.minecraft.world.level.levelgen.Heightmap.Types, long[]> heightmaps) {
|
+ public ClientboundLevelChunkWithLightPacket(LevelChunk chunk, LevelLightEngine lightEngine, @Nullable BitSet skyLight, @Nullable BitSet blockLight, boolean modifyBlocks, net.minecraft.world.level.block.entity.BlockEntity[] blockEntities, java.util.Map<net.minecraft.world.level.levelgen.Heightmap.Types, long[]> heightmaps) {
|
||||||
+ ChunkPos pos = chunk.getPos();
|
+ ChunkPos pos = chunk.getPos();
|
||||||
+ this.x = pos.x;
|
+ this.x = pos.x;
|
||||||
@@ -108,12 +108,12 @@ index 8578d1f78ddd1bb75f3230f04bfaa35af9f5f822..4f54c4c8e49c1e0352ab2c5c23277b41
|
|||||||
+ this.lightData = new ClientboundLightUpdatePacketData(pos, lightEngine, skyLight, blockLight);
|
+ this.lightData = new ClientboundLightUpdatePacketData(pos, lightEngine, skyLight, blockLight);
|
||||||
+ chunk.getLevel().chunkPacketBlockController.modifyBlocks(this, chunkPacketInfo); // Paper - Anti-Xray - Modify blocks
|
+ chunk.getLevel().chunkPacketBlockController.modifyBlocks(this, chunkPacketInfo); // Paper - Anti-Xray - Modify blocks
|
||||||
+ }
|
+ }
|
||||||
+ // Leaf end - Async chunk send
|
+ // Leaf end - Async chunk sending
|
||||||
|
|
||||||
private ClientboundLevelChunkWithLightPacket(RegistryFriendlyByteBuf buffer) {
|
private ClientboundLevelChunkWithLightPacket(RegistryFriendlyByteBuf buffer) {
|
||||||
this.x = buffer.readInt();
|
this.x = buffer.readInt();
|
||||||
diff --git a/net/minecraft/server/network/PlayerChunkSender.java b/net/minecraft/server/network/PlayerChunkSender.java
|
diff --git a/net/minecraft/server/network/PlayerChunkSender.java b/net/minecraft/server/network/PlayerChunkSender.java
|
||||||
index 0376a10ee0544b13e8fd629a7b13f78811e57a30..638d622992b8bee993c48c170bba8ab9f0f534e6 100644
|
index 0376a10ee0544b13e8fd629a7b13f78811e57a30..aa6b900347635857b84460fa8435b81f794f0747 100644
|
||||||
--- a/net/minecraft/server/network/PlayerChunkSender.java
|
--- a/net/minecraft/server/network/PlayerChunkSender.java
|
||||||
+++ b/net/minecraft/server/network/PlayerChunkSender.java
|
+++ b/net/minecraft/server/network/PlayerChunkSender.java
|
||||||
@@ -64,13 +64,29 @@ public class PlayerChunkSender {
|
@@ -64,13 +64,29 @@ public class PlayerChunkSender {
|
||||||
@@ -121,7 +121,7 @@ index 0376a10ee0544b13e8fd629a7b13f78811e57a30..638d622992b8bee993c48c170bba8ab9
|
|||||||
ServerGamePacketListenerImpl serverGamePacketListenerImpl = player.connection;
|
ServerGamePacketListenerImpl serverGamePacketListenerImpl = player.connection;
|
||||||
this.unacknowledgedBatches++;
|
this.unacknowledgedBatches++;
|
||||||
- serverGamePacketListenerImpl.send(ClientboundChunkBatchStartPacket.INSTANCE);
|
- serverGamePacketListenerImpl.send(ClientboundChunkBatchStartPacket.INSTANCE);
|
||||||
+ // Leaf start - Async chunk send
|
+ // Leaf start - Async chunk sending
|
||||||
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
||||||
+ org.dreeam.leaf.async.chunk.AsyncChunkSend.POOL.execute(
|
+ org.dreeam.leaf.async.chunk.AsyncChunkSend.POOL.execute(
|
||||||
+ () -> serverGamePacketListenerImpl.send(ClientboundChunkBatchStartPacket.INSTANCE)
|
+ () -> serverGamePacketListenerImpl.send(ClientboundChunkBatchStartPacket.INSTANCE)
|
||||||
@@ -129,14 +129,14 @@ index 0376a10ee0544b13e8fd629a7b13f78811e57a30..638d622992b8bee993c48c170bba8ab9
|
|||||||
+ } else {
|
+ } else {
|
||||||
+ serverGamePacketListenerImpl.send(ClientboundChunkBatchStartPacket.INSTANCE);
|
+ serverGamePacketListenerImpl.send(ClientboundChunkBatchStartPacket.INSTANCE);
|
||||||
+ }
|
+ }
|
||||||
+ // Leaf end - Async chunk send
|
+ // Leaf end - Async chunk sending
|
||||||
|
|
||||||
for (LevelChunk levelChunk : list) {
|
for (LevelChunk levelChunk : list) {
|
||||||
sendChunk(serverGamePacketListenerImpl, serverLevel, levelChunk);
|
sendChunk(serverGamePacketListenerImpl, serverLevel, levelChunk);
|
||||||
}
|
}
|
||||||
|
|
||||||
- serverGamePacketListenerImpl.send(new ClientboundChunkBatchFinishedPacket(list.size()));
|
- serverGamePacketListenerImpl.send(new ClientboundChunkBatchFinishedPacket(list.size()));
|
||||||
+ // Leaf start - Async chunk send
|
+ // Leaf start - Async chunk sending
|
||||||
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
||||||
+ org.dreeam.leaf.async.chunk.AsyncChunkSend.POOL.execute(
|
+ org.dreeam.leaf.async.chunk.AsyncChunkSend.POOL.execute(
|
||||||
+ () -> serverGamePacketListenerImpl.send(new ClientboundChunkBatchFinishedPacket(list.size()))
|
+ () -> serverGamePacketListenerImpl.send(new ClientboundChunkBatchFinishedPacket(list.size()))
|
||||||
@@ -144,7 +144,7 @@ index 0376a10ee0544b13e8fd629a7b13f78811e57a30..638d622992b8bee993c48c170bba8ab9
|
|||||||
+ } else {
|
+ } else {
|
||||||
+ serverGamePacketListenerImpl.send(new ClientboundChunkBatchFinishedPacket(list.size()));
|
+ serverGamePacketListenerImpl.send(new ClientboundChunkBatchFinishedPacket(list.size()));
|
||||||
+ }
|
+ }
|
||||||
+ // Leaf end - Async chunk send
|
+ // Leaf end - Async chunk sending
|
||||||
this.batchQuota = this.batchQuota - list.size();
|
this.batchQuota = this.batchQuota - list.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -153,7 +153,7 @@ index 0376a10ee0544b13e8fd629a7b13f78811e57a30..638d622992b8bee993c48c170bba8ab9
|
|||||||
public static void sendChunk(ServerGamePacketListenerImpl packetListener, ServerLevel level, LevelChunk chunk) {
|
public static void sendChunk(ServerGamePacketListenerImpl packetListener, ServerLevel level, LevelChunk chunk) {
|
||||||
final boolean shouldModify = level.chunkPacketBlockController.shouldModify(packetListener.player, chunk);
|
final boolean shouldModify = level.chunkPacketBlockController.shouldModify(packetListener.player, chunk);
|
||||||
- packetListener.send(new ClientboundLevelChunkWithLightPacket(chunk, level.getLightEngine(), null, null, shouldModify));
|
- packetListener.send(new ClientboundLevelChunkWithLightPacket(chunk, level.getLightEngine(), null, null, shouldModify));
|
||||||
+ // Leaf start - Async chunk send
|
+ // Leaf start - Async chunk sending
|
||||||
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
+ if (org.dreeam.leaf.config.modules.async.AsyncChunkSend.enabled) {
|
||||||
+ var blockEntities = chunk.blockEntities.values().toArray(new net.minecraft.world.level.block.entity.BlockEntity[0]);
|
+ var blockEntities = chunk.blockEntities.values().toArray(new net.minecraft.world.level.block.entity.BlockEntity[0]);
|
||||||
+ java.util.Map<net.minecraft.world.level.levelgen.Heightmap.Types, long[]> heightmaps = new java.util.concurrent.ConcurrentHashMap<>();
|
+ java.util.Map<net.minecraft.world.level.levelgen.Heightmap.Types, long[]> heightmaps = new java.util.concurrent.ConcurrentHashMap<>();
|
||||||
@@ -169,12 +169,12 @@ index 0376a10ee0544b13e8fd629a7b13f78811e57a30..638d622992b8bee993c48c170bba8ab9
|
|||||||
+ } else {
|
+ } else {
|
||||||
+ packetListener.send(new ClientboundLevelChunkWithLightPacket(chunk, level.getLightEngine(), null, null, shouldModify));
|
+ packetListener.send(new ClientboundLevelChunkWithLightPacket(chunk, level.getLightEngine(), null, null, shouldModify));
|
||||||
+ }
|
+ }
|
||||||
+ // Leaf end - Async chunk send
|
+ // Leaf end - Async chunk sending
|
||||||
// Paper end - Anti-Xray
|
// Paper end - Anti-Xray
|
||||||
// Paper start - PlayerChunkLoadEvent
|
// Paper start - PlayerChunkLoadEvent
|
||||||
if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
||||||
diff --git a/net/minecraft/world/level/chunk/LevelChunkSection.java b/net/minecraft/world/level/chunk/LevelChunkSection.java
|
diff --git a/net/minecraft/world/level/chunk/LevelChunkSection.java b/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||||
index 36c033b0ee63dfc273d721fb4b614733e8fdef19..1cc33a038060aaf5258ee4f1deb19b4a1be59a29 100644
|
index 36c033b0ee63dfc273d721fb4b614733e8fdef19..4d06df242ab73411bdefc4770e131b27a6ea668a 100644
|
||||||
--- a/net/minecraft/world/level/chunk/LevelChunkSection.java
|
--- a/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||||
+++ b/net/minecraft/world/level/chunk/LevelChunkSection.java
|
+++ b/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||||
@@ -18,7 +18,7 @@ public class LevelChunkSection implements ca.spottedleaf.moonrise.patches.block_
|
@@ -18,7 +18,7 @@ public class LevelChunkSection implements ca.spottedleaf.moonrise.patches.block_
|
||||||
@@ -182,7 +182,7 @@ index 36c033b0ee63dfc273d721fb4b614733e8fdef19..1cc33a038060aaf5258ee4f1deb19b4a
|
|||||||
public static final int SECTION_SIZE = 4096;
|
public static final int SECTION_SIZE = 4096;
|
||||||
public static final int BIOME_CONTAINER_BITS = 2;
|
public static final int BIOME_CONTAINER_BITS = 2;
|
||||||
- short nonEmptyBlockCount; // Paper - package private
|
- short nonEmptyBlockCount; // Paper - package private
|
||||||
+ volatile short nonEmptyBlockCount; // Paper - package private // Leaf - Async chunk send - volatile
|
+ volatile short nonEmptyBlockCount; // Paper - package private // Leaf - Async chunk sending - volatile
|
||||||
private short tickingBlockCount;
|
private short tickingBlockCount;
|
||||||
private short tickingFluidCount;
|
private short tickingFluidCount;
|
||||||
private boolean isRandomlyTickingBlocksStatus; // Leaf - Cache random tick block status
|
private boolean isRandomlyTickingBlocksStatus; // Leaf - Cache random tick block status
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: hayanesuru <mc@jvavav.com>
|
From: hayanesuru <mc@jvavav.com>
|
||||||
Date: Fri, 2 May 2025 18:22:24 -0700
|
Date: Fri, 2 May 2025 18:22:24 -0700
|
||||||
Subject: [PATCH] Async chunk send
|
Subject: [PATCH] Async chunk sending
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
diff --git a/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
||||||
index ca24f4cd7a50f0156d84e263c60f841cca95c669..7e15038e8fceab1e97c2245c2e9111deed6455fb 100644
|
index ca24f4cd7a50f0156d84e263c60f841cca95c669..e98a7edc4001d020d238a44a96fda00f389234eb 100644
|
||||||
--- a/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
--- a/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
||||||
+++ b/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
+++ b/src/main/java/io/papermc/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
||||||
@@ -185,7 +185,7 @@ public final class ChunkPacketBlockControllerAntiXray extends ChunkPacketBlockCo
|
@@ -185,7 +185,7 @@ public final class ChunkPacketBlockControllerAntiXray extends ChunkPacketBlockCo
|
||||||
@@ -13,7 +13,7 @@ index ca24f4cd7a50f0156d84e263c60f841cca95c669..7e15038e8fceab1e97c2245c2e9111de
|
|||||||
}
|
}
|
||||||
|
|
||||||
- if (!Bukkit.isPrimaryThread()) {
|
- if (!Bukkit.isPrimaryThread()) {
|
||||||
+ if (!Bukkit.isPrimaryThread() && !(Thread.currentThread() instanceof org.dreeam.leaf.async.chunk.AsyncChunkSendThread)) { // Leaf - Async chunk send
|
+ if (!Bukkit.isPrimaryThread() && !(Thread.currentThread() instanceof org.dreeam.leaf.async.chunk.AsyncChunkSendThread)) { // Leaf - Async chunk sending
|
||||||
// Plugins?
|
// Plugins?
|
||||||
MinecraftServer.getServer().scheduleOnMain(() -> modifyBlocks(chunkPacket, chunkPacketInfo));
|
MinecraftServer.getServer().scheduleOnMain(() -> modifyBlocks(chunkPacket, chunkPacketInfo));
|
||||||
return;
|
return;
|
||||||
Reference in New Issue
Block a user