我的世界KubeJS【定时指令】
代码:适用于1.18版本的KubeJS,低版本需将 level. 改成 world. 才生效
var cnt = 0;
onEvent("level.tick", (event) => {
if(event.level.localTime%24000 == 6000)
cnt++;
if(cnt == 3)
{
event.server.runCommandSilent(`say 12:00 now`)
cnt = 0;
}
})
效果:每到mc日的12:00(tick=6000),就执行指令 `say 12:00 now`
注释:
其一,event.level.localTime%24000 == 6000,先做模运算再判断tick的原因是 level.localTime 是根据游戏时间累积的;
一个mc日为24000tick,如果直接简单地写成 event.level.localTime == 6000 只会在第0天的正午12:00判断通过;
其二,为什么要加个计数变量cnt,因为KubeJS事件的判断、执行是每tick执行3次,即游戏时间到 6000tick 时事件判断通过,语句总共会被执行3次;
如果不用cnt,指令 `say 12:00 now` 会被执行3次;通过变量cnt统计判断语句执行的次数,为3次时再运行 `say 12:00 now` ,之后再重置cnt,事件执行3次之后游戏时间就会变成 6001tick,之后的判断也不会再通过;