蝙蝠移除器

蝙蝠移除器

**蝙蝠移除器** 是一个轻量级的Fabric模组,适用于Minecraft 1.20.1(v1.0.1),能够完全从游戏中移除蝙蝠,减少实体卡顿,并消除Minecraft中最烦人的环境生物之一。

杂项

# 蝙蝠移除器 - 全面总结

蝙蝠移除器 是一个用于 Minecraft 1.20.1 (v1.0.1) 的 Fabric 轻量级实用模组,它能够完全将蝙蝠从游戏中移除,以减少实体卡顿并移除游戏中最恼人的环境生物之一。

核心目的

通过双层方法移除游戏中的所有蝙蝠:

  1. 预防:从根本上阻止蝙蝠生成
  2. 清理:定期扫描并移除任何设法生成的蝙蝠

为什么移除蝙蝠?

性能优势

  • 减少实体数量:蝙蝠会贡献实体卡顿而不提供任何游戏价值
  • 降低 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. 注重性能的服务器:每个实体都很重要
  2. 洞穴探险:不再有蝙蝠飞到你的脸上
  3. 在洞穴中建造:没有蝙蝠干扰的更干净工作空间
  4. 刷怪塔:防止蝙蝠在黑暗区域生成
  5. 和平建造:移除所有环境干扰

实际场景:

场景 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
  • 地表/建筑区域:无变化(蝙蝠不会在那里生成)

安装

服务端安装(推荐)

  1. 确保已安装 Fabric Loader 和 Fabric API
  2. 下载蝙蝠移除器的 .jar 文件
  3. 将其放入服务器的 mods 文件夹
  4. 重启服务器
  5. 蝙蝠现已消除!

客户端安装(可选)

  1. 在客户端安装以用于单人游戏世界
  2. 安装过程与服务端相同
  3. 无需服务端安装即可本地运行

从源码构建

./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 中消除了蝙蝠。零蝙蝠、更好的性能、更干净的洞穴。只需安装并永远忘记蝙蝠! >#<