版权类型 原创 插件中文名称 白桦林的插件报错显示面板 插件英文名称 BirchError 原帖地址 # 支持的核心(服务端) SpigotPaperPurpurLeaves其他核心 语言支持 中文(简体) 适配版本(Java) 26.x1.211.20 [MD] # 🌲 BirchError 错误分析面板 > 专为 Minecraft 1.20.1+ 服主打造的智能错误拦截与溯源工具 告别枯燥的日志滚动!`BirchError` 会在服务器启动时自动注册全局日志监听器,并在 GUI 面板或控制台中实时拦截 `SEVERE` 级别异常。内置智能分析引擎,自动定位报错插件、提取文件路径、诊断错误原因,并给出针对性的修复建议。让新手服主也能像老手一样快速排查故障。 --- ## ✨ 核心特性 | 功能 | 说明 | |:---|:---| | **智能溯源分析** | 自动识别问题插件及 `.jar` 绝对路径,内置 10+ 种常见错误诊断模型(版本不兼容、缺依赖、配置损坏、空指针、内存溢出等)。 | | **独立 GUI 面板** | 深色主题 + 等宽字体 + 中文适配。 | | **一键修复建议** | 不仅告诉你"哪里错了",更提供"怎么修"的具体步骤(如升级 Java、安装前置、修改配置等)。 | | **无头模式兼容** | 自动检测服务器环境,Linux/无桌面环境下自动降级为纯控制台模式,绝不崩溃阻塞。 | --- ## 📦 环境要求 - **服务端**:Paper / Spigot / Purpur / Mohist `1.20.1+` - **Java 版本**:`Java 17` 或更高 - **依赖**:✅ 无(纯 Java 原生实现,无需任何前置插件) --- ## 🚀 安装与使用 1. 将 `BirchError-1.0.0-obf.jar` 放入服务器 `plugins/` 目录。 2. **⚠️ 关键步骤**:为确保插件最先加载并捕获所有错误,请将文件重命名为: ```bash 00_BirchError-obf.jar [I](Bukkit 默认按字母顺序加载插件,00_ 前缀可保证其最早执行 onLoad())[/I] 3. 启动服务器。首次运行会自动在 plugins/BirchError/ 生成 config.yml。 4. 检查控制台是否输出 BirchError ASCII 横幅,并确认独立窗口是否弹出。 ## ⚙️ 配置文件 首次运行后生成 `plugins/BirchError/config.yml`: ```yaml settings: # 是否启用独立 GUI 管理面板 enable-panel: true # 面板窗口标题 panel-title: "BirchError 错误分析面板" # 是否将分析结果同步输出到控制台日志(方便日志归档) mirror-to-console: true # 是否显示详细的错误原因与修复建议 detailed-analysis: true ``` --- ## 📊 运行效果示例 当其他插件发生严重异常时,面板/控制台将输出结构化报告: ```text [14:32:05] ⚠️ 有可能是 MythicLib 出现问题! └ 文件路径: C:\server\plugins\[MM]MythicLib-1.5.jar └ 🔴 错误原因: API 版本不匹配/方法不存在 └ 💡 建议: 插件编译时使用的 API 版本与当前服务端不匹配。请检查插件是否支持当前服务端版本(1.20.1)。 ──────────────────────────────────────────────────────────────── 原始日志: Could not pass event PlayerJoinEvent to MythicLib v1.5 java.lang.NoSuchMethodError: 'void org.bukkit.event.Event.<init>(boolean)' ``` --- ## ❓ 常见问题 (FAQ) | 问题 | 解决方案 | |:---|:---| | **启动后没有弹出窗口?** | 1. 检查 `config.yml` 中 `enable-panel: true`<br>2. 若服务器无桌面环境(Linux 终端),请移除启动参数中的 `-Djava.awt.headless=true`,插件会自动降级为控制台模式。 | | **面板中文显示乱码/错位?** | 已内置字体回退机制。若仍异常,请右键 BAT 窗口 → 属性 → 字体 → 选择 `Consolas` 或 `新宋体`。 | | **为什么显示"未知插件/核心代码"?** | 错误可能来自服务端底层(Paper/NMS)或未规范注册 Logger 的插件。此时请结合"原始日志"堆栈手动排查,或联系对应插件作者。 | | **使用 `/reload` 后插件失效?** | 本插件依赖底层日志流,**不支持热重载**。请使用 `/restart` 或重启服务器以确保拦截器正确注册与清理。 | | **如何查看混淆前的源码报错?** | 构建时会在 `target/mapping.txt` 生成映射表。可使用 ProGuard GUI 或在线工具将混淆后的堆栈还原为原始类名/行号。 | --- 🌲 **BirchError** —— 让每一次报错,都成为排查的起点。 如有功能建议或遇到兼容性问题,欢迎提交 Issue 或 Pull Request! [/MD]