模组访问控制

模组访问控制

服务端Minecraft模组,用于控制允许哪些客户端模组。白名单/黑名单/切换策略、必需模组检查、豁免列表、试运行、/mac命令。Forge / Fabric / NeoForge。

Mod Access Control

一个服务端 Minecraft 模组,用于精确控制玩家可以或不可以安装哪些模组。它在 Forge、Fabric 和 NeoForge 上运行方式完全相同,共用同一个配置文件以及同一套 /mac 命令。

注意: 每个客户端也需要安装此模组才能完成握手。未安装该模组的客户端在加入时会被阻止(可通过 requireClientMod 选项禁用此功能)。

功能特性

  • 两阶段握手 – 登录时进行最小模组列表交换,进入世界前进行完整列表验证,并在后台进行定期重新检查。
  • 必需模组检查 – 强制要求存在(presence)、版本范围(version_range)或精确匹配(strict)。
  • 策略系统 – whitelist / blacklist / switch(双模式,带定期重新检查)。
  • 游戏内规则管理 – 通过 /mac 命令(支持 Tab 补全)实时重新加载、保存和编辑白名单/黑名单/必需列表。
  • 清晰的玩家反馈 – 断开连接原因会明确列出哪些必需模组缺失、哪些版本不匹配,以及发现了哪些被禁止/不在列表中的模组。
  • 豁免机制 – 按名称或 UUID 豁免玩家,或豁免所有 OP,跳过所有检查。
  • 试运行模式 – 检测并记录违规而不踢出玩家,以便在正式启用前验证规则。
  • 模组历史记录 – 每个玩家的模组列表会被持久化存储并可供审计,支持 /mac audit 命令和一步操作的 /mac learn 命令。
  • 管理员警报 – 每次阻止时,在线管理员会在聊天、快捷栏收到通知并伴有声音提示,同时支持 /mac status 和 /mac recent 命令查看详情。
  • 稳健的错误处理 – 损坏的配置文件会自动备份并重置;所有操作均包含 try/catch 处理并记录日志。

配置

配置文件位置:<server>/config/mod_access_control.json

主要选项:

  • enabled – 总开关
  • requireClientMod – 是否要求客户端安装模组(默认启用)
  • strictLoader – 是否要求加载器一致(Forge/Fabric/NeoForge)
  • requiredCheckMode – presence / version_range / strict
  • policy.mode – whitelist / blacklist / switch
  • exemptPlayers / exemptOps – 豁免设置
  • dryRun – 试运行模式

命令

/mac 命令包括:status、recent、check、audit、learn、reload、save、recheck、enabled、dryrun、mode、active、exempt、allowedmac、required、whitelist 和 blacklist。

加载器与兼容性

加载器 说明
Forge Forge 52.0.50,已测试版本
Fabric Fabric Loom / Loader 0.19.5 / Fabric API 0.116.x
NeoForge NeoForge 21.1.250 (ModDevGradle)

许可证

GNU GPL-3.0