feat: エンティティ操作をリージョンunsafeで操作していた問題

This commit is contained in:
Keisuke Hirata 2026-03-11 22:06:46 +09:00
parent ae4d23db7c
commit 3674586cfc

View File

@ -5,12 +5,20 @@ import org.bukkit.GameMode
class MannequinTickTask(private val registry: MannequinRegistry) { class MannequinTickTask(private val registry: MannequinRegistry) {
fun tick() { fun tick() {
registry.all().forEach { record -> registry.all().forEach { record ->
val location = record.location?.toLocation(registry.plugin.server) ?: return@forEach
registry.plugin.server.regionScheduler.run(registry.plugin, location) { _ ->
tickRecord(record)
}
}
}
private fun tickRecord(record: MannequinRecord) {
val settings = record.settings val settings = record.settings
val entity = registry.locate(record.id) ?: return@forEach val entity = registry.locate(record.id) ?: return
if (!entity.isValid) return@forEach if (!entity.isValid) return
val location = entity.location val location = entity.location
val world = location.world ?: return@forEach val world = location.world ?: return
var targetDirection: org.bukkit.util.Vector? = null var targetDirection: org.bukkit.util.Vector? = null
@ -123,4 +131,3 @@ class MannequinTickTask(private val registry: MannequinRegistry) {
} }
} }
} }
}