全息模组

这个模组用于创建全息文本、记分板、方块和物品。该模组使用了来自聊天模组的精灵功能。

装饰

HologramMod — 文本、方块与物品展示全息投影,支持游戏内完整编辑

作为 ChatMod 的配套模组开发。 ChatMod 的 sprites.yml 中的精灵别名可直接在全息投影行内使用——只需在文本中任意位置使用 [#spriteName] 即可添加图集图标。


功能介绍

HologramMod 让你在世界中任意位置放置浮动文本、方块和物品展示,所有内容均通过 YAML 配置文件管理,并支持游戏内命令自动保存至磁盘。无需重启服务器。全部支持丰富的颜色代码、十六进制颜色、点击事件、悬浮文本和图集精灵。


特性

📝 文本全息投影 — /hologram

浮动文本展示,每行独立格式化。每行均支持完整 ChatMod 语法。

holograms:
  spawn_welcome:
    world: "minecraft:overworld"
    x: 0.5
    y: 65.0
    z: 0.5
    scale: 1.2
    billboard: CENTER
    brightness: 15
    shadow: true
    lines:
      - "&#FF5500&l欢迎来到服务器!"
      - "[#christmas_chest] &7季节性宝箱已开放"
      - "<action:run_command,/spawn>&a[ 点击传送 ]"

行语法:

  • &a, &b … &r — 传统颜色与格式代码
  • &#RRGGBB — 十六进制颜色
  • [#spriteName] — ChatMod 的 sprites.yml 中的图集精灵
  • {hover text} — 前一段文本的悬浮事件
  • <action:run_command,/cmd> — 前一段文本的点击事件

外观设置: billboard(CENTER / FIXED / HORIZONTAL / VERTICAL)、scale、brightness(0–15)、see_through、shadow、line_width、opacity、bg_color、view_range_blocks


🔄 多页动画

任何文本全息投影都支持多页,可按配置间隔自动循环切换。适用于轮播公告或动画标识。

animate: true
animate_interval_ms: 3000
pages:
  default:
    - "&a第一页"
  a:
    - "&b第二页"
  b:
    - "&c第三页"

使用 /hologram <名称> freeze <页码> 固定特定页面,或使用 /hologram <名称> freeze off 恢复循环。


👤 按玩家占位符行

包含 %player% 或其他玩家特定令牌的行会为每位玩家单独解析——一个实体,每位观众看到个性化文本,无需为每个玩家复制实体。

内置占位符:

占位符 值
%player% 玩家用户名
%player_health% 当前生命值
%player_level% XP 等级
%player_x/y/z% 坐标
%player_ping% 连接延迟
%player_gamemode% 游戏模式
%player_biome% 当前生物群系
%online% 在线玩家数
%tps% 服务器 TPS
%mspt% 每 tick 毫秒数
%time% / %date% 现实时间与日期
%ram_used% / %ram_percent% JVM 内存
%overworld_weather% 晴天 / 下雨 / 雷暴

当安装 Placeholder API 模组时,其占位符也会自动解析。


🧱 方块展示全息投影 — /holoblock

生成浮动的方块展示,支持完整方块状态,包括旋转和平移偏移。

block_displays:
  my_block:
    world: "minecraft:overworld"
    x: 0.5
    y: 65.0
    z: 0.5
    block_state: "minecraft:stone_slab[type=top]"
    billboard: FIXED
    scale: 0.5
    rotation_yaw: 45.0

双方块自动检测: 床、门和高草丛会自动拆分成两个正确偏移的展示实体。只需指定基础方块 ID——HologramMod 会自动处理两部分。


🗡️ 物品展示全息投影 — /holoitem

生成浮动的物品展示,可配置展示上下文,精确控制物品模型的朝向。

item_displays:
  floating_sword:
    world: "minecraft:overworld"
    x: 0.5
    y: 65.0
    z: 0.5
    item: "minecraft:diamond_sword"
    display_context: FIXED
    billboard: CENTER
    scale: 1.0

展示上下文: FIXED、GROUND、GUI、HEAD、THIRD_PERSON_LEFT_HAND、THIRD_PERSON_RIGHT_HAND、FIRST_PERSON_LEFT_HAND、FIRST_PERSON_RIGHT_HAND


📊 计分板全息投影 — /holoscore

实时排行榜展示,当分数变化时自动更新。支持三种数据源:

数据源 显示内容
scoreboard 任何原版计分板目标,按分数排序
ecobal EcoBal 经济模组的玩家余额排行
votes 总投票数,可配置目标里程碑
score_holograms:
  top_kills:
    world: "minecraft:overworld"
    x: 100.5
    y: 65.0
    z: 200.5
    source_type: scoreboard
    scoreboard: kills
    update_mode: scoreboard
    lines:
      - "&6&l击杀排行榜"
      - "&e#%rank% &f%displayname% &7— &a%score%"

分页: 使用 /holoscore <名称> newpage 链接第二个全息投影,它会从第一个结束的位置继续显示。

更新模式: scoreboard(当前 N 名变化时触发)或 timed(每 update_interval_ms 毫秒触发一次)。


游戏内命令

所有命令会自动保存回各自的 YAML 文件。

文本全息投影 /hologram /holo

命令 描述
/hologram create <名称> 在你当前位置创建
/hologram remove <名称> 永久删除
/hologram list 列出所有全息投影
/hologram info <名称> 显示设置
/hologram tp <名称> 传送到全息投影
/hologram move <名称> 移动到你的位置
/hologram addline <名称> <文本> 追加一行
/hologram setline <名称> <索引> <文本> 编辑一行
/hologram removeline <名称> <索引> 删除一行
/hologram set <名称> <设置项> <值> 更改任意外观设置
/hologram rotate <名称> <偏航角> 设置水平旋转
/hologram addpage <名称> 添加动画页面
/hologram freeze <名称> <页码|off> 固定或取消固定页面
/hologram reload 重新加载所有配置文件

方块展示 /holoblock

create、remove、list、move、block、set、rotate——与 /hologram 模式相同。

物品展示 /holoitem

create、remove、list、move、item、context、set、rotate——与 /hologram 模式相同。

计分板全息投影 /holoscore

create <名称> <类型> <目标>、remove、list、move、set、newpage、reload。


权限

权限 授予功能
hologrammod.command 基础 /hologram 命令访问权限
hologrammod.create /hologram create
hologrammod.remove /hologram remove
hologrammod.reload /hologram reload
hologrammod.edit 所有编辑子命令
hologrammod.* 所有权限

兼容 LuckPerms 和 Fabric Permissions API。


配置文件

所有文件位于 config/hologrammod/ 目录下。编辑后使用 /hologram reload 重新加载——无需重启。

文件 包含内容
hologramtext.yml 文本全息投影数据库
hologramblock.yml 方块展示数据库
hologramitem.yml 物品展示数据库
hologramscores.yml 计分板全息投影数据库
messages_format.yml 所有面向玩家的系统字符串

依赖模组

模组 是否必需
Fabric API ✅ 必需
LuckPerms 🔶 可选 — 用于基于权限的命令访问
Fabric Permissions API 🔶 可选 — 用于权限节点
ChatMod ⭐ 强烈推荐 — 启用精灵和完整富文本语法
Placeholder API 🔶 可选 — 在全息投影行中启用 PAPI 占位符

整合包政策: ✅ 可自由包含在任何整合包中。❌ 整合包不得出售。