Skip to content
On this page

Folia 调度器

Paper 和 Folia 的线程规则比普通专用服务器更严格。Katton 在 top.katton.paper 中提供了一组小型工具,方便脚本把任务调度到正确的区域。

实体区域

kotlin
import top.katton.paper.*

player.schedule {
    sendSystemMessage("在该玩家所在区域执行")
}

player.schedule(delayTicks = 40) {
    sendSystemMessage("延迟两秒执行")
}

val task = player.scheduleRepeating(0, 20) {
    sendSystemMessage("每秒执行一次")
}

cancelScheduledTask(task)

位置区域

kotlin
import top.katton.paper.*

scheduleAt(level, blockPosition()) {
    println("在该坐标所在区域执行")
}

scheduleAt(level, blockPosition(), delayTicks = 60) {
    println("延迟执行区域任务")
}

全局区域

世界时间、天气、控制台级别操作适合使用全局调度器。

kotlin
import top.katton.paper.*

scheduleGlobal {
    println("全局区域任务")
}

val task = scheduleGlobalRepeating(0, 20) {
    println("重复全局任务")
}

在非 Folia Paper 上,这些工具会回退到 Paper 兼容调度器。