教程 <恢复>如何优雅的用Multicraft面板开BDS服务器

要我继续写下去吗(3+人投yes或站长投yes就写下去)

  • 算了

    选票: 0 0.0%
  • 这种操作我早就知道了

    选票: 0 0.0%

  • 总投票
    3
  • 投票关闭 .

kengwang

强者
旧贴已经恢复,脚本会贴出来,新帖子将会重新讨论,当前方案可能已经过时,我目前暂时不再维护,有问题联系QQ: 1136772134

版权
此文仅限 McBar [https://www.mcbar.cn] MineBBS[https://www.minebbs.com] Kengwang博客 [https://blog.kengwang.co] 发表
未经允许,禁止转载!
违者必究!
前言
照例一个前言 :) 也感谢大家(其实也只有两个人)的支持,今天没有咕咕咕
首先还是昨天的那几个问题
BDS有点烦的就是,不能直接通过命令行传参,而是读取server.properties.所以就需要一些PY操作了!
BDS要用面板开的话必须要把全部文件拷到server目录,并且切换版本还要删除所有文件(不包括server.properties,world自求多福)并且重新拷贝必须文件
要防止用户更改max-player,server-port等参数!
那么该怎么办呢?
不知道大家有没有什么好的解决方案呢?
要直接看正确解决方案,不看作者的废话的
作者是不是很良心!
下面有几个可能的方案:
方案大全
使用Multicraft默认的配置文件设置+Multicraft自动生成
下面我就说说这种方法的弊端
  1. 用户可以偷偷更改server-port和max-player等选项(好像Multicraft不会自动更改回来)
  2. 永远不要相信自动化 -- aaaaaaccd
  3. Multicraft自动生成不会生成server-portv6,导致无法开服的问题
  4. 文件无法做到拷贝为单独的东西
所以说这个方法排除了
使用人工操作!
这个方法确实是个好方法,但是不觉得太费时间,太费精力,太费人力
吗,而且相应的BDS价格也会上涨,所以这个方法想都不用想!
Multicraft模板大法好!
这个真的是个方法哦!而且当你想到这个了的话,你就一定是对Multicraft很了解了!
也是,模板大法确实很好,在第一次开服的时候就使用模板,但是这样也不好维护,要切换版本呢?删除全部文件(对了,模板可以选择是否删除全部文件),但是总觉得欠妥,一个应该放在核心选择列表的东西放在了模板,
正解(主讲)
不知道有没有人想到Shell脚本!
先讲讲好处吧!
好处
  1. 重写性高,脚本很容易就修改了
  2. 自由度高,不需要拘束于Multicraft的一些杂七杂八的东西
  3. 选择性高,可以直接通过conf调用
  4. 权限指令丰富,cp啊,文件修改啊,一个脚本就可以搞定的!
  5. 想不出来了呢......
弊端
暂时没有找到哦!欢迎提建议!
重头戏来了!!!!!
解决方法
需求列出
首先我们把我们的需求列出来
  1. 多版本切换(版本之间保存world文件夹和server.properties)
  2. 防止关键数据被篡改(server-port,max-player)
  3. 自动生成server-portv6
  4. 自动拷贝文件!
  5. 不同版本切换文件
  6. 还有什么需求吗,似乎没有了诶!
开始编写
首先我们从一个简单的地方开始!
编写Multicraft Conf
首先作为一个大佬(默认在场的都是大佬),Conf必须有几个东西!
启动指令(command)
这个简单,我们嵌套脚本的话直接
command = /home/minecraft/multicraft/jar/startup.sh "1.11.4.2" "{PORT}" "{MAX_PLAYERS}" "{SERVER_DIR}" "{WORLD}"
先解释一下,这个几个参数,第一个是版本号,每一个Conf自己改,PORT是端口,MAX_PLAYERS是最大玩家,SERVER_DIR是服务器目录,WORLD是默认世界,所有用{}包裹的Multicraft都会自动转化为一些面板上设置好的参数
杂七杂八
但是我告诉你,还需要phrase_start,phrase_stop等参数,否则会出现开服状态不正常,以及phrase_connect来显示连接玩家!以便在面板中控制,这样的话就会很正常了!
当然除了这个,还需要一些其他的,在此不一一赘述
总之,编写好的Conf我就把全部贴出来吧(Beerry - 智能云(纪念一下)目前正在使用此解决方案)
(见附件 DEF.CONF)

我们可以看到,这个用了
"版本号" "{PORT}" "{MAX_PLAYERS}" "{SERVER_DIR}" "{WORLD}"
所以说,我们一个一个来吧
脚本编写
  1. 版本号
