代码:适用于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`

KubeJS【定时指令】-第1张图片

注释:

其一,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,之后的判断也不会再通过;