diff --git a/gradle.properties b/gradle.properties index ccab84cdb..fd02a93b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled javaVersion=25 mcVersion=26.1.2 group=dev.slne.surf.api -version=3.22.0 +version=3.23.0 relocationPrefix=dev.slne.surf.api.libs snapshot=false diff --git a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/region/V1_21_11TickThreadGuard.kt b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/region/V1_21_11TickThreadGuard.kt index 588c2b71f..079a127b2 100644 --- a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/region/V1_21_11TickThreadGuard.kt +++ b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/region/V1_21_11TickThreadGuard.kt @@ -1,6 +1,7 @@ package dev.slne.surf.api.paper.server.nms.v1_21_11.region import ca.spottedleaf.moonrise.common.util.TickThread +import dev.slne.surf.api.paper.extensions.server import dev.slne.surf.api.paper.region.TickThreadGuard import dev.slne.surf.api.paper.server.nms.v1_21_11.extensions.toNms import dev.slne.surf.api.paper.util.chunkX @@ -62,4 +63,10 @@ class V1_21_11TickThreadGuard : TickThreadGuard { ) { TickThread.ensureTickThread(world.toNms(), blockX, blockZ, reason) } + + override fun ensureGlobalTickThread(reason: String) { + if (!server.isGlobalTickThread) { + throw IllegalStateException("Not on global tick thread: $reason") + } + } } diff --git a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/region/V26_1TickThreadGuard.kt b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/region/V26_1TickThreadGuard.kt index 5cf29bbfd..00cb41627 100644 --- a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/region/V26_1TickThreadGuard.kt +++ b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/region/V26_1TickThreadGuard.kt @@ -1,6 +1,7 @@ package dev.slne.surf.api.paper.server.nms.v26_1.region import ca.spottedleaf.moonrise.common.util.TickThread +import dev.slne.surf.api.paper.extensions.server import dev.slne.surf.api.paper.region.TickThreadGuard import dev.slne.surf.api.paper.server.nms.v26_1.extensions.toNms import dev.slne.surf.api.paper.util.chunkX @@ -16,6 +17,8 @@ import org.bukkit.util.BoundingBox class V26_1TickThreadGuard : TickThreadGuard { override fun ensureTickThread(world: World, pos: Position, reason: String) { + TickThread.ensureTickThread("") + TickThread.ensureTickThread(world.toNms(), pos.chunkX, pos.chunkZ, reason) } @@ -62,4 +65,10 @@ class V26_1TickThreadGuard : TickThreadGuard { ) { TickThread.ensureTickThread(world.toNms(), blockX, blockZ, reason) } + + override fun ensureGlobalTickThread(reason: String) { + if (!server.isGlobalTickThread) { + throw IllegalStateException("Not on global tick thread: $reason") + } + } } diff --git a/surf-api-paper/surf-api-paper/api/surf-api-paper.api b/surf-api-paper/surf-api-paper/api/surf-api-paper.api index f36a2c57d..da319472c 100644 --- a/surf-api-paper/surf-api-paper/api/surf-api-paper.api +++ b/surf-api-paper/surf-api-paper/api/surf-api-paper.api @@ -2583,6 +2583,7 @@ public abstract class dev/slne/surf/api/paper/permission/PermissionRegistry { public abstract interface class dev/slne/surf/api/paper/region/TickThreadGuard { public static final field Companion Ldev/slne/surf/api/paper/region/TickThreadGuard$Companion; + public abstract fun ensureGlobalTickThread (Ljava/lang/String;)V public abstract fun ensureTickThread (Lorg/bukkit/World;DDLjava/lang/String;)V public abstract fun ensureTickThread (Lorg/bukkit/World;IILjava/lang/String;)V public abstract fun ensureTickThread (Lorg/bukkit/World;Lio/papermc/paper/math/Position;ILjava/lang/String;)V @@ -2592,6 +2593,7 @@ public abstract interface class dev/slne/surf/api/paper/region/TickThreadGuard { } public final class dev/slne/surf/api/paper/region/TickThreadGuard$Companion : dev/slne/surf/api/paper/region/TickThreadGuard { + public fun ensureGlobalTickThread (Ljava/lang/String;)V public fun ensureTickThread (Lorg/bukkit/World;DDLjava/lang/String;)V public fun ensureTickThread (Lorg/bukkit/World;IILjava/lang/String;)V public fun ensureTickThread (Lorg/bukkit/World;Lio/papermc/paper/math/Position;ILjava/lang/String;)V diff --git a/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/region/TickThreadGuard.kt b/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/region/TickThreadGuard.kt index 819d0c142..f4039b6a8 100644 --- a/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/region/TickThreadGuard.kt +++ b/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/region/TickThreadGuard.kt @@ -17,6 +17,8 @@ interface TickThreadGuard { fun ensureTickThread(world: World, box: BoundingBox, reason: String) fun ensureTickThread(world: World, blockX: Double, blockZ: Double, reason: String) + fun ensureGlobalTickThread(reason: String) + companion object : TickThreadGuard by tickThreadGuard { val INSTANCE get() = tickThreadGuard }