
Bad Wither No Cookie – Minecraft Java Edition 1.12.2–1.21.10+
依赖项: · 加载器:Forge / NeoForge / Fabric / Quilt · Minecraft 版本:1.12.2 – 1.21.10+ · 模组版本:v3.20.4 · 必需的库:Cloth Config API(用于 Fabric)、Fabric…
依赖项: · 加载器:Forge / NeoForge / Fabric / Quilt · Minecraft 版本:1.12.2 – 1.21.10+ · 模组版本:v3.20.4 · 必需的库:Cloth Config API(用于 Fabric)、Fabric API(用于 Fabric) Minecraft 的原版客户端会将某些声音事件广播到整个游戏世界,而不考虑声源与玩家之间的距离。凋灵的生成或死亡、末影龙的死亡以及闪电的
依赖项:
· 加载器:Forge / NeoForge / Fabric / Quilt
· Minecraft 版本:1.12.2 – 1.21.10+
· 模组版本:v3.20.4
· 必需的库:Cloth Config API(用于 Fabric)、Fabric API(用于 Fabric)
Minecraft 的原版客户端会将某些声音事件广播到整个游戏世界,而不考虑声源与玩家之间的距离。凋灵的生成或死亡、末影龙的死亡以及闪电的击落都会伴随响亮的音效,服务器上的所有用户都能听到。这会造成明显的听觉干扰,尤其是在公共服务器以及拥有自动 BOSS 农场的私人技术场地上。模组 Bad Wither No Cookie - Reloaded(BWNCR)通过将全局音频广播本地化,或在客户端引擎层面将其完全静音,从而解决了这一问题。
声音抑制的核心机制
该模组借助 Mixin 工具集嵌入游戏的音频系统。BWNCR 不会尝试在声音进入公共播放队列后再进行过滤,而是在音效播放数据包传递给 SoundManager 之前就直接将其拦截。这可避免多余的声音资源被加载到计算机内存中,并降低音频子系统的负载。
默认情况下,该模组会将关键的全局声音本地化或完全关闭其广播。下表列出了安装模组后将被自动过滤的原版声音事件:
声音事件(Sound Event ID) | 所描述的游戏事件 | 默认处理方式 |
| 凋灵在世界中出现 | 本地化 / 静音 |
| 凋灵被玩家或环境消灭 | 本地化 / 静音 |
| 末影龙的死亡 | 本地化 / 静音 |
| 闪电击落(雷声) | 本地化 / 静音 |
| 流浪商人的背景噪音 | 静音 |
| 羊驼的背景噪音 | 静音 |
本地化意味着声音不再是全局性的。只有当声音事件的来源处于原版声音的标准可听半径内(通常为 16–32 格)时,玩家才会听到凋灵的爆炸声或雷鸣声。如果事件发生在另一个基地或几个区块之外,声音流将被完全阻断。
限制:声音阻断仅在客户端进行。服务器上未安装此模组的其他玩家仍将完整听到全局广播,除非游戏的服务端已配置为通过第三方工具来抑制这些事件。
诊断系统与命令 /bwncr listen
为了实现进阶的声音管理,开发者在模组中集成了诊断命令 /bwncr listen。该命令有助于在游戏过程中直接识别声音的内部名称,从而简化将第三方音效加入黑名单的操作。
诊断模式的工作原理:
1. 玩家在游戏聊天框中输入命令 /bwncr listen。
2. 引擎会激活声音事件拦截器,它开始追踪每一个传到客户端扬声器的音频信号。
3. 当玩家附近播放任何声音时(例如生物的脚步声、开门声、发射器的射击声或其他模组的效果),聊天框中会显示该事件的精确标识符(例如 minecraft:block.wooden_door.use 或 minecraft:entity.zombie.step)。
4. 再次输入命令 /listen 即可关闭诊断模式。
该工具对于配置大型模组整合包至关重要。如果第三方模组添加了嘈杂的机械或怪物,玩家可以借助 /bwncr listen 轻松获取声音的签名,并将其写入配置文件。
模组的配置
配置文件的结构会因 Minecraft 版本和所选加载器的不同而有所差异。该模组支持两种基本的设置文件格式。(参见截图)
现代 TOML 配置(版本 1.18.2 – 1.21.10+)
在较新的游戏版本中,设置保存在文件 bwncr-client.toml(或 bwncr-common.toml)中,该文件位于 .minecraft/config/ 目录下。文件包含以下主要参数:(请看截图!!!)
旧版 CFG 配置(版本 1.12.2 – 1.16.5)
对于较旧的 Forge 版本,设置写入文件 badwithernocookiereloaded.cfg 中。该文件的结构具有经典的 Forge 配置外观:
general { |
编辑配置文件时,需要使用支持 UTF-8 编码的文本编辑器(例如 Notepad++ 或 VS Code)。更改将在重启游戏客户端后生效。若已安装 Cloth Config API,则可以直接在游戏菜单中修改设置,无需手动编辑文件。
架构与性能优化
从版本 1.18.2 起,Bad Wither No Cookie - Reloaded 是一个纯客户端模组。它不会在服务器上执行任何运算,也不需要与已连接的玩家进行同步。
在版本 v3.20.3 中,开发者修复了一个严重的端侧(sidedness)兼容性问题。此前,在专用服务器上初始化模组时可能会调用声音引擎的客户端类,导致游戏服务端突然以 NoClassDefFoundError 错误崩溃。此次更新已将客户端的 Mixin 类与服务端加载器完全隔离。
在 v3.20.4 版本中实现了一项重要优化:引擎会在修改音量之前检查声音的状态。如果声音流已被其他进程或模组的先前指令静音,BWNCR 便不会再次向音频通道内存写入数据。这样可以避免在大量声音信号被同时抑制时,在性能较弱的处理器上出现微卡顿。
结论
对于在自动化程度较高的服务器上花费大量时间的玩家而言,Bad Wither No Cookie - Reloaded 是一款高效的系统工具。它消除了恼人的全局噪音,在无需改动服务器设置的情况下提升了游戏的舒适度。
该模组的主要局限在于完全失去了声音方面的提示线索。玩家不会知道其他玩家的基地遭到攻击,也不会知道暴风雨的来临(如果参数 silenceLightning 已开启),这在 PvP 服务器或 Anarchy 类服务器上可能是致命的。最接近的替代方案是「友好生物」和「天气」类别中的原版音量设置系统,但它无法精确地关闭特定声音(例如关闭羊驼但保留奶牛),也不支持屏蔽来自其他模组的第三方声音,这使得 BWNCR 在大型科技整合包中无可替代。
安装
一次典型安装大约 5 分钟。流程相同,只是 Loader 和对应构建不同。
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











