Chat Notifier
Minecraft Fabric 模组 — 玩家状态变化自动在聊天栏公告
一个轻量级的服务端 Fabric 模组,当玩家发生扣血、饥饿值下降、怪物靠近、属性变化、获得状态效果等事件时,自动以玩家身份在聊天栏发送公告消息。
适用版本:Minecraft 26.1.x | 加载器:Fabric | 协议:MIT
✨ 功能特性
核心播报
- 扣血播报 — 玩家受伤时自动播报扣血量,被怪物攻击时显示攻击者名称
- 饥饿值播报 — 饥饿值下降时自动播报
- 怪物靠近 — 10 格范围内检测怪物,按种类统计数量;怪物过多时显示"XX居多"
- 状态效果 — 获得/消失效果时播报,持续超过 30 秒的效果在剩余 15 秒时再次提醒
扩展播报
- 属性变化 — 最大生命值、移动速度、攻击伤害、护甲值等 8 项属性变动播报
- 经验等级 — 升级/掉级时播报
- 维度切换 — 主世界 / 下界 / 末地传送时播报
- 死亡与重生 — 死亡原因播报 + 重生播报
- 加入游戏 — 玩家上线时播报当前状态
性能优化
- 事件驱动 + 降频轮询,属性检测每 20 tick、怪物检测每 10 tick
- 伤害事件与血量检测去重,一次伤害只发一条消息
- 使用
AFTER_DAMAGE事件,避免被取消的伤害误播报
📦 安装
前置要求
- Minecraft 26.1.x
- Fabric Loader >= 0.19.0
- Fabric API
- Java 25+
安装步骤
- 下载最新的
chat-notifier-1.0.0.jar - 将 jar 文件放入 Minecraft 实例的
mods/文件夹 - 启动游戏即可
🛠️ 从源码构建
# 克隆仓库
git clone https://github.com/<your-username>/chat-notifier-mod.git
cd chat-notifier-mod
# 构建(使用项目内的 Gradle Wrapper)
./gradlew build
# 产物位置
# build/libs/chat-notifier-1.0.0.jar
Windows 用户:使用
gradlew.bat build替代./gradlew build
📁 文件结构
chat-notifier-mod/
├── build.gradle # Gradle 构建脚本(Fabric Loom 插件)
├── settings.gradle # Gradle 项目设置
├── gradle.properties # 版本配置(MC / Loader / Java)
├── gradle/
│ └── wrapper/
│ └── gradle-wrapper.properties
├── gradlew # Linux/macOS Gradle 启动脚本
├── gradlew.bat # Windows Gradle 启动脚本
├── LICENSE # MIT 开源协议
├── README.md # 项目说明文档
├── .gitignore # Git 忽略规则
└── src/
└── main/
├── java/
│ └── com/
│ └── chatnotifier/
│ └── ChatNotifierMod.java # 模组主类(全部逻辑)
└── resources/
└── fabric.mod.json # Fabric 模组元数据
⚠️ 注意事项
服务端 / 客户端
- 本模组为服务端模组,所有消息通过服务端广播,安装在服务端即可对所有玩家生效
- 也可安装在单人游戏(内置服务端)中使用
- 不需要安装在客户端
兼容性
- 仅支持 Minecraft 26.1.x 版本(该版本起移除了代码混淆,使用
net.fabricmc.fabric-loom插件) - 不支持 Forge / NeoForge
- 与其他聊天类模组可能存在消息顺序冲突,一般不影响功能
性能
- 模组本身开销极低,适合大型服务器使用
- 怪物范围检测使用 AABB 碰撞盒查询,已做降频处理
- 所有玩家状态数据在内存中缓存,玩家退出时自动清理
自定义
- 怪物检测范围:修改
ChatNotifierMod.java中的PROXIMITY_RANGE常量(默认 10.0) - 怪物大量阈值:修改
formatMonsterSummary()中的判断(默认 > 15 只显示"居多") - 长时间效果阈值:修改
LONG_EFFECT_THRESHOLD_TICKS(默认 600 tick = 30 秒)
已知限制
- 消息文本目前为硬编码中文,暂不支持多语言切换
- 不支持配置文件,修改参数需重新编译
- 图标文件
assets/chat-notifier/icon.png为可选,未提供时不影响功能
📄 许可证
本项目基于 MIT License 开源协议发布。
你可以自由地使用、复制、修改、合并、发布、分发、再许可和/或销售本软件的副本,但需在所有副本或重要部分中包含上述版权声明和本许可声明。



