Skip to content

global全局变量

在KubeJS中,提供了一个可以在serverstartupclient三端调用的一个全局变量->global

如何快速理解

我们先在server的脚本文件夹下创建一个GlobalTest.js文件,然后在里面写上以下内容

js
global.testLog = (message) =>{
    console.log(message)
}
global.testNumber = 10;
global.testMessage = "hello,meng"
global.testList = [
    1,2,3,4
]
global.testObj = {
    h : 1,
    b : 2
}

写完之后我们进入到client脚本文件下面写上以下内容

js
global.testLog(global.testMessage)
console.log(global.testMessage)

再在startup里编写以下脚本

js
global.testList.forEach(value=>{
    global.testLog(value)
});
console.log(global.testObj.h)
console.log(global.testObj.b)

接下来我们按照这个顺序在游戏内输入指令

  1. /kjs reload server_scripts 因为我们的全局变量是写在server里的,所以有限加载这个文件夹,让全局变量加载进kubejs里
  2. /kjs reload client_scripts 我们输入完这个指令之后,进入文件路径为/logs/kubejs/server.log/logs/kubejs/client.log里,可以看到

server.log里有一行输出文本为"hello,meng" 这里就是我们调用的global.testLog(global.testMessage)起了作用

client.log里也有同样的一行输出文本为"hello,meng" 这个地方是调用的console.log(global.testMessage)起了作用 3. /kjs reload startup_scripts 输入完成指令之后我们进入到/logs/kubejs/server.log/logs/kubejs/startup.log

server.log里输出了数组里的数字1``2``3``4 说明是可以成功访问的

startup.log里也有两个数字分别是12,这也是因为我们读取到了全局变量里对象的值

小结

在正常情况下,我们无法做到这种跨文件的方法变量的调用

但是使用了global之后,就可以在全局进行调用

用处

在项目祭坛合成 中就有使用到全局变量

Contributors

Changelog