标题指令

基本信息

属性 值
指令 /title
类 com.gtnewhorizon.gtnhlib.commands.TitleCommand(final extends CommandBase)
源码 src/main/java/com/gtnewhorizon/gtnhlib/commands/TitleCommand.java
权限等级 2(OP)
注册时机 CommonProxy.serverStarting(),无条件注册
客户端 API com.gtnewhorizon.gtnhlib.client.title.TitleAPI(client/title/)

⚠️ 这是 1.7.10 的 GTNH 自定义 /title,不是原版 1.8+ 的 title 指令。

功能

通过指令向指定客户端推送标题覆盖层。每个子动作对应 TitlePacketHandler 的一个 sendXxx(player) 调用。

数值

数值名 值
指令名 title
别名 无
权限等级 2
子动作 6(clear、reset、title、subtitle、times、icon)
最低参数数 2(玩家名 + 动作)

子动作

动作 参数 实现 语言键
clear <player> TitlePacketHandler.sendClear(player) commands.title.cleared.single
reset <player> TitlePacketHandler.sendReset(player) commands.title.reset.single
title <player> title <text…> TitlePacketHandler.sendTitle(player, textFromArgs(args, 2)) commands.title.show.title.single
subtitle <player> subtitle <text…> TitlePacketHandler.sendSubtitle(player, …) commands.title.show.subtitle.single
times — TitlePacketHandler commands.title.times.single
icon — TitlePacketHandler commands.title.icon.single

指令用法字符串(TitleCommand.java:27):

/title <player> <clear|reset|title|subtitle|times|icon> [args...]

参数不足 2 个时抛 WrongUsageException;title / subtitle 至少需 3 个参数。全部 6 个语言键见 assets/gtnhlib/lang/en_US.lang 末尾。

TitleAPI

客户端侧由 client/title/ 下的类实现,共 6 个类:

类 角色
TitleAPI 对外静态 API,214 行
TitleEffectSystem 电影级完成特效
TitleParticle 单个粒子
TitleParticleSystem 粒子系统
TitleRenderer 实际绘制
network/TitlePacketHandler 服务端 → 客户端下发

TitleAPI 的 14 个 ICON_ANIM_* 常量与 setIconAnimation 对应 GTNHLib 主配置 的 titleIconAnimation 合法值:

常量 值 常量 值
ICON_ANIM_DEFAULT -1 ICON_ANIM_POP 6
ICON_ANIM_NONE 0 ICON_ANIM_BOUNCE 7
ICON_ANIM_FLY_IN 1 ICON_ANIM_WOBBLE 8
ICON_ANIM_SPIN 2 ICON_ANIM_SWING 9
ICON_ANIM_RISE 3 ICON_ANIM_SLAM 10
ICON_ANIM_SLIDE 4 ICON_ANIM_TADA 11
ICON_ANIM_ZOOM 5 ICON_ANIM_SPIN_REVERSE 12

TitleAPI 的 14 个 setXxx 方法中,多个约定传 0 或负值表示"回落到客户端配置默认"(setIconScale、setTitleScale、setTitlePosition 等的注释均如此声明)。另有 clear()、resetFade()、tick() 三个静态方法,合计 17 个 public static void。

resetFade() 把淡入/停留/淡出重置为 10/70/20 tick(TitleAPI.java:200-201 注释),但不清除当前标题。

交互

TitleAPI 的绘制挂在 RenderGameOverlayEvent.Post(TitleAPI.java:192),计时在 TickEvent.ClientTickEvent(:185)。CommonProxy 侧的 sendMessageAboveHotbar 走 PacketMessageAboveHotbar,与 title 无关。

相关条目