Mobs Blocker

Mobs Blocker

Mobs Blocker是一款简单高效的管理员工具,可通过简单命令阻止任何怪物在你的服务器上生成。

管理

Mobs Blocker

为你的服务器提供高级刷怪控制

NeoForge GitHub MCreaHub License

Mobs Blocker 已完全重新架构,为你提供对实体生成的精细控制。可根据特定条件(自然生成、刷怪笼、刷怪蛋)阻止生物,或跨生物类别全局应用规则。

报告 Bug 或建议功能

⚠️ 更新通知:此模组已被重写,目前仅支持 1.2.0 版本。如需 1.1.0 版本,请查看 GitHub 仓库。1.1.0 以下版本将不再获得支持。


🚀 工作原理与核心特性

逻辑系统

Mobs Blocker 会拦截每次实体生成尝试,并按以下特定顺序检查规则:

  1. 特定规则:是否存在针对此确切实体 ID 的规则?(例如:minecraft:zombie)
  2. 预设规则:如果没有,是否存在针对其类别的规则?(例如:monsters)
  3. 全局规则:如果没有,是否设置了全局规则?

核心特性

  • 精细控制:基于生物生成方式进行阻止(自然生成、刷怪笼、刷怪蛋、命令)。
  • 智能预设:将规则应用于整个类别(例如,阻止所有 monsters 或 water_creatures)。
  • 全局设置:立即将规则应用于服务器上的每个实体。
  • 游戏内管理:完整的命令系统,支持自动补全。
  • 零卡顿:使用优化的 HashSet 查找并挂钩 NeoForge 事件,将性能影响降至最低。
  • 仅服务端:客户端无需安装此模组。

📜 规则系统(理解阻止类型)

添加规则时,你需要定义阻止什么。你可以阻止特定来源,或使用“反向模式”来仅允许特定来源。

规则关键字 效果
all 阻止此目标的所有生成。
natural 阻止自然生成(黑暗处、生物群系生成)。
spawner 阻止刷怪笼(地牢、试炼刷怪笼)。
egg 阻止刷怪蛋和发射器。
command 阻止 /summon 或命令方块生成。
!natural 反向:阻止除自然生成外的所有生成方式。
!spawner 反向:阻止除刷怪笼外的所有生成方式。
!command 反向:阻止除命令外的所有生成方式。

💻 命令指南(使用示例)

所有命令都需要 OP 权限等级 4。

1. 特定生物控制(add)

针对单一实体类型。

  • 完全阻止僵尸:
    /spawnblocker add minecraft:zombie all
    
  • 阻止苦力怕自然生成(但允许刷怪笼/刷怪蛋):
    /spawnblocker add minecraft:creeper natural
    
  • 仅允许骷髅从刷怪笼生成(反向模式):
    /spawnblocker add minecraft:skeleton !spawner
    

2. 类别预设(preset)

将规则应用于生物组。 可用类别: monsters、creatures、ambient、water、misc。

  • 阻止所有怪物自然生成:
    /spawnblocker preset monsters natural
    
  • 禁用所有环境生物(蝙蝠等):
    /spawnblocker preset ambient all
    

3. 全局设置(global)

将回退规则应用于整个服务器。

  • 在整个服务器范围内禁用自然生成(冒险模式风格):
    /spawnblocker global natural
    

4. 管理与工具

  • 移除规则:
    /spawnblocker remove minecraft:zombie
    /spawnblocker remove preset monsters
    
  • 列出活动规则:
    /spawnblocker list
    
  • 重新加载配置(从磁盘):
    /spawnblocker reload
    
  • 重置所有内容(清除配置):
    /spawnblocker reset
    

📂 配置文件(手动编辑)

配置会自动保存到 config/spawnblocker.json。如果服务器停止,你可以手动编辑此文件。

spawnblocker.json 示例:

{
  "minecraft:phantom": [
    "all"
  ],
  "preset:monsters": [
    "natural"
  ],
  "minecraft:zombie": [
    "!spawner"
  ],
  "global_settings": [
    "command"
  ]
}