From 75f1605833d72398d4ebfb6a25c7f3acf3cae421 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sat, 25 Jan 2025 11:30:49 -0800 Subject: [PATCH] Schedule POTENTIAL_JOB_SITE to correct region The position may not be owned by the current region so we must schedule the release to the correct region. Fixes https://github.com/PaperMC/Folia/issues/319 --- .../ai/behavior/GoToPotentialJobSite.java.patch | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 folia-server/minecraft-patches/sources/net/minecraft/world/entity/ai/behavior/GoToPotentialJobSite.java.patch diff --git a/folia-server/minecraft-patches/sources/net/minecraft/world/entity/ai/behavior/GoToPotentialJobSite.java.patch b/folia-server/minecraft-patches/sources/net/minecraft/world/entity/ai/behavior/GoToPotentialJobSite.java.patch new file mode 100644 index 0000000..7f5ed03 --- /dev/null +++ b/folia-server/minecraft-patches/sources/net/minecraft/world/entity/ai/behavior/GoToPotentialJobSite.java.patch @@ -0,0 +1,17 @@ +--- a/net/minecraft/world/entity/ai/behavior/GoToPotentialJobSite.java ++++ b/net/minecraft/world/entity/ai/behavior/GoToPotentialJobSite.java +@@ -46,12 +_,14 @@ + BlockPos blockPos = globalPos.pos(); + ServerLevel level1 = level.getServer().getLevel(globalPos.dimension()); + if (level1 != null) { ++ io.papermc.paper.threadedregions.RegionizedServer.getInstance().taskQueue.queueTickTaskQueue(level1, blockPos.getX() >> 4, blockPos.getZ(), () -> { // Folia - region threading + PoiManager poiManager = level1.getPoiManager(); + if (poiManager.exists(blockPos, holder -> true)) { + poiManager.release(blockPos); + } + + DebugPackets.sendPoiTicketCountPacket(level, blockPos); ++ }); // Folia - region threading + } + }); + entity.getBrain().eraseMemory(MemoryModuleType.POTENTIAL_JOB_SITE);