From 88e0907cadf2358e1d3e06222c0a97722ca4ce12 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Fri, 30 Aug 2024 20:02:54 -0700 Subject: [PATCH] Do not create raids in positions not owned If a player moves away before the raid is created, then we would possibly trigger the raid cross-region. Considering Vanilla doesn't trigger the raid cross-dimension, this doesn't seem like an important behavior to break. Fixes https://github.com/PaperMC/Folia/issues/264 --- patches/server/0003-Threaded-Regions.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/server/0003-Threaded-Regions.patch b/patches/server/0003-Threaded-Regions.patch index 7270124..4be9f43 100644 --- a/patches/server/0003-Threaded-Regions.patch +++ b/patches/server/0003-Threaded-Regions.patch @@ -16269,7 +16269,7 @@ index bbf21ea433f9e3963aac0ede597ed8d3c8e50ed8..bcf7a7d8137b62cd65ac3c6ff517025f if (raid1 != null && Raids.canJoinRaid(this, raid1)) { diff --git a/src/main/java/net/minecraft/world/entity/raid/Raids.java b/src/main/java/net/minecraft/world/entity/raid/Raids.java -index 8c60f71270d909c10e6617eb64b8fdb42deb73e9..f4f9670e7aa81e3f60b34f0bc7313784573c74b8 100644 +index 8c60f71270d909c10e6617eb64b8fdb42deb73e9..98b9f1c93824aa879395cd53057fdb4d3b8ae5d4 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raids.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raids.java @@ -26,9 +26,9 @@ import net.minecraft.world.phys.Vec3; @@ -16347,7 +16347,7 @@ index 8c60f71270d909c10e6617eb64b8fdb42deb73e9..f4f9670e7aa81e3f60b34f0bc7313784 DimensionType dimensionmanager = player.level().dimensionType(); - if (!dimensionmanager.hasRaids()) { -+ if (!dimensionmanager.hasRaids() || !ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(this.level, player.chunkPosition().x, player.chunkPosition().z, 8)) { // Folia - region threading ++ if (!dimensionmanager.hasRaids() || !ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(player) || !ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(this.level, pos.getX() >> 4, pos.getZ() >> 4, 8) || !ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(this.level, player.chunkPosition().x, player.chunkPosition().z, 8)) { // Folia - region threading return null; } else { List list = this.level.getPoiManager().getInRange((holder) -> {