# 新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文件，以指示这里的插件是需要导入的。
