标题指令
基本信息
| 属性 | 值 |
|---|---|
| 指令 | /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 无关。
相关条目
- 网络处理器 -
MessageTitle数据包的注册 - GTNHLib 主配置 - 11 个
title*配置项 - 客户端指令 - 另外两个客户端侧指令