
创意守卫
一个简单的服务端模组,用于处理删除模组创造模式物品的麻烦,并自动封禁使用这些物品的作弊者。
CreativeGuard
服务端反作弊插件,适用于 Forge 1.20.1。 检测并惩罚携带仅限创造模式物品、非法 NBT 或物品描述/注册 ID 匹配可配置关键词列表的玩家。无需客户端安装——原版和模组客户端均可正常连接。
专为 PvP 和地缘政治服务器设计,在这样的服务器中,一个复制或作弊的物品可能毁掉整个赛季。CreativeGuard 会按可配置的时间间隔以及玩家登录时扫描所有在线玩家,并在首次违规时应用你选择的惩罚。
特性
- 仅限创造模式物品黑名单 — 命令方块、连锁/循环命令方块、屏障、调试棒、结构方块、结构空位、拼图方块、光源方块、基岩、刷怪笼、知识之书、末地传送门框架、紫晶芽、强化深板岩、土径、耕地(作为物品)、石化橡木台阶等。完全可编辑。
- 堆叠数量异常物品 — 标记任何堆叠数量超过原版最大堆叠值的物品。
- 附魔等级异常物品 — 捕捉附魔等级超过最大等级或低于最小等级(如锋利 X、效率 32、负等级等)的物品。
- 不可能的属性修饰符 — 检查
AttributeModifiersNBT 标签,标记绝对数值超过可配置界限的修饰符。 - 关键词检测 — 不区分大小写的全词匹配,检测物品描述和注册 ID 中的禁止关键词。默认列表:
creative, infinity, admin, debug, op, unbreakable, godmode, cheat, test。 - 4 种惩罚模式 — 永久封禁(默认)、临时封禁、踢出或静默没收。运行时通过一条命令切换。
- 豁免设置 — OP 等级阈值和命名白名单,均可游戏内编辑。
- 轻量级 — 仅约 17 KB 的 jar 文件,无客户端文件,无 mixin,无网络流量。对少量玩家的服务器而言,扫描负载可忽略不计。
安装方法
- 在专用服务器上安装 Forge 1.20.1(≥ 47.2.0)。
- 将
creativeguard-1.0.0.jar放入<服务器目录>/mods/文件夹。 - 启动服务器一次——这会生成
config/creativeguard-common.toml文件。 - 编辑 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 中修改并重新构建)。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。