打包插件
打包插件是一个文件名后缀是 .mcdr 或 .pyz 的 zip 类型的压缩文件。它是分发插件时的推荐格式
一个最小的打包插件在其压缩文件根目录中包含了以下的文件:
mcdreforged.plugin.json,储存着该插件的元数据
一个以你的插件 id 为名的合法的 python 包
下面是插件 id 为 my_plugin 时,最小打包插件的文件树的一个例子:
my_mcdr_server/plugins/
└─ MyPlugin.mcdr
├─ my_plugin/
│ └─ __init__.py
└─ mcdreforged.plugin.json
可选的,打包插件可以包含其他可被 MCDR 识别的有用的文件:
requirements.txt,储存着你的插件所依赖的 python 依赖。在插件加载前这些依赖需求将会被检查
lang/,一个储存着 json(.json)或者 yaml(.yml)格式的翻译文件的文件夹。MCDR 将会自动地载入并注册这些翻译文件
你可以在打包插件中包含其他的自定义文件或文件夹。你可以借助 ServerInterface 的 open_bundled_file() 方法来访问这些文件
下面是包含着更多文件的打包插件的文件树的一个例子:
my_mcdr_server/plugins/
└─ MyPlugin.mcdr
├─ my_plugin/
│ ├─ __init__.py
│ └─ my_lib.py
├─ my_data/
│ ├─ default_config.json
│ └─ some_data.txt
├─ lang/
│ ├─ en_us.json
│ └─ zh_cn.json
├─ mcdreforged.plugin.json
└─ requirements.txt
除了 .mcdr 文件扩展名外,python 的 zip app 扩展名 .pyz 也是打包插件的一个可用扩展名
尽管 .pyz 并不像 .mcdr 那样,能让人轻易地从文件名看出这是一个 MCDR 插件,但是对于那些支持脱离 MCDR 直接于控制台中运行的插件而言,使用 .pyz 扩展名能明确地表示“可于控制台中运行”这一性质
