MCDR插件!!mount配置使用心得
一个可以在单MCDR实例下挂载多个MC服务器的插件。
——神仙作者401
Mount插件的github链接:
https://github.com/FAS-Server/Mount
注:本文将尝试使用最保险的方法配置mount插件,不会是最简单的操作流程,但是能尽量避免出问题。
若在过程中遇到报错等问题,可以翻到最后查看常见问题及解决方案
插件原理简介 遇到新插件,先看一遍Readme,边看边说些注意事项:
使用说明
1. 配置一个MCDR实例(包括MC服务端)并加入此插件, 将其启动
注意最新版MCDR要使用
预发布0.2.0版本以上的Mount
MC服务端的话我建议先单独配在一个文件夹里,然后删除MCDR自带的server文件夹
(具体是哪个版本以上的MCDR不支持未命名线程来着(;OдO))
2. 依照 (配置选项)修改主体插件配置, 特别是自动检测挂载点的配置, 然后重载此插件(使用指令!!mount -r即可)
关键步骤
1. 首先确定服务端文件夹们要放在哪儿,一般建议放在和MCDR端文件夹同目录的servers文件夹中,并在其中新建一个
server.properties.overwrite
文件。
在配置时请确保至少有一个可用的服务端文件夹
我们假设server1为已配置好的一个服务端
图1 此时的文件夹结构
2. 找到MCDR端中路径为
configs/ mount.json
的配置文件(
主体插件配置
),初始内容如下:
{
// 是否在玩家加入时显示一条帮助
welcome_player: true,
// 是否启用 !!m 短指令
short_prefix: true,
// 自动检测挂载点时的目录
servers_path: [ "./servers" ],
// 重写挂载点的server.properties时使用的覆盖配置, 格式同server.properties,只添加需要覆盖的配置行即可
overwrite_name: "../servers/server.properties.overwrite",
// 当前可用的挂载点列表,
available_servers: [
"servers/Parkour",
"servers/PVP",
"servers/Bingo"
],
// 当前MCDR实例正在使用的挂载点
current_server: "servers/Parkour",
// 此MCDR实例的挂载标识
mount_name: "MountDemo"
}
注:其中的相对路径是相对MCDR核心的路径
3. 修改其中
servers_path
列表的值为servers文件夹相对路径,根据关键步骤1,我们修改为
servers_path: [ "../servers" ]
4. 修改其中的
current_server
为你其中一个服务端的文件相对路径,例如修改为
current_server: "../servers/ server1"
(因为之前我们假设server1可用)
5.修改其中的
mount_name
为你想要的文本(自己命名,作为“此服务端被占用”的标识),例如修改为
mount_name: " Mount1"
修改完成,此时的文件目录结构如下:
3. 修改在第二步配置的overwrite_name文件, 建议添加服务器端口和RCON相关配置来获取一致的体验
用文本编辑器打开
servers/ server.properties.overwrite
文件并在其中写入你想要统一的
server. properties配置项
,例如统一服务器端口等设置,格式同server.properties,下面是一个例子:
在这个文件中的配置会覆盖所有子服的配置
4. 在第二步配置的自动检测目录中, 放入更多MC服务端实例, 然后可以游戏内输入!!mount -l查看并修改相关配置选项, 在修改完毕之后将人工检查项设置为True
这一步请完整看完后再做操作
这一步便是向servers文件夹中添加更多的服务端文件夹。但是,在继续这一步之前首先要启动MCDR服务端。
重要操作
1. 打开
MCDR/config.yml
文件(MCDR配置文件),设置其中的
handler,start_command和working_directory
,使之与你在
mount.json
中选定的当前服务器匹配。此处即为与server1匹配。(具体配置值参照MCDR配置方法)
2. 启动MCDR,如果带起了server1即为成功。
3. 进入
servers/server1
文件夹,找到新增的
mountable.json
文件并打开,默认内容如下:
{
// 是否通过了人工确认
checked: false,
// 描述信息
desc: "Demo server",
// 此挂载点启动命令
start_command: "./start.sh",
// 此挂载点使用的MCDR handler
handler: "vanilla_handler",
// 占用此挂载点的MCDR实例的挂载标识, 空代表未挂载
occupied_by: " Mount1",
// 此挂载点的重置路径, 空或者.代表无重置路径
reset_path: "",
// 此挂载点的重置方法, full代表全部重置, region代表保留玩家信息(如跑酷记录)
reset_type: "full",
// 专为此挂载点的mcdr插件目录, 使得每个挂载点可使用专有的插件, 空或者.代表无
plugin_dir: ""
}
修改其中的配置信息使之与server1匹配
其中相对路径是相对于server1服务器核心文件的路径
特别注意occupied_by的值,此处一定要与mount.json中的Mount_name相同,表示正在挂载server1这个服务端
到这里MCDR启动完成,可以向servers文件夹中添加所需要的服务端文件夹,
每一个服务端文件夹中都复制一个mountable.json进去
,并修改相应参数,
特别注意除server1以外所有其他服务端的occupied_by值应为空
,表示服务端未被占用
添加完成后进入服务器,在聊天栏输入
!!m -r
让插件自动检测你添加的所有服务端,然后输入
!!m -l
此时应正确显示所有添加服务器的列表,只不过均不可用。
不可用是因为服务端
mountable.json
文件的
checked
值为false,如果确认该服务端没有问题后改成true即可。
5. 此时重新输入!!mount -l 即可看到人工检查通过的服务端处于可用状态, 挂载即可
没错!搞定了!
6. 更多指令, 可在游戏内输入!!mount获取帮助信息
常见问题及解决办法
Q:我的MCDR直接崩溃了,启动不起来。 A:检查插件的pip包是否已全部安装,检查插件的版本 Q:我的MCDR启动了一个新的服务端,而不是我放的server1 A:检查MCDR的working_directory的值,看看是不是在MCDR/server里新建了一个服务端,如有,请修改working_directory后删除它 Q:我的MCDR无法启动我的server1 A:检查相对路径有没有写错,然后检查启动命令是否有误。请同时检查MCDR的配置文件config.yml和config/mount.json相应参数是否一致 Q:我的server1可以进入了,但是里面用不了MCDR A:检查mountable.json中的handler是否有误,并同步检查MCDR配置文件config.yml Q:我!!m -l后的服务器列表全是红色的 A:检查当前未挂载的服务端的mountable.json文件中的occupied_by是否为空,请改为"occupied_by": "", Q:还有啥 A:我不到哇 感谢
401U:
写出这个nb的插件,并被我烦了一下午
SJMC服务器:
提供了我瞎捣鼓的环境 如果有空的话我就去做个样例包丢云上,如果有空的话ε=ε=ε=┌(;´°ェ°)┘ 先写到这儿吧,估计还会有要补充的,到时候再看qwq