- 版权类型
- 原创
- 插件中文名称
- 自定义屏幕聊天
- 插件英文名称
- CustomChatScreen
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 中文(简体)
- 前置组件
- BetterHud;
ProtocolLib;
PlaceholderAPI;
- 适配版本(Java)
- 1.21
[MD]
---
## 核心
| 功能 | 说明 |
|------|------|
| **聊天位置自定义** | 通过 ProtocolLib 拦截聊天包,想放哪放哪 |
| **无需客户端 mod** | 服务端直接处理,玩家啥都不用装 |
| **BetterHUD 无缝配合** | 占位符直接对接 BetterHUD,聊天可以嵌到 HUD 任意位置 |
| **历史记录占位符** | 最近 10 条聊天、5 条私聊、5 条公告都能拿到 |
---
## 核心创新点
1. **协议层拦截** - 直接在数据包层面拦截聊天消息,不依赖任何客户端
2. **智能占位符** - 聊天历史、私聊、物品操作都有对应的占位符
3. **BetterHUD 深度集成** - 专为 BetterHUD 设计,占位符拿来就能用
---
## 主要功能模块
| 模块 | 功能 |
|------|------|
| **聊天拦截** | 接管所有聊天消息,支持自定义格式 |
| **占位符服务** | 10 条聊天历史、5 条私聊、5 条公告、物品操作记录 |
| **物品追踪** | 记录拾取、丢弃、消耗、合成,5 秒自动消失 |
| **死亡消息** | 40+ 种死亡原因自定义,支持随机文案 |
| **私聊增强** | 拦截并记录私聊,占位符可用 |
| **静默期管理** | 20 秒没消息开始逐条淡出 |
---
## 详细功能说明
### 聊天管理
- 拦截所有聊天消息(1.19+ 和 1.18- 都兼容)
- 自定义聊天格式,支持颜色码和占位符
- ActionBar 消息不会拦截,放心
### 占位符(PlaceholderAPI 扩展)
| 占位符 | 干啥用的 |
|--------|----------|
| `%chatmenu_last_message_1~10%` | 最近 10 条聊天记录 |
| `%chatmenu_msg_1~5%` | 最近 5 条私聊(仅参与者可见) |
| `%chatmenu_announcement_message_1~5%` | 最近 5 条系统公告 |
| `%chatmenu_item_transaction_1~5%` | 物品操作记录 |
| `%chatmenu_plugin_message_1~5%` | 插件消息 |
| `%chatmenu_talked_this_tick%` | 当前 tick 是否有聊天 |
### 物品追踪
追踪这些操作:
- 拾取物品
- 丢弃物品
- 消耗物品(药水、食物)
- 合成物品(工作台、熔炉等)
显示格式:`拾取了 +3 钻石`、`丢弃了 -1 木剑`
5 秒自动淡出。
### 死亡消息
支持超多死亡原因定制,配置示例:
```yaml
death-messages:
lava:
- "%player% 把岩浆当温泉,结果煮成火锅"
- "%player% 试图在岩浆里泡脚,结果熟了"
void:
- "%player% 一脚踩空,坠入虚空"
- "%player% 被世界边界吞噬"
creeper:
- "%player% 被苦力怕 love 一下"
- "%player% 试图用脸接苦力怕"
```
支持的死亡原因:熔岩、火、摔落、虚空、爆炸、骷髅、僵尸、苦力怕、蜘蛛、末影龙、PVP 等等 40+ 种。
### 公告系统
```yaml
announcements:
join: "%player% 加入了服务器"
quit: "%player% 离开了服务器"
advancement: "%player% 完成了成就 %advancement%"
```
---
## 安装与配置
### 环境要求
- Java 21+
- Paper/Spigot 1.21+
- PlaceholderAPI(必须)
- ProtocolLib(必须)
- BetterHUD(可选,想自定义聊天位置的话需要)
### 安装步骤
1. 把 自定义屏幕聊天.jar 丢进 `plugins/` 目录
2. 重启服务器,会自动生成配置文件
3. 确保 PlaceholderAPI 和 ProtocolLib 已安装
4. 想用 BetterHUD 的话也装上
5. 执行 `/chatmenu reload` 重载配置
### 配置文件说明
```yaml
enabled: true
chat-format: "%player%: %message%"
announcement-format: "%text%"
msg-format: "[私信] %sender% -> %target%: %message%"
item-transaction-format: "%action% %item%"
logs-auto-cleanup-minutes: 60
```
---
## 使用方法
### 命令
| 命令 | 说明 | 权限 |
|------|------|------|
| `/chatmenu` 或 `/cmenu` | 重载配置 | `chatmenu.reload`(默认 OP) |
---
### 配合优势
- **位置随便放** - 不再局限于屏幕底部
- **风格统一** - 和 HUD 其他元素看起来一致
- **实时更新** - 聊天和物品状态随时刷新
- **不影响性能** - 占位符按需更新
---
## 常见问题
**Q: 装了之后聊天消失了?**
A: 正常的。自定义屏幕聊天 拦截了原版聊天,必须配合 BetterHUD 才能显示。把占位符加到 HUD 配置里就有了。
**Q: ActionBar 消息也没了?**
A: 自定义屏幕聊天 不会拦截 ActionBar。检查一下是不是其他插件的问题。
**Q: 占位符不生效?**
A: 确认装好了 PlaceholderAPI,占位符格式是 `%chatmenu_xxx%`(有下划线)。
**Q: 物品追踪消息看不到?**
A: 在 BetterHUD 里加上 `%chatmenu_item_transaction_X%` 占位符。
**Q: 怎么获取历史聊天?**
A: 用 `%chatmenu_last_message_1~10%`,数字越小越新。
**Q: 性能怎么样?**
A: 多线程异步处理,内存占用很小,100+ 玩家同时在线没问题。
---
## 技术支持
**调试命令:**
```
/chatmenu reload # 重载配置
```
**日志位置:**
- `plugins/Chatmenu/logs/`
- 启动时控制台会显示 ProtocolLib 和 PlaceholderAPI 的连接状态
---
[/MD]