跳转到正文
iPlugin

任务

配置延迟、重复间隔与执行内容。

周期刷新

tasks 写在菜单顶层,别名为 task:

# 菜单顶层
tasks:
  refresh_display:
    delay: 20
    period: 20
    async: false
    run:
      - type: KETHER
        value: 'icons update'

菜单打开 20 tick 后执行,之后每 20 tick 更新现有图标显示,不重建生成器列表。

字段

字段类型必填默认行为说明
delay整数否0 tick首次执行前的延迟
period整数否0,只执行一次重复间隔,单位 tick;正数启用重复执行
async布尔值否普通 Bukkit/Paper 自动任务使用 true执行方式;手动调用与 Folia 的规则见下文
run节点或节点列表是—执行内容,使用节点的 type 与 value 字段

run 与节点使用同一结构,也支持 throwable(别名 throwError)。执行 Kether 时填写 type: KETHER;直接把语句写成文字会成为 CONST 节点,不会按动作执行。

手动调用

action: 'task refresh_display'

立即执行命名任务的 run 内容,不会额外启动周期任务。菜单关闭后,当前会话的周期任务停止。

async 的适用范围

调用方式async 的作用
普通 Bukkit / Paper 自动启动的任务按 async 选择执行方式;未填写时为 true
Folia 自动启动的任务按玩家所属线程运行,不靠 async 切换到后台
动作中的 task 名称在玩家所属线程执行 run,不采用周期任务的 async 选择

async 不是网络超时设置。手动 task 调用不会因为写了 async: true 就变成后台请求;放在点击动作中的同步网络读取仍会等待结果。包含菜单、物品或玩家操作的节点不整体放到后台执行。

单个图标更新

只更新一个图标的名称或子状态时,可以使用图标 update、relocate 字段;动画配置设置帧列表与间隔。

时间单位

配置单位
任务 delay、periodtick
图标 update、relocatetick
标题与动画帧间隔tick
min-interact-interval、shift_f毫秒

20 TPS 时,20 tick 约一秒。点击后变化的内容可直接在 action 末尾刷新,无需周期任务。

最后更新于