昵称

昵称

简单昵称系统,支持跨平台同步

Nicknames

一个 Minecraft 模组/插件,添加了简单的昵称系统。玩家可以更改一次自己的显示名称;服务器管理员可以自由管理昵称。

支持 Forge(1.20.1)、Fabric(1.21.1)以及 Bukkit/Paper/Purpur(1.21.1)。

功能

  • /nick <name> — 设置自己的昵称(每位玩家仅限一次)
  • /nick set <player> <name> — 管理员:设置某位玩家的昵称
  • /nick reset <player> — 管理员:重置某位玩家的昵称
  • /nick list — 管理员:列出所有昵称及其状态
  • 昵称会显示在聊天、TAB 列表以及玩家头顶
  • 昵称会同步到客户端,以便正确渲染名牌
  • 模组在客户端是可选的 — 服务器可独立运行,客户端仅获得名牌同步功能
  • 支持本地化(英语、俄语)
  • 昵称数据持久保存在 config/nicknames/nicknames.json(Forge/Fabric)或 plugins/Nicknames/nicknames.json(Bukkit)中

客户端-服务器架构

该模组使用自定义的 nicknames:sync 通道在服务器与客户端之间同步昵称。

服务器存储所有昵称,是唯一可信来源。当昵称发生变化或有玩家加入时,服务器会向所有已连接的客户端发送一份完整的昵称映射(UUID -> 显示名称)。

客户端(可选)接收同步数据包并在本地缓存昵称。该缓存用于在玩家头顶(名牌)渲染昵称。如果没有安装客户端模组,玩家仍可在聊天和 TAB 列表中看到昵称 — 这些由服务器端处理。

该机制可跨平台工作:Bukkit/Purpur 服务器可以通过插件消息传递(Plugin Messaging)将昵称同步到 Forge 或 Fabric 客户端。

服务器 客户端 聊天 TAB 名牌
Forge Forge 是 是 是
Fabric Fabric 是 是 是
Bukkit Forge/Fabric 是 是 是
任意 原版 是 是 否

项目结构

nicknames-mod/
  common/    — 共享代码(NicknameStore、NicknameProtocol、NicknameEntry)
  forge/     — Forge 1.20.1 模组(客户端+服务器)
  fabric/    — Fabric 1.21.1 模组(客户端+服务器)
  bukkit/    — Bukkit/Paper/Purpur 1.21.1 插件(仅服务器)

安装

Forge(1.20.1)

将 forge/build/libs/ 中的 nicknames-mod-x.x.x.jar 放入 mods/ 文件夹(服务器,客户端可选)。

Fabric(1.21.1)

将 fabric/build/libs/ 中的 fabric-x.x.x.jar 放入 mods/ 文件夹。需要 Fabric API。

Bukkit/Paper/Purpur(1.21.1)

将 bukkit/build/libs/ 中的 nicknames-bukkit-x.x.x.jar 放入 plugins/ 文件夹。

构建

./gradlew build

一次性构建所有模块,或指定某个模块:

./gradlew :forge:build
./gradlew :fabric:build
./gradlew :bukkit:build

需要 Java 21。

许可证

MIT