
蝙蝠移除器
**蝙蝠移除器** 是一个轻量级的Fabric模组,适用于Minecraft 1.20.1(v1.0.1),能够完全从游戏中移除蝙蝠,减少实体卡顿,并消除Minecraft中最烦人的环境生物之一。
蝙蝠移除器 是一个用于 Minecraft 1.20.1 (v1.0.1) 的 Fabric 轻量级实用模组,它能够完全将蝙蝠从游戏中移除,以减少实体卡顿并移除游戏中最恼人的环境生物之一。
核心目的
通过双层方法移除游戏中的所有蝙蝠:
- 预防:从根本上阻止蝙蝠生成
- 清理:定期扫描并移除任何设法生成的蝙蝠
为什么移除蝙蝠?
性能优势
- 减少实体数量:蝙蝠会贡献实体卡顿而不提供任何游戏价值
- 降低 Tick 消耗:环境生物每帧仍会进行 Tick,消耗服务器资源
- 洞穴性能:大型洞穴系统通常会生成数十只蝙蝠,影响 FPS 和 TPS
生活质量提升
- 不再烦人:挖矿时不再有蝙蝠不断飞到你脸上
- 更好的音频:洞穴中不再有烦人的蝙蝠吱吱声
- 更干净的洞穴:没有蝙蝠遮挡视线,能见度提高
兼容性说明
- ❌ 蝙蝠不受实体合并器影响(它们是环境生物,而非动物)
- ✅ 蝙蝠移除器确保它们从一开始就不会存在
工作原理
1. 生成预防(主要方法)
目标:Bat 构造函数
方法:Mixin 注入
- 在构造函数层级拦截蝙蝠的创建
- 立即在服务端调用
bat.discard() - 阻止蝙蝠进入世界
- 零开销——仅在有蝙蝠试图生成时运行
@Inject(method = "<init>", at = @At("RETURN"))
private void onBatConstruct(EntityType<?> entityType, Level level, CallbackInfo ci) {
if (!level.isClientSide) {
Bat bat = (Bat)(Object)this;
bat.discard();
}
}
2. 定期清理(备用方法)
频率:每 100 Tick(5 秒)
方法:ServerTickEvents
- 扫描所有维度中任何幸存的蝙蝠
- 使用
bat.discard()移除它们 - 记录移除了多少只蝙蝠
- 在生成预防失效时的故障保护机制
tickCounter++;
if (tickCounter >= CHECK_INTERVAL) {
tickCounter = 0;
removeBats(server);
}
技术细节
架构
- 基于 Mixin 的预防:构造函数注入确保蝙蝠从未完全初始化
- 基于事件的清理:利用 Fabric API ServerTickEvents 进行定期清扫
- 多维度支持:检查所有已加载的维度(主世界、下界、末地、自定义)
- 安全迭代:使用安全的实体迭代以防止并发修改
性能影响
- 生成预防:零开销(仅在蝙蝠生成尝试时运行)
- 定期清理:极小成本(大型服务器上每 5 秒约 0.1 毫秒)
- 净效果:因实体数量减少而带来正向性能提升
代码结构
com.juliamod.batremover/
├── BatRemover.java # 模组主入口,Tick 事件处理器
└── mixin/
└── BatMixin.java # 用于生成预防的构造函数注入
配置
目前无需配置——蝙蝠直接被消除。
可能的未来配置:
- 启用/禁用生成预防
- 启用/禁用定期清理
- 调整清理间隔
- 切换日志记录
兼容性
需求
- Minecraft 1.20.1
- Fabric Loader 0.16.9+
- Fabric API 0.92.2+
模组兼容性
- ✅ 所有模组:已知无冲突
- ✅ mob-merger:互补(mob-merger 无论如何都无法合并蝙蝠)
- ✅ item-merger:无交互
- ✅ create-optimizer:无交互
- ✅ 生成控制模组:蝙蝠移除器具有优先级
环境
- 服务端:完整功能
- 客户端:有效,但建议服务端安装
- 两者均安装:完全消除蝙蝠的理想方案
安全性与保证
本模组会做到以下事项:
- ✅ 阻止所有蝙蝠生成(自然、刷怪箱、指令、模组生成)
- ✅ 每 5 秒移除现有蝙蝠
- ✅ 在所有维度中生效
- ✅ 记录蝙蝠移除以供监控
本模组不会做到以下事项:
- ❌ 不影响其他环境生物(例如自定义模组生物)
- ❌ 不阻止蝙蝠刷怪箱的存在(仅阻止其生成)
- ❌ 不修改世界生成
- ❌ 不改变洞穴生物群系或光照
已处理的边界情况:
- ✅ 其他模组生成的蝙蝠 → 被移除
- ✅ 通过指令(
/summon)生成的蝙蝠 → 被移除 - ✅ 从刷怪箱生成的蝙蝠 → 被阻止/移除
- ✅ 在未加载区块中的蝙蝠 → 当区块加载时被移除
使用场景
完美适用于:
- 注重性能的服务器:每个实体都很重要
- 洞穴探险:不再有蝙蝠飞到你的脸上
- 在洞穴中建造:没有蝙蝠干扰的更干净工作空间
- 刷怪塔:防止蝙蝠在黑暗区域生成
- 和平建造:移除所有环境干扰
实际场景:
场景 1:大型洞穴系统
- 之前:50-100 只蝙蝠持续生成,FPS 下降 2-3 帧
- 之后:零只蝙蝠,FPS 稳定
场景 2:20+ 名玩家的服务器
- 之前:所有已加载区块中有 500+ 只蝙蝠
- 之后:零只蝙蝠,实体数量减少 10-15%
场景 3:地下基地
- 之前:持续的蝙蝠吱吱声,蝙蝠飞过建筑物
- 之后:安静、平和、无蝙蝠的环境
性能指标
实体数量减少
典型服务器(50+ 个已加载区块):
- 之前:约 200-400 只蝙蝠
- 之后:0 只蝙蝠
- 减少:消除了 200-400 个实体
TPS 影响
- 小型服务器(<10 名玩家):微小但可测量(约 0.1-0.3 TPS)
- 大型服务器(20+ 名玩家):明显改善(约 0.5-1.0 TPS)
- 洞穴密集的世界:影响更大(约 1-2 TPS 提升)
客户端 FPS 影响
- 洞穴系统:平均 +2-5 FPS
- 深层地下:在蝙蝠密集区域 +5-10 FPS
- 地表/建筑区域:无变化(蝙蝠不会在那里生成)
安装
服务端安装(推荐)
- 确保已安装 Fabric Loader 和 Fabric API
- 下载蝙蝠移除器的 .jar 文件
- 将其放入服务器的
mods文件夹 - 重启服务器
- 蝙蝠现已消除!
客户端安装(可选)
- 在客户端安装以用于单人游戏世界
- 安装过程与服务端相同
- 无需服务端安装即可本地运行
从源码构建
./gradlew build
.jar 文件将生成在 build/libs/ 目录下
控制台输出
模组加载时:
[BatRemover] 模组已加载!蝙蝠将被消灭! >#<
清理期间(找到蝙蝠时):
[BatRemover] 消除了 15 只烦人的蝙蝠!
未找到蝙蝠时:
(无输出——静默运行)
已知行为
预期行为:
- ✅ 蝙蝠在生成时立即消失
- ✅ 现有蝙蝠在 5 秒内被移除
- ✅ 洞穴中不再有蝙蝠声音
- ✅ F3 调试屏幕中的实体列表更干净
非 BUG 事项:
- 蝙蝠刷怪箱仍然存在(只是不生成蝙蝠)
/summon bat指令生效但蝙蝠会立即被移除- 蝙蝠刷怪蛋存在但无法生成蝙蝠
- 与蝙蝠相关的进度仍然存在(但无法获得)
未来增强
可能的未来功能:
- 配置文件(启用/禁用,调整间隔)
- 统计数据追踪(总共消除的蝙蝠数量)
- 特定维度切换
- 自定义日志级别
- 与其他生物控制模组的集成
- 用其他东西替换蝙蝠的选项
常见问题解答
问:这会破坏任何游戏机制吗? 答:不会。蝙蝠不提供任何游戏价值(无掉落物、无交互,纯粹的环境生物)。
问:与蝙蝠相关的进度怎么办? 答:它们会保留在游戏中,但由于蝙蝠不存在而无法获得。
问:这个模组在 Modded 维度中有效吗? 答:有效。清理会扫描所有维度,包括 Modded 维度。
问:我还能使用蝙蝠刷怪蛋吗? 答:物品存在,但使用它不会生成蝙蝠(会被立即移除)。
问:如果我又想要蝙蝠了怎么办? 答:只需移除本模组并重启。蝙蝠将恢复正常生成。
问:模组本身的性能影响如何? 答:微乎其微。生成预防零开销,清理每 5 秒以极小成本运行一次。
与替代方案对比
vs. 生成控制模组
- 蝙蝠移除器:轻量、专为蝙蝠设计、保证消除
- 生成模组:配置复杂,可能无法覆盖所有生成方法
vs. 手动击杀
- 蝙蝠移除器:自动、即时、100% 覆盖
- 手动击杀:耗时、不彻底、蝙蝠会重生
vs. 生物容量限制
- 蝙蝠移除器:消除蝙蝠而不影响其他生物
- 生物容量限制:影响所有环境生物,非针对性
许可证
MIT 许可证 - 详见 LICENSE 文件
制作组
由 Julia 制作 因为没人喜欢在挖矿时被蝙蝠糊脸!
支持
报告问题:
- 确认模组版本为 1.0.1+
- 检查 Fabric Loader 和 API 是否为最新
- 用最小模组配置测试以隔离冲突
- 检查服务器日志中的错误信息
已知工作配置:
- ✅ 原版 + Fabric + 蝙蝠移除器
- ✅ 蝙蝠移除器 + 性能模组(Sodium、Lithium 等)
- ✅ 蝙蝠移除器 + Create + 优化套件
- ✅ 含 100+ 个模组的大型整合包
TL;DR:蝙蝠移除器通过构造函数注入和定期清理,完全从 Minecraft 中消除了蝙蝠。零蝙蝠、更好的性能、更干净的洞穴。只需安装并永远忘记蝙蝠! >#<
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。