20.3.4 global[] 的使用
global[] 可以允许你在不重启游戏的情况下重新加载部分Startup阶段的脚本,或用于储存信息等。
一、Forge事件
以1.16.5中的Forge事件为例,其可改写为
// 使用global改写前
onForgeEvent("net.minecraftforge.event.entity.player.PlayerEvent$PlayerChangedDimensionEvent", event=>{
event.player.sendStatusMessage("你来到了" + event.getTo().getLocation(), false)
})
// 使用global改写后
onForgeEvent('net.minecraftforge.event.entity.player.PlayerEvent$PlayerChangedDimensionEvent', event => {
global['test_id'](event);
});
global['test_id'] = (event) => {
event.player.sendStatusMessage("你来到了" + event.getTo().getLocation(), false)
}改写后,你可以修改 global['test_id']的内容来在不重启游戏的情况下重新加载Forge事件内容,你可以使用 /kubejs reload startup_scripts 来重载该函数。
二、内容注册中的部分事件
类似地,部分内容注册中的事件也可以使用global改写(例如第七章 自定义方块中使用到的RandomTickEvent ):
与之类似的还有食用食物的ItemFoodEatenEvent等,在此就不再赘述了。
三、存储数据
以下以存储玩家登入信息为例:
效果:

这有帮助吗?