指令开关配置
基本信息
| 属性 | 值 |
|---|---|
| 配置类 | serverutils.ServerUtilitiesConfig.Commands |
| 源码 | src/main/java/serverutils/ServerUtilitiesConfig.java:208-297 |
| 字段访问 | ServerUtilitiesConfig.commands.<字段> |
| 字段数 | 29(全部为 boolean) |
| 默认值 | 全部 true(29 个 @Config.DefaultBoolean(true)) |
| 配置文件 | config/serverutilities/serverutilities-server.cfg(见下方路径说明) |
29 个开关与 服务端指令总表 的 44 条顶层指令一一对应(部分开关控制多条指令)。这是本模组唯一的指令总开关层 —— 关掉某个开关,对应指令在 FMLServerStartingEvent 阶段就根本不会被注册,玩家看到的是「未知指令」而非「权限不足」。
配置文件路径
主配置类的注解是(ServerUtilitiesConfig.java:23):
@Config(modid = ServerUtilities.MOD_ID, category = "", configSubDirectory = "../serverutilities/")
configSubDirectory = "../serverutilities/" 是 GTNHLib ConfigurationManager 的相对写法,配置最终落在 config/serverutilities/ 下。AuroraConfig 用了同样的 configSubDirectory 但 filename = "aurora"(aurora/AuroraConfig.java:8),客户端配置则额外带 configSubDirectory = "../serverutilities/client/"(client/ServerUtilitiesClientConfig.java:8)。
[!NOTE] 三份配置的实际落盘文件名由 GTNHLib 生成,本条目不给出确切文件名 —— 该仓不含任何写死的 cfg 文件名,
grep -rn "\.cfg" src/main/java无结果。目录归属可从configSubDirectory确定。
完整开关表
| 字段 | 行 | 默认 | 控制的指令 |
|---|---|---|---|
warp |
211 | true | /warp、/setwarp、/delwarp |
home |
214 | true | /home、/sethome、/delhome |
back |
217 | true | /back |
spawn |
220 | true | /spawn |
inv |
223 | true | /view(invsee) |
tpl |
226 | true | /tpl |
trash_can |
230 | true | /trash_can |
chunks |
233 | true | /chunks(整组 10 条) |
kickme |
236 | true | /kickme |
ranks |
239 | true | /ranks(整组 8 条) |
heal |
242 | true | /heal |
killall |
245 | true | /killall |
nbtedit |
248 | true | /nbtedit |
fly |
251 | true | /fly |
leaderboard |
254 | true | /leaderboards |
tpa |
257 | true | /tpa、/tpaccept |
nick |
260 | true | /nick、/nickfor |
mute |
263 | true | /mute、/unmute |
rtp |
266 | true | /rtp |
god |
269 | true | /god |
rec |
272 | true | /rec |
reload |
275 | true | /reload |
backup |
278 | true | /backup |
dump_chunkloaders |
281 | true | /dump_chunkloaders |
dump_permissions |
284 | true | /dump_permissions |
dump_stats |
287 | true | /dump_stats |
vanish |
290 | true | /vanish |
seek_block |
293 | true | /seek_block |
pregen |
296 | true | /pregen(整组 3 条) |
客户端同步
只有 trash_can 带 @Config.Sync(ServerUtilitiesConfig.java:228-230):
@Config.DefaultBoolean(true)
@Config.Sync
public boolean trash_can;
@Config.Sync 使该值随 MessageSyncData 下发给客户端,因此侧边栏按钮能在客户端直接隐藏/显示 /trash_can 入口(assets/serverutilities/sidebar_buttons.json 中 trash_can 项带 "hide_if_server_disabled": true)。
三个不由本组控制的指令
Commands 之外还有 3 条顶层指令,它们读的是别的配置类:
| 指令 | 实际开关 | 位置 |
|---|---|---|
/add_fake_player |
debugging.special_commands |
ServerUtilitiesConfig.java:105-106(默认 false) |
/shutdown_time |
auto_shutdown.enabled |
ServerUtilitiesConfig.java:147-150(默认 false) |
/transfer |
transfer.enabled |
ServerUtilitiesConfig.java:811-813(默认 true) |
/shutdown、/shutdown_time、/pause_when_empty 另有 isDedicatedServer() 硬条件,/my_settings、/team、/motd 完全无条件注册。
联动效应
部分开关同时控制 Mixin,关掉指令会让相关补丁一并消失:
| 开关 | 联动 Mixin | 源码 |
|---|---|---|
vanish |
VANISH_COMMAND(9 个服务端 Mixin) |
mixin/Mixins.java |
back |
VANILLA_TP_BACK_COMPAT |
同上 |
VANILLA_TP_BACK_COMPAT 专门给原版 /tp 加返回点兼容,其 setApplyIf(() -> commands.back) 直接读本配置组。