「文章写于2019/7/24」「Minecraft版本1.12.0正式版」「服务器版本1.12.0.28」
2020年2月19日注:该文章写的不好,笔者决定开学重新写一份,有问题的可以私信我,可以帮忙处理服务器。
这是我写的第三份教程,可以实现服务器内文件的修改,游戏指令的运用,以及对上一教程进行略微补充
我写的教程是相关联的,有的互相补充,有的错误的地方新教程会更新,实在想偷懒的话第一份教程可以不用看,教程地址可以进我空间看,我就不在这儿提供链接了。
讲解前我先说明一下:我以前是用minecraft文件夹来演示过程的,但因为我这个文件夹已经在使用了,不方便修改,所以我又在minecraft同一目录下又搞了个mtest文件,下面演示我将用mtest里的文件演示。
一、上次教程的补充
1.你每次开远程连接的时候,要有第一件事是"输入sudo su root"的好习惯。
"sudo su root"用来获取系统最高权限,防止之后的操作报错。
2.如果你要使用FileZilla,每次远程连接都需要设置密码(阿里云会在你关闭远程连接之后撤销你对root设置的密码)。
3.每次备份以及上传备份的文件其实并不一定只有worlds这个文件夹,但这是最基本也是最重要的需要备份的文件夹。还有三个文件也是略需要备份的,如下图所标
(permission.json, server.properties, whitelist.json)
这些文件的用处我会在后面讲。
如果还有人了解并会导入地图包、行为包、资源包等的,可能还需要将其他的一些文件备份下来。因为我没用过这些包,所以我就不讲解具体哪些包要备份了。
二、游戏指令的使用
在讲之前有个毛病我先说一下,如果用"LD_LIBRARY_PATH=. ./bedrockserver"(去掉尾端的&符号和两端的括号)直接在前台运行的话,是无法将程序挂到后台的(至少我使用了bg,fg前后台指令,我联系了阿里云技术人员也表示没有办法)。所以我们是无法应用在bedrock_server里打的指令,除非你的远程连接一直开着。但有些指令还是有点用的,因为这些指令是通过其他文件保存地。如果没听懂我说的也不要紧,到后面你就知道这其中的问题所带来的麻烦在哪儿了
1.在使用之前请把bedrock_server程序关闭(此前使用过"LD_LIBRARY_PATH=. ./bedrockserver"或者"(LD_LIBRARY_PATH=. ./bedrockserver&)"命令,无论有没有关闭过远程连接,如果使用过的话,建议重启一下服务器来结束程序的进程(别忘了开头说的"sudo su root")
然后再输入"LD_LIBRARY_PATH=. ./bedrockserver",出现:
这个就是前文说的bedrock_server程序,在下面你可以输入游戏指令,这个时候如果你关闭了远程连接,这个程序就会关闭
如果此前你输入的是"(LD_LIBRARY_PATH=. ./bedrockserver&)",此后你关闭了远程连接,这个程序仍然在后台运行,不会关闭,但是我们不能再调出这个程序来输入游戏指令。
第一条最基本的游戏指令:"help"(帮助指令)
输入"help 页数",会显示帮助文档,如图:
这条指令能帮助你找到你所需要的指令,也帮助我不用在此细讲各种指令用法
第二条重要的游戏指令:"gamerule"(游戏规则指令)
输入"gamerule",出现:
这条指令帮助你找到你想要处理的规则开关
比如,如果你想日夜交替关闭,你可以输入"gamerule dodaylightcycle false"来关闭日夜交替的规则
这里面的指令基本上是不判定你的世界是作弊的,所以纯净生存服不必太担心自己的服被开了作弊
这里面指令中有两个是我常用的,
一个是showcoordinates(坐标打开的规则),一个是keepinventory(死亡不掉落的规则)
输入"gamerule showcoordinates true" ,出现:
第三条指令是op指令(赋予管理员(operator)指令)
输入"op 玩家昵称" (昵称就是登录minecraft的Xbox玩家代号)
这条指令实现的前提就是该玩家要在服务器游戏中,不然会显示无法找到玩家,如图
还有一条指令是whitelist指令(白名单指令)
输入"whitelist add 玩家昵称"可以将玩家添加到白名单
输入"whitelist remove 玩家昵称"可以将玩家从白名单移除
这条指令暂时了解一下就行,后面会细讲,这里我就先不用图片演示了(有可能会报错属于正常,因为服务器白名单开关可能没开)
三、服务器内文件的修改
首先把bedrock_server,也就是上面一直讲的程序关闭,简单粗暴的方法就是重启(重新打开远程连接记得"sudo su root")
并且把当前目录调到minecraft(使用cd指令)
输入"ls -al"展示一下minecraft下的文件,如图:
这里教一条新的指令"vim"指令
输入"vim 文件"来进入并编辑文件
我们先试着修改一下server.properties文件
输入"vim server.properties",出现:
进入之后千万别瞎按键盘,因为各个键可能都是功能键,如果不小心按了,可以按esc退出(多按几下也不要紧)
可以按的是上下左右方向键,用来移动光标
前面没"#"号标注的是有效语句,有"#"的是批注语句
如果你想修改其中的一个信息,比如将第一行的server-name的"Dedicated Server"改为"123"
首先,将光标移动到需要编辑的地方,然后按下键盘上的"i"(insert)键,进入编辑模式
然后删掉原来的"Dedicated Server",并输入"123"
输入完毕后要按esc键退出编辑模式,你可以继续移动光标,继续进入编辑模式修改其他信息,然后esc退出
当你修改完信息了(esc按完后),直接输入":wq"来保存你的所有修改并退出该文件
如果你不小心编辑错了也不要紧,还是按完esc后,输入":q!"会退出该文档,但不会保留之前你对文档的修改
下面我说一下里面的whitelist,白名单启用开关。
白名单就是允许进入游戏的玩家的名单,位置仍然在server.properties文档中,只不过需要用光标往下移动才能找到,如图:
下面讲一下白名单文档,whitelist.json
跟上面一样,输入"vim whitelist.json"进入该文档
进去之后你可能会发现文档里面空空的,只有一对中括号,不要慌
官方文档告诉我们该文档里信息的格式:
我先解释一下每个对象(Key)的含义
name:玩家的昵称,也就是Xbox的玩家代号
xuid:玩家Xbox的后台id
ignoresPlayerLimit:忽略该玩家对服务器最多玩家的计算,也就是不将该玩家计入服务器在线人数(没什么卵用)
按照官方文档的格式
我们将光标移到中括号内,然后按"i"键进入编辑模式
输入"{"ignoresPlayerLimit":false,"name":"昵称"}"(输入的时候别把我这里外面的两个引号也给输进去了)
这样就把一个玩家添加好了"ignoresPlayerLimit"这栏的参数默认是false,当然,如果你想true也没什么太大关系(我觉得没啥意义,建议还是false)
"xuid"这一栏是选填,mojang考虑到我们不会太清楚自己的xuid是多少
同时每个{}之间记得要添加逗号:
我们不一定要要跟官方文档里一样缩进的好好的,比如我的白名单是这样的(信息我打了马赛克):
还有一个文档是permission.json
这个文档是用来设置玩家权限的(默认是普通成员:member)
如果你想更改某个玩家权限,这里我还是给个官方文档来参考:
operator是管理员,member是普通成员,visitor不清楚具体是什么权限
这里我就不细讲怎么修改了,跟whitelist里的修改差不多
不过一般不会用到这个文件,因为你也不知道玩家的xuid是多少(你可以通过其他各类方法知道自己的xuid,不过还是比较麻烦的)
我们回到之前的server.properties文件
里面有一行是设置玩家的默认权限(玩家第一次加入服务器的时候)
四、一些基本目的的实现
1.op赋予
重启服务器,打开远程连接
输入"sudo su root"
cd到minecraft文件夹
输入"LD_LIBRARY_PATH=. ./bedrock_server"
输入"op 玩家昵称"(输入前确保玩家在游戏内)
(如果没有添加成功请检查昵称拼写,如果玩家昵称中间有空格是无法执行的)
关闭连接重启服务器
输入"sudo su root"
cd到minecraft文件夹
输入"(LD_LIBRARY_PATH=. ./bedrock_server&)"
关闭连接
2.添加白名单
重启服务器,打开远程连接
输入"sudo su root"
cd到minecraft文件夹
输入"LD_LIBRARY_PATH=. ./bedrock_server"
输入"whitelist add 玩家昵称"(输入前确保玩家在游戏内)
(如果没有添加成功请检查昵称拼写,如果玩家昵称中间有空格是无法执行的)
关闭远程连接,重启服务器
输入"sudo su root"
cd到minecraft文件夹
输入"(LD_LIBRARY_PATH=. ./bedrock_server&)"
关闭连接
如果玩家昵称有空格的步骤:
重启服务器,打开远程连接
输入"sudo su root"
cd到minecraft文件夹
输入"vim whitelist.json"
按照上面的教程将玩家添加到白名单
关闭远程连接,重启服务器
输入"sudo su root"
cd到minecraft文件夹
输入"(LD_LIBRARY_PATH=. ./bedrock_server&)"
关闭连接
3.op可以设置游戏的各个设置,如图
4.程序里的各个非保存到文件的指令无法在后台执行
比如前面说到的gamerule游戏指令就不能再后台运行
而op,whitelist add指令则是会保存到外部文件的
但是如果你必须的话也不是不可以,就是远程连接必须要一直开着
步骤是:
重启服务器,打开远程连接
输入"sudo su root"
cd到minecraft文件夹
输入"LD_LIBRARY_PATH=. ./bedrock_server"
然后就可以输入游戏指令了
以上就是本次的教程,有问题可以私信我,转载请标明出处