我们这样吧,把所有的版本放到一个单独的文件夹,就像这样
/home/minecraft/multicraft/jar/BDS/
├── bedrock-server-1.10.0.7
├── bedrock-server-1.11.1.2
├── bedrock-server-1.11.4.2
├── bedrock-server-1.6.1.0
├── bedrock-server-1.7.0.13
├── bedrock-server-1.8.1.2
└── bedrock-server-1.9.0.15

7 directories


我这边是直接放到了/home/minecraft/multicraft/jar/BDS/下面,注意一定要设置为755权限 (之前我写的777,因为有安全风险,现已更改)
chmod -R 755 /home/minecraft/multicraft/jar/BDS/
然后我们脚本就这样一个思路吧!
  1. 提示版本号
  2. 删除服务器已有文件
  3. 复制文件
  4. 版本号记录!(防止更换版本后分不清楚)
PS:假如说4有更好的解决方案可以站内私信Kengwang哦!
所以说我们开始写脚本吧 (以下脚本版权Kengwang所有,请尽量保留版权)
(startup.sh) 放在multicraft路径/jar下 给记得可执行权限
Bash:
chmod 755 startup.sh
startup.sh的最后一行记得修改成你的开服指令,因为我是给CentOS的修改版BDS写的,我在代码中的注释也说明了写在哪里
默认的multicraft路径为/home/minecraft/multicraft (使用我的一键脚本安装到的位置),如果你的安装位置是在其他地方,请手动修改startup.sh中的文件

PS: 我不做解释了,很多东西已经在里面了,如果有问题加我QQ 1136772134 并说明问题.
因为发文发了太久了,我就把它放出来了

这个想说点题外话.
我会在之后在此发个新教程,这个只是老教程的一个回复和完善,脚本也和之前那个版本不一样了
网上很多人都在用unzip来生成,这种很不负责任,占用无用的IO,消耗服务器资源
还有的用的是核心套模板,这也是个好方法!
新教程(Windows下开BDS<可插件>)一直在咕咕咕,我也没时间来写文章,只开源了下启动器 (https://github.com/kengwang/KWRunner),会用的大佬可以看看(大佬们可能有自己的方案)
如果喜欢的话可以去爱发电打赏哦~ https://afdian.net/@kengwang
 

附件

最后编辑:

一位不愿意透露姓名的网友

闲逛的萌新
这个可以有
 

可口可乐

闲逛的萌新
为啥不发布
 

我是大哥

New member
支持一波
 

kengwang

强者
还在慢慢码字,码一点发一点
 

ninjasex

New member
支持楼主,希望楼主能更新下去。
 
C

CGFHJKL

闲逛的萌新
怎么没有了
 

kengwang

强者
删帖了,删帖了
 

kengwang

强者
我想抽空发 如何优雅地用Multicraft开插件版BDS 等一个月吧,我先去了解下某些面板商的解决方案
 

Hioo

New member
等待中:),刚好我bds服想转移到multicraft
 
S

suisuiyou1

闲逛的萌新
我想抽空发 如何优雅地用Multicraft开插件版BDS 等一个月吧,我先去了解下某些面板商的解决方案
大佬快! 等你好信息
 

kengwang

强者
旧贴会恢复,新的方案之后会抽时间发新贴
 

kengwang

强者
我能把这个楼层置顶吗?这个想说点题外话.
我会在之后在此发个新教程,这个只是老教程的一个回复和完善,脚本也和之前那个版本不一样了
网上很多人都在用unzip来生成,这种很不负责任,占用无用的IO,消耗服务器资源
之后的新教程会更加硬核,拭目以待
 

ninjasex

New member
大佬就是大佬,希望早日看到新方案。
 

kengwang

强者
777权限可能会被恶意利用,其实不需要读权限和特殊权限
 
S

suisuiyou1

闲逛的萌新
777权限可能会被恶意利用,其实不需要读权限和特殊权限
啊 大佬 。。。。win系统能不能用
 
S

suisuiyou1

闲逛的萌新
希望 新的可以支持win = =
 
H

hrt

闲逛的萌新
[Server] INFO /jar/startup.sh:行30: /usr/sbin/lsof: 没有那个文件或目录
22.08 12:39:32 [Server] INFO 正在检测是否为第一次使用此版本开服......
22.08 12:39:32 [Server] INFO 正在处理配置文件.
22.08 12:39:32 [Server] INFO 正在启动服务器!
22.08 12:39:32 [Server] INFO /jar/startup.sh:行95: /ld-linux-x86-64.so.2: 没有那个文件或目录
22.08 12:39:32 [Multicraft] Server shut down (starting)
22.08 12:39:32 [Multicraft] Restarting crashed server in 5 seconds
22.08 12:39:32 [Multicraft] Looks like a crash, check the server console. Return value: 127
22.08 12:39:32 [Multicraft] Server stopped
 
顶部