• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
资源图标

原创 开源 工具 AntiCrashProtector——解决玩家在传送或移动过程中,由于核心属性异常错误导致的服务端崩溃 1.1.2

完成注册/登录后下载
版权类型
原创
插件中文名称
防玩家属性崩服
插件英文名称
AntiCrashProtector
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
语言支持
中文(简体)
适配版本(Java)
  1. 1.21
[MD] # AntiCrashProtector [1.21.x] **AntiCrashProtector** 是一款专为 Minecraft 服务器设计的轻量级安全防护插件。它能有效拦截非法数据包攻击、修复异常玩家属性、防止由于坐标溢出或非法药水等级导致的服务端崩溃(Crash)。 它主要解决玩家在传送或移动过程中,由于核心属性(坐标、生命值、速度、药水等级等)异常错误导致的服务端崩溃(Crash)或心跳停止(Ticking Exception)问题。 --- ## 🆘 解决以下崩溃/报错 (Crash Keywords) 如果你的后台出现以下报错,本插件可以帮你解决: * `net.minecraft.ReportedException: Ticking player` 或 `Exception ticking world` * `java.lang.NullPointerException` (在 ServerPlayer.doTick 或 ClientboundUpdateAttributesPacket 中触发) * `Cannot invoke "it.unimi.dsi.fastutil.objects.ObjectArrayList.get(int)" because "this.wrapped" is null` * `Failed to handle packet for /xxx.xxx.xxx.xxx:xxxxx` * `Negative index in crash report handler` * `Internal server error` (导致玩家断开连接或服务器关闭) * 由于 `NaN` 坐标、非法属性值、超限药水等级导致的各种主线程挂起。 --- ## ✨ 核心功能 * 🛡️ **全属性扫描**:遍历并检查玩家身上所有 30+ 种属性,发现非法值(NaN/Infinity)或属性丢失立即拦截。 * 🚀 **指令安全拦截**:在执行 `/back`、`/tp`、`/home` 等高风险传送指令前,先进行“全身安检”,确保数据正常后再放行。 * ⚖️ **分级修复机制**:针对不同异常采用不同策略。轻微异常(属性/药水)原地修复,不影响玩家操作;严重异常(坐标损坏)安全传送至出生点。 * ⏲️ **异步负载分摊**:自动监控任务采用分摊 tick 策略,每 tick 仅检查少量玩家,即便百人服也毫无压力。 * 💊 **药水/坐标/载具校准**:自动清理等级异常(如 32767 级)的药水效果,纠正越界坐标,**v1.1.2 新增**载具状态完整性检查。 * 📝 **黑匣子日志记录**:所有的拦截行为与检测细节(包括异常坐标、非法属性值、药水等级等)都会同时同步到控制台及插件专属日志文件。服主只需查看日志即可精准排查问题根源。 * 🌍 **全中文自定义**:支持完整的提示语自定义,包括异常诊断报告与修复建议。 * 🛡️ **Fail-Safe 默认值保底**:**v1.1.2 优化**!采用主流的 Fail-Safe 模式,即使配置文件缺失某项设置,插件也会自动使用安全的默认值继续工作,确保防御永不中断。 --- ## 🎯 适用场景与技术边界 (Scope & Boundaries) 为了确保插件在论坛发布后的口碑,请知悉以下技术说明: 1. **防护重心**:本插件主要针对由“玩家数据(属性、坐标、药水、载具)”异常引发的**主线程挂起或发包 NPE 崩溃**。 2. **非防护范围**:本插件无法解决由插件冲突、模组逻辑错误(如模组实体本身的 Ticking 报错)、内存溢出 (OOM) 或网络攻击 (DDoS) 导致的服务器关闭。 3. **兼容性说明**:支持 1.21.x 及以上版本的 Paper/Purpur/Spigot 服务端。由于高版本属性系统变化较大,建议始终使用最新版插件以获得最佳兼容性。 4. **修复逻辑**:插件遵循“数据安全第一”原则。如果数据无法通过常规手段修复且服主开启了 `kick-if-unrepairable`,插件会踢出该玩家以保护服务端不被该异常数据持续拖垮。 --- ## 🛠️ 管理命令 | 命令 | 描述 | 权限 | | :--- | :--- | :--- | | `/anticrash status` | 查看插件当前的防御状态和检查项 | `anticrash.admin` | | `/anticrash reload` | 重载配置文件 | `anticrash.admin` | | `/anticrash safety` | 一键切换指令拦截功能的开启/关闭 | `anticrash.admin` | | `/anticrash check` | 手动强制触发一次全服玩家深度扫描 | `anticrash.admin` | | `/anticrash repair` | 手动修复自己当前的数据状态 | `anticrash.admin` | --- ## ⚙️ 配置文件 (config.yml) ```yaml # AntiCrashProtector 配置文件 # 版本: 1.1.2 config-version: 1 # 基本设置 enabled: true debug-mode: false # 监控设置 monitoring: enabled: true # 检查项开关 checks: location: true # 坐标有效性 attributes: true # 核心属性(防止NPE崩服的关键) effects: true # 药水效果 inventory: true # 物品栏 vehicle: true # 载具状态 (防止非法实体导致崩溃) # 修复阈值 repair: thresholds: # 坐标范围 coordinate-max: 30000000.0 y-min: -64 y-max: 320 # 属性范围 (健康/速度/攻击力) health-max: 2048.0 health-min: 0.1 speed-max: 1.0 speed-min: 0.0 damage-max: 2048.0 damage-min: 0.0 ``` --- ## 📥 安装说明 1. 将 `AntiCrashProtector-1.1.2.jar` 放入服务器的 `plugins` 文件夹。 2. 重启服务器。 3. 使用 `/anticrash status` 确认所有检查项(生命值、坐标、载具、属性等)已生效。 --- ## 📋 更新日志 - **v1.1.2**: - **黑匣子日志记录**:重构了日志系统,异常检测详情(坐标、属性、药水等)现在会同步输出到控制台与专用日志文件,支持精准排障。 - **Fail-Safe 模式**:回归主流风格,使用默认值保底逻辑替代了繁琐的显式配置检查,代码更稳健,用户配置更自由。 - **属性阈值全开放**:现在生命值、移动速度、攻击伤害的最小/最大阈值均可通过 `config.yml` 自由配置。 - **载具状态监控**:新增非法载具状态检查开关,防止玩家骑乘不存在或损坏的实体导致服务端心跳异常。 - **代码架构优化**:清理了冗余的配置校验代码,提升了指令处理器的运行效率。 - **v1.1.1**: - **全功能热重载**:现在指令名单、冷却时间、监控频率等所有配置均支持 `/anticrash reload` 即时生效。 - **指令防御增强**:新增 `tpaccept`、`tpahere`、`tpyes` 等传送接受指令的自动拦截保护。 - **状态详情升级**:重构了 `/anticrash status` 指令,直观查看拦截器、冷却、延迟等信息。 - **死亡判定修复**:修复了玩家死亡时会被错误识别为异常数据的 Bug。 - **v1.1.0**: - **分级修复系统**:轻度异常原地修复,不再强制传送。 - **配置自动升级**:支持新旧版本配置文件平滑过渡。 --- [/MD]
作者
梦想之都官方
下载
11
查看
183
首次发布
最后更新

评分

0.00 星 0 次评分

梦想之都官方 的其他资源

后退
顶部 底部