客户端配置项

基本信息

属性 值
配置类 serverutils.client.ServerUtilitiesClientConfig
源码 src/main/java/serverutils/client/ServerUtilitiesClientConfig.java:10-63
字段总数 10
字段风格 与服务端配置不同:全部是 public static(非 static final)
目录 configSubDirectory = "../serverutilities/client/"(:8)
语言键 @Config.LangKeyPattern(pattern = "serverutilities_client.%field")(:9)
打开方式 /client_config 指令(见 客户端指令)

字段表

字段 行 类型 默认 说明
item_ore_names 14 boolean false 背包中显示物品的矿物词典名
item_nbt 18 boolean false 背包中显示物品 NBT
sidebar_buttons 22 EnumSidebarLocation UNLOCKED 侧边栏按钮位置
sidebar_buttons_above_potion 26 boolean false 锁定到 INVENTORY_SIDE 且玩家有药水效果时,按钮上移到药水标签之上
sidebar_placement 33 EnumPlacement GROUPED 按钮排布方式
show_dotted_lines 37 boolean true 在已加载区块上画虚线以提高可见度
show_shutdown_timer 41 boolean true 角落显示服务器关机倒计时
shutdown_timer_start 45 String "1m" 距离关机还有多久时开始显示倒计时
button_daytime 48 int 6000 侧边栏「切换白天」按钮的目标 tick
button_nighttime 51 int 18000 侧边栏「切换夜晚」按钮的目标 tick

button_daytime / button_nighttime 对应原版 tick 时间:0 早晨、6000 正午、12000 傍晚、18000 午夜。

侧边栏位置枚举

serverutils.client.EnumSidebarLocation(src/main/java/serverutils/client/EnumSidebarLocation.java:5-8)4 个值,各带一个 locked 标志:

值 locked 含义
DISABLED true 关闭侧边栏按钮
TOP_LEFT true 固定在屏幕左上
INVENTORY_SIDE true 固定在物品栏侧边
UNLOCKED false 跟随 HUD 布局浮动(默认值)

above()(EnumSidebarLocation.java:20-23)是一个组合判定:仅当值为 INVENTORY_SIDE、玩家当前有生效药水效果、且 sidebar_buttons_above_potion 为真时返回 true,按钮才上移。

[!NOTE] above() 直接解引用 Minecraft.getMinecraft().thePlayer 且未做 null 检查。玩家为 null 时(例如还在主菜单/加载阶段被调用)会 NPE。本条目只记录事实,不推断是否存在实际触发路径。

按钮排布枚举

serverutils.client.EnumPlacement(src/main/java/serverutils/client/EnumPlacement.java:5-7)带一个 maxInRow 字段,直接参与布局计算:

值 maxInRow 含义(源码注释 :28-31)
GROUPED 2 按钮按组聚合在一起
VERTICAL 10 垂直排成一行(纵向)
HORIZONTAL 10 水平排成一行(横向)

惰性解析

shutdown_timer_start 是字符串,运行时用 Ticks.get(...) 解析并缓存到 @Config.Ignore private static long show_shutdown_timer_ms = -1L(:53-54):

public static long getShowShutdownTimer() {
    if (show_shutdown_timer_ms == -1L) {
        show_shutdown_timer_ms = Ticks.get(shutdown_timer_start).millis();
    }
    return show_shutdown_timer_ms;
}

@Config.Ignore 字段不进入配置文件,10 个可配置项的计数不含它。

侧边栏按钮定义

按钮本身不由本配置类定义,而在 src/main/resources/assets/serverutilities/sidebar_buttons.json,共 11 个按钮:

按钮 ID 分组 点击动作 条件
my_team info custom:serverutilities:my_team_gui 需要服务端模组;hide_if_server_disabled
settings info custom:serverutilities:client_config_gui 无
admin_panel info custom:serverutilities:admin_panel_gui requires_op: true
leaderboards util custom:serverutilities:leaderboards_gui 需要服务端模组
claimed_chunks util serverutilities:claims_gui hide_if_server_disabled
trash_can util command:/trash_can hide_if_server_disabled
heal cheat command:/heal requires_op;hide_with_nei
toggle.gamemode cheat serverutilities:toggle_gamemode requires_op;hide_with_nei
toggle.rain cheat command:/toggledownfall requires_op;config: true;hide_with_nei
toggle.day cheat serverutilities:daytime requires_op;hide_with_nei
toggle.night cheat serverutilities:nighttime requires_op;hide_with_nei

3 个分组在 sidebar_button_groups.json 中定义纵向偏移:info y=0、cheat y=100、util y=200。

hide_with_nei: true 的 5 个作弊类按钮在安装了 NEI 时隐藏(由 OtherMods.isNEILoaded() 判定,lib/OtherMods.java:16)。

相关条目