新api草案

这里是我对新的api的设想:

在新的重构中,首要的改变是独立于client.js的插件系统——一个将会命名为ext的文件夹。这个文件夹可能会放置在script文件夹下,但我倾向于放在项目的根目录。

每个“插件”可以以单文件形式存在,但更加鼓励创建一个文件夹,并将所有代码写在这个文件夹下。文件夹内需要有一个index.js文件,这将作为导入的入口。

在这个文件内部,开发者导入一个被称为“system”的对象,然后调用其中的函数:

  • system.registerGenerator(),将函数注册到system上。这个函数将被允许执行多次。这个函数的参数大概会和canonical生成器的参数一致,但提供某种个性化选项。

  • system.registerCommandParser(),将命令识别器注册到system上。

  • system.getBlock()等函数,允许从session获取数据。

其它要点:

  1. 生成器将得到setblock函数,但不会改变实际生成器的运作方式。(也就是返回值)(我还不确定怎么做)

  2. 生成器可能需要带参数,或从另一个全局对象“session”中导入玩家保存的数据。

  3. utils会消失,或存在于ext目录下。它会被拆解。

  4. 可能需要在每个目录下创建manifest文件,以指示这里的插件是需要导入的。

最后更新于