MCDR插件!!mount配置使用心得
一個可以在單MCDR實例下掛載多個MC服務(wù)器的插件。
——神仙作者401
Mount插件的github鏈接:
https://github.com/FAS-Server/Mount
注:本文將嘗試使用最保險的方法配置mount插件,不會是最簡單的操作流程,但是能盡量避免出問題。
若在過程中遇到報錯等問題,可以翻到最后查看常見問題及解決方案
插件原理簡介 遇到新插件,先看一遍Readme,邊看邊說些注意事項:
使用說明
1. 配置一個MCDR實例(包括MC服務(wù)端)并加入此插件, 將其啟動
注意最新版MCDR要使用
預(yù)發(fā)布0.2.0版本以上的Mount
MC服務(wù)端的話我建議先單獨配在一個文件夾里,然后刪除MCDR自帶的server文件夾
(具體是哪個版本以上的MCDR不支持未命名線程來著(;OдO))
2. 依照 (配置選項)修改主體插件配置, 特別是自動檢測掛載點的配置, 然后重載此插件(使用指令!!mount -r即可)
關(guān)鍵步驟
1. 首先確定服務(wù)端文件夾們要放在哪兒,一般建議放在和MCDR端文件夾同目錄的servers文件夾中,并在其中新建一個
server.properties.overwrite
文件。
在配置時請確保至少有一個可用的服務(wù)端文件夾
我們假設(shè)server1為已配置好的一個服務(wù)端
圖1 此時的文件夾結(jié)構(gòu)
2. 找到MCDR端中路徑為
configs/ mount.json
的配置文件(
主體插件配置
),初始內(nèi)容如下:
{
// 是否在玩家加入時顯示一條幫助
welcome_player: true,
// 是否啟用 !!m 短指令
short_prefix: true,
// 自動檢測掛載點時的目錄
servers_path: [ "./servers" ],
// 重寫掛載點的server.properties時使用的覆蓋配置, 格式同server.properties,只添加需要覆蓋的配置行即可
overwrite_name: "../servers/server.properties.overwrite",
// 當(dāng)前可用的掛載點列表,
available_servers: [
"servers/Parkour",
"servers/PVP",
"servers/Bingo"
],
// 當(dāng)前MCDR實例正在使用的掛載點
current_server: "servers/Parkour",
// 此MCDR實例的掛載標(biāo)識
mount_name: "MountDemo"
}
注:其中的相對路徑是相對MCDR核心的路徑
3. 修改其中
servers_path
列表的值為servers文件夾相對路徑,根據(jù)關(guān)鍵步驟1,我們修改為
servers_path: [ "../servers" ]
4. 修改其中的
current_server
為你其中一個服務(wù)端的文件相對路徑,例如修改為
current_server: "../servers/ server1"
(因為之前我們假設(shè)server1可用)
5.修改其中的
mount_name
為你想要的文本(自己命名,作為“此服務(wù)端被占用”的標(biāo)識),例如修改為
mount_name: " Mount1"
修改完成,此時的文件目錄結(jié)構(gòu)如下:
3. 修改在第二步配置的overwrite_name文件, 建議添加服務(wù)器端口和RCON相關(guān)配置來獲取一致的體驗
用文本編輯器打開
servers/ server.properties.overwrite
文件并在其中寫入你想要統(tǒng)一的
server. properties配置項
,例如統(tǒng)一服務(wù)器端口等設(shè)置,格式同server.properties,下面是一個例子:
在這個文件中的配置會覆蓋所有子服的配置
4. 在第二步配置的自動檢測目錄中, 放入更多MC服務(wù)端實例, 然后可以游戲內(nèi)輸入!!mount -l查看并修改相關(guān)配置選項, 在修改完畢之后將人工檢查項設(shè)置為True
這一步請完整看完后再做操作
這一步便是向servers文件夾中添加更多的服務(wù)端文件夾。但是,在繼續(xù)這一步之前首先要啟動MCDR服務(wù)端。
重要操作
1. 打開
MCDR/config.yml
文件(MCDR配置文件),設(shè)置其中的
handler,start_command和working_directory
,使之與你在
mount.json
中選定的當(dāng)前服務(wù)器匹配。此處即為與server1匹配。(具體配置值參照MCDR配置方法)
2. 啟動MCDR,如果帶起了server1即為成功。
3. 進(jìn)入
servers/server1
文件夾,找到新增的
mountable.json
文件并打開,默認(rèn)內(nèi)容如下:
{
// 是否通過了人工確認(rèn)
checked: false,
// 描述信息
desc: "Demo server",
// 此掛載點啟動命令
start_command: "./start.sh",
// 此掛載點使用的MCDR handler
handler: "vanilla_handler",
// 占用此掛載點的MCDR實例的掛載標(biāo)識, 空代表未掛載
occupied_by: " Mount1",
// 此掛載點的重置路徑, 空或者.代表無重置路徑
reset_path: "",
// 此掛載點的重置方法, full代表全部重置, region代表保留玩家信息(如跑酷記錄)
reset_type: "full",
// 專為此掛載點的mcdr插件目錄, 使得每個掛載點可使用專有的插件, 空或者.代表無
plugin_dir: ""
}
修改其中的配置信息使之與server1匹配
其中相對路徑是相對于server1服務(wù)器核心文件的路徑
特別注意occupied_by的值,此處一定要與mount.json中的Mount_name相同,表示正在掛載server1這個服務(wù)端
到這里MCDR啟動完成,可以向servers文件夾中添加所需要的服務(wù)端文件夾,
每一個服務(wù)端文件夾中都復(fù)制一個mountable.json進(jìn)去
,并修改相應(yīng)參數(shù),
特別注意除server1以外所有其他服務(wù)端的occupied_by值應(yīng)為空
,表示服務(wù)端未被占用
添加完成后進(jìn)入服務(wù)器,在聊天欄輸入
!!m -r
讓插件自動檢測你添加的所有服務(wù)端,然后輸入
!!m -l
此時應(yīng)正確顯示所有添加服務(wù)器的列表,只不過均不可用。
不可用是因為服務(wù)端
mountable.json
文件的
checked
值為false,如果確認(rèn)該服務(wù)端沒有問題后改成true即可。
5. 此時重新輸入!!mount -l 即可看到人工檢查通過的服務(wù)端處于可用狀態(tài), 掛載即可
沒錯!搞定了!
6. 更多指令, 可在游戲內(nèi)輸入!!mount獲取幫助信息
常見問題及解決辦法
Q:我的MCDR直接崩潰了,啟動不起來。 A:檢查插件的pip包是否已全部安裝,檢查插件的版本 Q:我的MCDR啟動了一個新的服務(wù)端,而不是我放的server1 A:檢查MCDR的working_directory的值,看看是不是在MCDR/server里新建了一個服務(wù)端,如有,請修改working_directory后刪除它 Q:我的MCDR無法啟動我的server1 A:檢查相對路徑有沒有寫錯,然后檢查啟動命令是否有誤。請同時檢查MCDR的配置文件config.yml和config/mount.json相應(yīng)參數(shù)是否一致 Q:我的server1可以進(jìn)入了,但是里面用不了MCDR A:檢查mountable.json中的handler是否有誤,并同步檢查MCDR配置文件config.yml Q:我!!m -l后的服務(wù)器列表全是紅色的 A:檢查當(dāng)前未掛載的服務(wù)端的mountable.json文件中的occupied_by是否為空,請改為"occupied_by": "", Q:還有啥 A:我不到哇 感謝
401U:
寫出這個nb的插件,并被我煩了一下午
SJMC服務(wù)器:
提供了我瞎搗鼓的環(huán)境 如果有空的話我就去做個樣例包丟云上,如果有空的話ε=ε=ε=┌(;′°ェ°)┘ 先寫到這兒吧,估計還會有要補(bǔ)充的,到時候再看qwq