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

Python ✨LumenBridge——基于Endstone的群服互通插件!支持QQ官bot!🎉 1.0.3

请登录后获取
[MD]# 更新日志 ## [1.0.3] - 2026-08-21 ### 新增 - LumenBridge 框架本体在线更新:从市场检查新版本 → 下载并 SHA-256 校验后暂存(幂等,已暂存不重复下载)→ 热重载生效。热重载走 Endstone 官方 `Server.reload()`(与 `/reload` 命令同一实现);旧版 Endstone 无该绑定时自动回退派发 `reload` 命令 - `/lumen update framework [-y]` 命令(两步确认):不带 `-y` 只检查新版本并下载校验暂存(不更新);带 `-y` 才执行更新并热重载。热重载会重载服务器内**全部**插件(等同 `/reload`),故 `updates.auto_update` 对框架本体只通知不自动更新,必须由管理员经命令或 WebUI 确认弹窗手动确认(弹窗明确提示将重载所有插件、面板短暂下线后自动恢复) - 热重载失败自动回滚:移除失败的新 wheel → 放回备份旧 wheel → 再次触发 reload 恢复旧版本运行 - 三语言(zh_CN / zh_TW / en)框架更新命令与 WebUI 确认弹窗文案 - 子插件强制依赖(`requires`):`lumen.json` 新增 `requires` 字段,可声明对其它子插件与 Endstone 插件的强制依赖(支持 `>= <= > < == !=` 六种版本约束,比较符与版本号成对出现)。加载时按依赖拓扑排序(被依赖者先加载,循环依赖按原顺序各自报错)并强制检查:Endstone 插件依赖缺失时报错提示用户先安装并启用;子插件依赖缺失时在市场安装/升级/「补装依赖」时自动从市场按 `manifest_name` 精确匹配补装(像 pip 依赖一样递归安装,带循环依赖检测与版本约束选择,市场中找不到时提示手动安装) - 卸载/禁用子插件前的反向依赖预检:其它子插件依赖目标插件时列出依赖方并警告 - 插件市场端配套(需同步更新市场 PHP 程序):上传 ZIP 时校验 `requires` 格式(非法声明拒绝发布)并按版本存储;插件列表 API 新增 `manifest_name` 精确搜索参数;公开 API 在插件列表/详情/版本接口输出 `manifest_name` 与 `requires`;社区页插件详情与后台审核视图展示依赖信息 - `/lumen update <子插件名>` 命令:更新指定子插件到最新版 - `/lumen update -A|--all` 命令:一键更新全部有新版本的市场子插件(单个失败不阻断其余,结果逐个回显) - WebUI「检查插件更新」升级:发现新版本时弹出「可更新的子插件」卡片列表(支持选择目标版本单独更新,仅可更新到更高版本),底部支持一键更新全部;均为最新版时弹窗提示 - 子插件更新相关三语言(zh_CN / zh_TW / en)文案与命令权限配置项(`commands.update.allow_player`) - WebUI 慢速读取(Slowloris)防护:请求体读取按 16KB/s 最低速率设置总超时,杜绝慢速滴漏攻击占满连接线程 ### WebUI 优化 - 子插件卡片新增「插件依赖」徽章与「插件依赖缺失」红色标识,缺失时提供一键「补装依赖」入口(子插件依赖自动从市场安装,Endstone 插件依赖提示手动安装) - 插件市场详情页版本列表展示「子插件依赖 / Endstone 插件依赖」 - 横屏(电脑端)子插件页面卡片改为两列并排,窄屏保持单列 - 子插件卡片大小严格一致:列轨道改用 `minmax(0, 1fr)` 切断长描述/长名称对列宽的影响,描述固定两行占位、标题行单行省略号截断,全部卡片等宽等高(名称截断后悬停可看全名) - 插件市场图标修复为固定正方形(原先被拉伸为长方形) - 「已是最新版」弹窗按钮移至右侧 ### 修复 - 子插件升级数据丢失:改为递归备份全部非代码文件(原仅备份顶层白名单后缀文件) - 市场清单检查时间改为原子写入,进程中断不再留下不完整文件 - 市场端依赖字段类型异常不再中断整个更新检查流程 - `/lumen pip`、`/lumen update` 命令在实例未完成初始化时崩溃:新增安全日志访问器逐级回退(tee logger → logger → 模块级 logger),后台线程日志不再丢失 - WebUI 安装端点(上传/链接安装)未持主线程操作锁可并发执行:补锁后冲突请求返回 409,防止并发主线程操作 - pip 卸载同步阻塞 WebUI 线程最长 60 秒:移入后台任务队列与进度跟踪(与安装一致) - QQ 官方适配器事件在 WebSocket 线程内同步处理导致心跳停跳:新增独立派发队列与工作线程(与 WS 适配器同构),消除重连风暴 - WebSocket 派发线程退出泄漏:补双退出条件(哨兵值 + 运行标志),队列满丢哨兵时线程仍可退出 - 白名单文件损坏时被直接覆写丢失全部绑定:覆盖前自动备份 `.corrupt` 文件 - 子插件 ZIP 安装包解压无限制(ZIP 炸弹):新增条目数 / 单文件大小 / 总解压大小三级限额 - 子插件依赖版本约束解析失败:`~=` 兼容版本比较与通配符匹配按 PEP 440 实现 - 后台线程(pip 安装/卸载、市场更新)直接调用原始 logger 在 Windows 下与控制台输入线程竞争导致服务端崩溃:统一改用线程安全 tee logger ### 日志 - QQ 官方机器人「连接成功,群服互通已就绪」「会话已恢复(Resume 补投完成)」纳入后台静默日志开关(`suppress_connection_log`,默认开启):连接/重连不再刷屏,排障时可在连接管理卡片关闭开关查看全部日志;WS/AstrBot 适配器行为不变 [/MD]
[MD]# 更新日志 ## [1.0.2] - 2026-08-20 ### 新增 - QQ 官方群聊 @ 提及恢复正常显示(适配官方新格式,旧格式弃用不受影响) - 存储目录化:适配器配置拆分到 `connections/` 分文件存储,运行数据统一迁入 `data/` 目录 ### WebUI 优化 - 插件市场卡片:图标居左、文字并排,按钮移至右下角,布局更紧凑 - 子插件卡片:操作按钮收进「⋯ 更多」菜单,消除按钮堆砌;描述超长时折叠,卡片大小统一 - 更新流程:单一更新按钮,可选市场更新(支持选择历史版本)或手动更新;已是最新版时弹出美化提示 - 安装/更新进度弹窗现在包含依赖安装的进度与日志 ### 修复 - `/lumen pip install` 命令无法使用 - 关闭 WebUI 后 `/lumen reload` 不生效,且会覆写用户配置 - 手改 config.json 出错时被默认配置覆写(现自动备份损坏文件) - 适配器名超长、旧配置迁移后静默断连、损坏 lumen.json 阻断加载等问题 - 反向 WebSocket 多客户端在线状态不对称、事件误判重复丢弃 - 群聊广播单个目标失败中断整轮发送、消息超长截断协议错误 - 跨线程日志丢失、pip 安装失败无提示等运维问题 - 连接日志开关(`suppress_connection_log`)语义明确化,默认静默[/MD]
[MD]# LumenBridge 更新日志 ## v1.0.1 **发布日期:** 2026-08-18 ### Bug 修复 - **修复插件市场封面图加载失败** 市场卡片左侧封面图无法加载的问题,原因是封面 URL 校验函数导入失败导致所有封面请求抛 `ImportError`。已移除该校验,依赖项目现有内网部署策略。 - **修复 `MarketplaceError` 构造异常** 路由回退信号 `_RouteNotFoundError` 继承 `MarketplaceError` 时未传递 `message` 参数,导致部分 404 场景抛出 `TypeError`。已为子类添加无参构造函数。 - **修复框架更新按钮样式异常** 总览界面"框架更新"按钮多余的向上箭头图标已移除。 ### 新功能 - **框架热重载** 框架 wheel 更新安装后自动清除 Endstone 模块缓存并重载,无需手动重启服务端即可生效。基于 Endstone `_invalidate_caches` 机制实现。 - **点赞 / 举报完全匿名化** 引入市场匿名会话管理,通过访问市场页面获取匿名 Cookie 与 CSRF Token 完成点赞和举报操作。`webui_report_api_key` 配置项已删除,不再需要填写任何密钥。 - **任务进度弹窗** 安装 pip 依赖、安装 / 更新子插件、应用框架更新等长耗时操作现在会在 WebUI 弹出实时日志面板和进度条(仿 AstrBot 风格)。包含: - 实时滚动日志输出 - 0–100% 进度条与状态标签 - 完成 / 失败 / 热重载中状态徽章 - 三语国际化文案(zh_CN / zh_TW / en) ### 改进 - **国际化文案完善** `task_log_modal` 与 `task_log` 相关键已补齐到全部三种语言包。 - **第三方子插件兼容性** 修复 `picture_rank` 子插件 `NameError: name '_fmt_money' is not defined` —— 嵌套函数内静态方法调用需带 `self.` 前缀。 ### 破坏性变更 - 配置项 `report_api_key` 已移除,升级后旧配置值会被自动忽略。建议在 WebUI 配置页保存一次以清理残留键。 ### 升级方法 1.下载"endstone_lumenbridge-1.0.1-py3-none-any.whl" 放入plugins文件夹,并删除旧版本,在服务器后台执行reload或者重启Endstone 2. 进入 WebUI 保存一次配置以清理已移除的 `report_api_key` 键[/MD]
后退
顶部 底部