
先聊聊为什么我们追求永久管理。在服务器里当管理员很爽但也很烦。比如我开了一个生存服务器,朋友们进进出出,每次重启或者更新版本后,我都要重新给他们打一遍/op指令。这太浪费时间了。更尴尬的是,有一次我忘了给一个老成员续权,他直接退出服务器再也没回来。永久管理就是让特定玩家始终拥有操作员权限,无论服务器重启还是重载。对单机玩家来说,永久管理意味着永远不用再按一次“开启作弊”按钮。
搞懂OP命令与玩家列表
最基础的办法就是/op指令。在服务器控制台或者游戏内输入/op 玩家名,对方就会成为操作员。但注意,这个权限只存在于当前世界和当前会话。一旦服务器关闭或者你执行/deop,他就失去权限。所以想做到永久,你必须把玩家加入一个不会被自动清除的列表。在Minecraft默认的ops.json文件里,只要你不在服务器里手动删除,这些记录会保存下来。但有个陷阱,当你更换服务器核心或者迁移存档时,ops.json可能丢失。我建议你先备份这个文件。
服务器配置文件里的玄机
真正的永久管理藏在server.properties里。打开这个文件,找到enable-command-block这一项,改成true。这虽然不直接给玩家OP,但可以让你用命令方块跑/op指令。更关键的是op-permission-level这个参数,默认是4,但如果你改成4以上会导致混乱。实际上,想让某个玩家永远不被踢出OP,还要注意白名单和封禁列表。在whitelist.json里添加玩家,同时将他加入ops.json,这样即使服务器重启,他的权限也不会掉。另外,对于正版服务器,你可以在banned-players.json里反向操作。记住,每次修改配置文件后都要重启服务器或者执行/reload。
用插件实现永久权限
如果你开的服务器装了Bukkit或Spigot之类的插件端,永久管理就简单多了。安装一个权限管理插件,比如LuckPerms或GroupManager。首先给玩家创建一个组,比如“admin”,然后在插件配置里把这个组的所有权限节点设为true,并且把组的过期时间设为从不。接着用指令将玩家加入这个组。注意,有些插件默认会在玩家离线一段时间后自动清理缓存,你要去配置文件里把auto-purge设置成false。我自己的服务器就用LuckPerms,设置好之后,即使我换世界、更新插件,那个玩家的管理员权限纹丝不动。
单机模式的作弊开关
单机世界怎么开永久管理。其实很简单,创建世界时直接开启作弊模式。但如果你忘了,事后可以按ESC键,点“对局域网开放”,然后设置允许作弊为开。不过这只是临时方案,每次重进游戏都要重复一次。想要永久,你得手动修改存档里的level.dat文件。用NBTExplorer打开这个文件,找到Data标签下的allowCommands,把它改成1。保存后,再进世界,作弊就永远打开了。注意,基岩版的操作不同,你需要在设置里找到“激活作弊”并点开,然后选择“始终”。但基岩版有个烦人的地方,当你赢得成就后,这个选项会变灰,你得先备份存档。
注意那些坑与实用技巧
很多新手以为给了OP就万事大吉,其实大错特错。比如你开了命令方块权限,但忘记给玩家使用命令方块的能力,他仍然没法操作。还有,如果你服务器版本升级,ops.json的格式可能变化,旧的玩家列表会失效。我的习惯是每次大版本更新前,手动导出一份ops.json备份,更新后再覆盖回去。另一个坑是,如果你用/op和/deop指令频繁切换,会导致临时缓存与文件不同步。这时候用/pex reload或者插件自带的同步指令。对于正版服务器,还要留意Mojang的认证失效,玩家改名后他的UUID会变,你必须在ops.json里更新他的新UUID。
最终实现稳定的管理权限
综合以上,我推荐最稳妥的方案是:在服务器终端先用/op添加玩家,然后立即备份ops.json文件,再把该文件复制到服务器的根目录之外做一个硬链接。接着在server.properties里设置enable-command-block为true,这样即使出问题,你还能通过命令方块重新给权。最后用LuckPerms插件给那个玩家一个永不掉线的组。如果全部做到位,你再也不用担心管理权限丢失了。记住,定期检查日志文件,看看是否有插件自动清理权限的行为。真正的高手不会依赖记忆,而是靠配置文件与插件的合力。现在你可以放心去享受当管理员的乐趣了。
相关文章