Null Attribute Remover

一个插件,用于在玩家加入时移除玩家NBT中的空属性。旨在防止特定崩溃!

资源图片
# NullAttributeRemover 一个轻量级的Bukkit/Spigot插件,用于扫描并移除玩家的**损坏**或**无效的属性修改器**,以防止崩溃和不稳定。 最初创建是为了修复已损坏的玩家数据中的`java.lang.NullPointerException`。 ## 🔍 它所做的事情 此插件扫描玩家属性,查找: - ❌ `null`或重复的UUID(甚至跨属性) - ❌ `NaN`或`Infinity`值 - ❌ 无效或缺失的操作 - ❌ `null`、空白或UUID格式的修改器名称 - ❌ 完全损坏的修改器(null条目) 如果发现任何问题,它们将**自动移除**。 扫描可以手动触发,也可以在传送、重生、世界变化等事件时触发。 ## ⚙️ 工作原理 - 检查玩家的所有属性(例如`GENERIC_MAX_HEALTH`) - 检查每个修改器的: - UUID的有效性和唯一性 - 名称的有效性(包括是否看起来像UUID) - 值的合理性(没有`NaN`、`Infinity`或零垃圾) - 操作类型 - 如果任何部分损坏或可疑,则将其移除 - 如果修改器的UUID在多个地方被重复使用,则会移除所有重复项 - 可配置可选日志和消息 ## 🔧 配置 ```yaml # config.yml silent: false # 抑制玩家聊天消息 kickOnFailure: true # 如果无法移除不良修改器,则将玩家踢出 log-to-console: true # 在控制台中显示扫描结果 log-to-file: true # 将扫描日志保存到 plugins/NullAttributeRemover/nar.log logUUIDLikeNames: true # 如果修改器名称看起来像UUID,则发出警告 log-invalid-uuid-names: true # 如果为false,则抑制日志,例如“Skipped bad UUID: armor.boots” debugLogs: true # 启用详细的内部调试日志 ``` ## 📦 命令 | 命令 | 描述 | |--------|-------------| | `/nar scan [player]` | 扫描特定玩家或所有在线玩家 | | `/nar debug ` | 注入损坏的修改器以进行测试 | | `/nar reset ` | 清除所有属性并将它们重置为原版 | > 该插件对所有命令使用 Tab 补全。 ## 🧪 兼容性 - 需要 **Java 17 或更高版本** - 与 **Minecraft 1.17+** 兼容 - 专为 **Paper** 设计,也可能适用于 Spigot 和其分支