Repository navigation
fix: 饰品调度重写、配置自动备份回滚、审查问题修复;升级 Prism 0.2.2 / Cadence 0.1.2 - #196
Merged
Merged
Conversation
- 文本框 Ctrl/Cmd+A/C/X/V 映射为编辑键,不再把字母输入进去;补 Home/End 和 Shift 修饰键 - 剪贴板读写接到系统剪贴板(GuiScreen.get/setClipboardString) - ConfigProfilesBridge 改为返回结构化 Result,界面按 ok 着色 - 字体重载后清空 TextFit 测量缓存 - 补齐 Prism 新增的音乐/账号 i18n key(中英) - CI 从源码安装 Cadence 0.1.2;Prism/Cadence 的 ref 先留 TODO,合并后更新
非 2xx 的统一错误信封不再被丢成「HTTP error: 404」,ApiResponse 新增 errorCode, 逻辑判断改认错误码;封禁提示按 ACCOUNT_BANNED 判定。
- 无饰品玩家也写入 5 分钟负缓存,不再每个 tick 重发 resolve - 每秒最多一轮、单请求在途、一批最多 200 个;失败按 5s 起步翻倍退避到 5 分钟 - 换世界后丢弃旧请求的回包;修正「once a second」注释 - 饰品贴图下载失败负缓存 5 分钟,不再每帧重下 - 正版绑定按 Minecraft 会话区分:切换账号自动重新绑定;网络失败退避重试, 令牌无效等永久失败才停止;推送失败按状态码区分不可用/失败
- 配置文件改为临时文件+原子替换,崩溃或断电不再留下半截 JSON - 保存前把被替换的文件滚动备份到 config/backups/<配置>/(带时间戳,保留最近 10 份, 常规保存至少间隔 5 分钟一份;覆盖导入、恢复默认、回滚前强制备份;损坏文件不入备份) - 读取失败不再静默重置:损坏文件改名保留为 .corrupt-<时间>,自动从最近可用备份恢复, 没有备份才重置,并弹通知说明;主菜单等无世界界面也能显示通知 - 配置方案界面新增「备份历史」,可确认后回滚到任一备份 - 导入同名配置时提示覆盖(先备份)/另存为 name (n)/取消;非 JSON 文件拒绝导入 - 文件选择框移到后台线程,不再冻结渲染和网络(背景选择同改) - 拖动滑块时设置值不变就不派发事件;自动保存改为 500ms 去抖,写入的是新值 - 单条快捷键配置损坏只跳过该条,不再中断整个配置加载
存有微软 refreshToken 的账号文件改放到用户级 FPSMaster 目录(与 auth.json 同处, 文件名 edge_accounts.json),首次启动自动迁移并删除游戏目录里的旧文件, 避免玩家打包分享配置目录时泄露令牌。
- 先读环境变量,读不到再读旧的 -Dfpsmaster.auth.token;读完立即清除相关系统属性 - 启动子进程(打开文件夹、ffmpeg)时从环境里去掉该变量,不再传给子进程 - ClientLogger 所有输出经 Redactor 过滤:已读到的 token 精确替换, 另按 JWT、Bearer、-Dfpsmaster.auth.*、*token=、cookie 等形态兜底
- AudioEngine 每次播放一个独立会话:旧线程只认自己的会话,切歌不再两首叠放; 停止时断开旧连接而不是在主线程 join 500ms;下载期间显示「缓冲中」 - MusicBridge 上报 tracksState/playlistsState:请求中 LOADING,成功(含空)READY, 未登录 NEED_LOGIN,其他按 Cadence 的错误类型给出本地化原因;过期回包丢弃 - 平台判定未登录或 getLoginUid 返回 null 时本地切回未登录并清除失效凭证 - 音乐请求改用专用的 2 线程池,不再占共享 async 池 - 封面下载/解码失败负缓存 5 分钟,不再每帧重下;网易云封面按 300px 取图 - 本地音乐目录在后台扫描,只列一次目录建索引找封面 - 界面状态文案改走 i18n(中英)
- shutdown 第一时间保存配置;离线上报改到守护线程最多等 1 秒; 共享线程池关闭只等 2 秒;没用过音乐就不为关闭而初始化 SMTC - 配置/饰品/命令/i18n 初始化各自独立 try,一步失败不再跳过后面几步 - 开发环境探测只做一次,主菜单不再每帧抛 ClassNotFoundException - 删掉 MoreParticles 每次攻击打印的空行
- ReachDisplay 改为数值四舍五入,不再 format 后 parseDouble(德/法/俄/土等系统抛异常) - 模块/设置/模式的 i18n key、通知、HUD 列表、命令提示、os.name 判断统一 Locale.ROOT, 土耳其语系统下 ItemPhysics 等不再变成 ıtemphysics 而丢翻译
- 不再每个方块列拼 state.toString() 作缓存键(大量短命字符串、hash 碰撞取错色) - 颜色缓存改 ConcurrentHashMap;帧缓冲的 put/flip 与上传在同一把锁下, 加载线程不再在渲染线程上传时移动 ByteBuffer 位置 - 帧重建改为原子的 test-and-set;加载线程设为守护线程,异常走 ClientLogger
第 i 级 FBO 改为显示尺寸 >> i,halfpixel 按每级目标尺寸计算,并用线性过滤采样; 原来每级都是全分辨率,Retina/4K 下 HUD 模糊每帧 6 次全屏着色。
- macOS 上窗口尺寸变化后的两帧跳过向默认 framebuffer 的最终 blit (hs_err 显示崩在这一步的 GLRResourceList::addResource);属缓解,未能复现验证 - 登录界面不再每帧调用 Desktop.isDesktopSupported()(会初始化 AWT),改查 headless
本地页的「导入音乐」已经会打开音乐文件夹。
旧文件按游戏目录各存一份,新文件全用户共用一份。此前目标已存在就直接删除旧文件, 多实例下第二个实例的账号与 Microsoft refresh token 会被永久丢弃。现在先读目标, 按 uuid(Microsoft)/名称(离线)去重合并旧账号,保存成功后再删旧文件; 目标或旧文件读不出时保留旧文件不动。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
修复全量审查中的 edge-1~19 和 product-2。
edge-12(MiniMap 许可证风险)只记录、没删功能;edge-13/14 是 macOS 原生崩溃,只做了缓解。
验证:gradlew build 通过,16 个测试类全部通过。没有在游戏里实测。