外观
页面特效
外观
页面特效
本文档列举常见数据包/插件的异常附魔清理配置示例,可直接复制使用。
服务器安装了 nova_structures 数据包,后因平衡性问题移除了其中的自定义附魔定义,但已生成的附魔书仍残留在玩家背包中。这些附魔书:
nova_structures:old_enchantenchantment.nova_structures.old_enchant,但因附魔定义已删除,游戏内显示为空enchant-id-keywords:
- "nova_structures:"
translation-key-keywords:
- "enchantment.nova_structures."
remove-enchanted-book-when-all-bug: true # 全异常时直接删整本
remove-empty-enchanted-book: true # 清理空书
protect-custom-items: true # 保护 GUI 道具
clean-uber-enchant-glint: false # 不涉及 UberEnchant/bugenchanttest,确认: 删除整本书(全为异常附魔) 或 移除异常附魔(保留正常附魔)/bugenchantreload 重载配置/bugenchantscan 手动扫描,观察输出统计服务器安装了 UberEnchant 8.12.10+,但管理员认为 37 个药水效果附魔(失明、中毒、凋零等)过于破坏平衡,希望全部清理。
enchant-id-keywords:
- "uberenchant:" # 通配所有 UberEnchant 附魔
translation-key-keywords: []
remove-enchanted-book-when-all-bug: true
remove-empty-enchanted-book: true
protect-custom-items: true
clean-uber-enchant-glint: true # 清理 UberEnchant 添加的发光/ue give <player> blindness 3 给自己一个带附魔的物品/bugenchanttest,确认: uberenchant:blindness是移除异常附魔/bugenchantscan 清理后,再次执行 /bugenchanttest: GUI 道具保护
如果服务器有使用 UberEnchant PDC 存储"特殊效果"的自定义 GUI 道具(如付费 VIP 专属附魔),使用 uberenchant: 通配会误伤这些道具。
解决方案:
protect-custom-items: true,这些道具通常有 CustomModelData 或 displayName希望保留 UberEnchant 的有益附魔(如 speed、jump),但清理破坏平衡的附魔(如 blindness、poison、wither)。
enchant-id-keywords:
- "uberenchant:blindness"
- "uberenchant:poison"
- "uberenchant:wither"
- "uberenchant:hunger"
- "uberenchant:weakness"
translation-key-keywords: []
clean-uber-enchant-glint: true某玩家通过漏洞获得了带有非法附魔的物品,需要即时清理。但物品可能不在背包中,而在玩家手中或装备栏。
识别问题物品:
/bugenchanttest让玩家手持问题物品执行,获取附魔 ID
添加临时关键词: 编辑 config.yml,将异常附魔的特征加入关键词列表
重载配置:
/bugenchantreload即时清理:
/bugenchantscan让玩家执行扫描,立即清理背包
验证清理结果: 再次 /bugenchanttest 确认物品已无异常附魔
实时清理
即使不执行 /bugenchantscan,定时任务也会在 21 tick(约 1 秒)内自动清理。 /bugenchantscan 仅用于"立即生效"的场景。
服务器使用 Folia(Paper 的多线程分支),需要确认插件兼容性。
[BugEnchantRemover] 检测到服务端类型: Folia | 调度模式: 同步| 特性 | Paper | Folia |
|---|---|---|
| 调度模式 | 异步触发 + 主线程执行 | 同步执行(事件已在区域线程) |
| 性能 | 略高 | 略低(无异步优化) |
| 线程安全 | 主线程安全 | 区域线程安全 |
| 兼容性 | 完整 | 完整(自动适配) |
自动检测原理
插件通过尝试加载 io.papermc.paper.threadedregions.ThreadedRegionizer 类判断是否为 Folia。 该类仅存在于 Folia 服务端,不存在则视为 Paper。
FE_MWSarden 是锐界幻境的违禁物品检测插件(处理结构方块等),BugEnchantRemover 处理异常附魔。两者职责互补,可同时部署。
| 插件 | 处理对象 | 处理方式 |
|---|---|---|
| FE_MWSarden | 违禁物品(结构方块等) | 物品删除 |
| BugEnchantRemover | 异常附魔 | 附魔移除/物品删除 |
两者无冲突,可放心同时使用。
/bugenchanttest 显示"识别为自定义物品: 是",导致物品未被清理 原因:物品触发了 GUI 道具保护条件。
排查步骤:
displayName(自定义显示名)CustomModelDataAttributeModifiers解决方案:
protect-custom-items: false 后 /bugenchantreload原因:
setEnchantmentGlintOverride API 不存在解决方案:
/bugenchanttest 检查是否还有残留 UberEnchant 附魔原因:/bugenchantreload 不会重启定时任务。
解决方案:重启服务器。
排查步骤:
log-keyword-matches: true,/bugenchantreload/bugenchanttest,查看控制台是否输出匹配日志原因:Folia 不支持 runTaskLater,插件改为同步执行(无延迟)。
影响:清理会立即执行,无 1 tick 延迟。功能正常,无副作用。