创意守卫

创意守卫

一个简单的服务端模组,用于处理删除模组创造模式物品的麻烦,并自动封禁使用这些物品的作弊者。

CreativeGuard

服务端反作弊插件,适用于 Forge 1.20.1。 检测并惩罚携带仅限创造模式物品、非法 NBT 或物品描述/注册 ID 匹配可配置关键词列表的玩家。无需客户端安装——原版和模组客户端均可正常连接。

专为 PvP 和地缘政治服务器设计,在这样的服务器中,一个复制或作弊的物品可能毁掉整个赛季。CreativeGuard 会按可配置的时间间隔以及玩家登录时扫描所有在线玩家,并在首次违规时应用你选择的惩罚。


特性

  • 仅限创造模式物品黑名单 — 命令方块、连锁/循环命令方块、屏障、调试棒、结构方块、结构空位、拼图方块、光源方块、基岩、刷怪笼、知识之书、末地传送门框架、紫晶芽、强化深板岩、土径、耕地(作为物品)、石化橡木台阶等。完全可编辑。
  • 堆叠数量异常物品 — 标记任何堆叠数量超过原版最大堆叠值的物品。
  • 附魔等级异常物品 — 捕捉附魔等级超过最大等级或低于最小等级(如锋利 X、效率 32、负等级等)的物品。
  • 不可能的属性修饰符 — 检查 AttributeModifiers NBT 标签,标记绝对数值超过可配置界限的修饰符。
  • 关键词检测 — 不区分大小写的全词匹配,检测物品描述和注册 ID 中的禁止关键词。默认列表:creative, infinity, admin, debug, op, unbreakable, godmode, cheat, test。
  • 4 种惩罚模式 — 永久封禁(默认)、临时封禁、踢出或静默没收。运行时通过一条命令切换。
  • 豁免设置 — OP 等级阈值和命名白名单,均可游戏内编辑。
  • 轻量级 — 仅约 17 KB 的 jar 文件,无客户端文件,无 mixin,无网络流量。对少量玩家的服务器而言,扫描负载可忽略不计。

安装方法

  1. 在专用服务器上安装 Forge 1.20.1(≥ 47.2.0)。
  2. 将 creativeguard-1.0.0.jar 放入 <服务器目录>/mods/ 文件夹。
  3. 启动服务器一次——这会生成 config/creativeguard-common.toml 文件。
  4. 编辑 TOML 文件(见下文),然后重启服务器。

客户端无需安装此模组。已设置 displayTest="IGNORE_ALL_VERSION",因此原版客户端连接时不会出现“模组不匹配”提示。


配置

文件路径:<服务器目录>/config/creativeguard-common.toml

[general]

键 默认值 描述
punishment_mode "BAN" BAN(永久封禁)、TEMPBAN(临时封禁)、KICK(踢出)或 CONFISCATE(没收)。
temp_ban_minutes 1440 临时封禁模式的持续时间(默认=24 小时)。
ban_reason "使用仅限创造模式或非法物品 (CreativeGuard)" 踢出/封禁时显示的文本。
scan_interval_ticks 40 两次完整扫描之间的时间间隔(游戏刻)。20 刻 = 1 秒。

[exemptions]

键 默认值 描述
op_exempt_level 2 OP 权限等级≥此值的玩家将被跳过检查。设为 -1 可禁用。
exempt_players [] 命名白名单。不区分大小写。

[detection]

键 默认值 描述
item_blacklist (见下文) 被视为仅限创造模式的物品的注册 ID。
name_keywords ["creative","infinity","admin","debug","op","unbreakable","godmode","cheat","test"] 全词匹配、不区分大小写的关键词标记。
keyword_scan_fields ["lore","registry_id"] 扫描的位置。有效值:display_name、lore、registry_id。
check_oversized_stacks true 标记堆叠数量超过原版最大值的物品堆。
check_over_enchanted true 标记附魔等级超出 [最小, 最大] 范围的物品。
check_illegal_attributes true 标记超出范围的 AttributeModifiers。
max_attribute_magnitude 50 修饰符 Amount 的绝对数值上限。

默认黑名单

minecraft:command_block
minecraft:chain_command_block
minecraft:repeating_command_block
minecraft:command_block_minecart
minecraft:jigsaw
minecraft:structure_block
minecraft:structure_void
minecraft:barrier
minecraft:light
minecraft:debug_stick
minecraft:knowledge_book
minecraft:petrified_oak_slab
minecraft:farmland
minecraft:dirt_path
minecraft:budding_amethyst
minecraft:reinforced_deepslate
minecraft:bedrock
minecraft:end_portal_frame
minecraft:spawner
minecraft:nether_portal
minecraft:end_portal
minecraft:end_gateway

示例:为测试之夜切换为仅没收模式

[general]
    punishment_mode = "CONFISCATE"
    scan_interval_ticks = 20

示例:临时封禁一周,并豁免管理团队

[general]
    punishment_mode = "TEMPBAN"
    temp_ban_minutes = 10080

[exemptions]
    op_exempt_level = 3
    exempt_players = ["masn", "Notch", "Admin_Bob"]

示例:严格的关键词策略

[detection]
    name_keywords = ["creative","infinity","admin","debug","op","unbreakable","godmode","cheat","test","dupe","hack","kit","nuke"]
    keyword_scan_fields = ["display_name","lore","registry_id"]

命令

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

命令 效果
/creativeguard scan <玩家名> 手动执行一次扫描。
/creativeguard exempt add <玩家名> 将一个玩家添加到豁免列表。
/creativeguard exempt remove <玩家名> 从豁免列表中移除一个玩家。
/creativeguard exempt list 显示当前的豁免列表。
/creativeguard mode <BAN|TEMPBAN|KICK|CONFISCATE> 即时更改惩罚模式。更改会保存到配置文件中。
/creativeguard reload 提醒:Forge 会在保存 TOML 文件时热重载。

兼容性

  • Minecraft: 1.20.1
  • 加载器: Forge 47.2.0 或更新版本(声明范围 [47,))
  • 物理端: 仅专用服务器。依赖项标记为 side="SERVER"。
  • 客户端: 无需安装。已设置 displayTest="IGNORE_ALL_VERSION"。
  • 其他模组: 不涉及注册表、方块状态或世界数据——应与 1.20.1 生态中的任何模组良好共存。

常见问题

它会封禁使用精准采集获取刷怪笼的玩家吗? 在原版中,刷怪笼无法通过精准采集获取。如果某个模组添加了该功能并且你希望允许这种行为,请从 item_blacklist 中移除 minecraft:spawner。

如果我把我的剑命名为“Creative Fury”会发生什么? 这会被 creative 关键词匹配到。你可以重命名物品、将自己添加到 exempt_players,或精简关键词列表。

它会扫描末影箱/潜影盒吗? 在 1.0.0 版本中不扫描——仅扫描主背包、护甲和副手。计划在后续版本中添加。

我可以禁用某个特定的检查项吗? 可以。每个检查项在 [detection] 下都有一个开关。例如,设置 check_over_enchanted = false 即可跳过附魔等级检查。

我怎么知道模组在运行? 服务器日志会在启动时显示 [CreativeGuard] Initialized.。被标记的玩家还会产生一条日志行,并向在线的 OP 发送广播。


鸣谢

为 Project Atlas 构建。适用于 Forge 1.20.1 的服务端反作弊插件。

许可证:版权所有(如果你想重新许可,请在 gradle.properties 中修改并重新构建)。