Repository navigation
Releases: FPSMasterTeam/FPSMaster-Nova
Release list
Nova 1.0.3-beta.2
feat: promoted and user-pinned servers on vanilla multiplayer (#7)
- feat(multiplayer): promoted servers pinned atop vanilla JoinMultiplayerScreen
- ServerBrowser (version-independent Kotlin): async fetch of GET /api/v1/launcher/servers,
ordering (user-pinned -> promoted -> rest), address dedup, hide/pin decisions - ServerBrowserPrefs: persistent hidden-promoted ids + pinned addresses (fpsmaster/server_browser.json)
- MixinServerSelectionList: swaps the updateOnlineServers data source for the arranged order;
promoted rows are real OnlineServerEntry objects and never enter servers.dat - MixinJoinMultiplayerScreen: async refresh on init, Pin/Unpin button for player servers,
delete on a promoted row hides it locally, edit disabled on promoted rows - MixinServerSelectionListEntry: gold Featured / aqua Pinned row badges
- registered in all six mixin configs; lang entries en_us/zh_cn
Co-authored-by: Gao Yu gaoyu06@users.noreply.github.com
- feat(multiplayer): smoke evidence hooks + protected-entry cast fix
- cast badge coordinates through the public ServerSelectionList.Entry (AbstractSelectionList.Entry
is a protected nested class on 1.21.11+) - Smoke.mixin/feature evidence on screen init, list arrange and badge draw (repo smoke pattern)
Co-authored-by: Gao Yu gaoyu06@users.noreply.github.com
Co-authored-by: Cursor Agent cursoragent@cursor.com
Co-authored-by: Gao Yu gaoyu06@users.noreply.github.com
Nova 1.0.3-beta.1
feat(cosmetics): add custom resource folder
Nova 1.0.2-beta.1
fix(ci): remove retired web UI build steps
Nova 1.0.0-beta.1
fix(ci): repair workflow YAML broken by unindented python heredocs
Co-authored-by: Cursor cursoragent@cursor.com
Nova release-102-515fb5b4
add(dependency): fabric api
Nova nightly-103-515fb5b4
add(dependency): fabric api
Nova release-100-97046d4d
fix(display): item count display on multi version
Nova nightly-101-97046d4d
fix(display): item count display on multi version
Nova release-91-a2d16e3c
refactor(music): 改用 Cadence 库,删除内嵌的 web/music 副本
web/music/ 是 Cadence(github.com/FPSMasterTeam/Cadence)抽出前的原始副本,
抽出后一直没回接,已经落后:缺 JsonNull 安全访问的崩溃修复,也没有 YRC
逐字歌词与 LyricParser。现改为直接依赖 JitPack 上的库并删掉这份副本。
- build: implementation + bundledRuntime 引 com.github.FPSMasterTeam:Cadence:v0.1.1;
bundle 时不带传递依赖——gson 由 MC 提供,kotlin-stdlib 上面已单独 bundle。 - MusicRoutes: import 换到 top.fpsmaster.music.*;MusicCredentialStore 由全局单例
改为注入路径的实例 default("FPSMaster"),落盘路径不变(%APPDATA%/FPSMaster/
music_auth.json);把 Cadence 的 MusicLog SPI 接到 mod 自己的 logger。 - 原 web/music/README.md 里 Nova 侧的接入说明保留为 web/api/MUSIC.md,
协议细节归 Cadence 仓库。
顺带获得逐字歌词能力:网易云歌词请求现在带 yv=-1,Lyric 多出 yrc/lines 字段。
前端走 /api/netease/ 透传代理,不受影响。
已验证 :1.21.11 与 :26.2 两个节点 compileKotlin 通过,:1.21.11:jar 内含 43 个
Cadence class 且未误带 gson。网易云/QQ 的真实联网流程需住宅 IP + 登录态,未验。
Co-Authored-By: Claude noreply@anthropic.com
Nova nightly-92-a2d16e3c
refactor(music): 改用 Cadence 库,删除内嵌的 web/music 副本
web/music/ 是 Cadence(github.com/FPSMasterTeam/Cadence)抽出前的原始副本,
抽出后一直没回接,已经落后:缺 JsonNull 安全访问的崩溃修复,也没有 YRC
逐字歌词与 LyricParser。现改为直接依赖 JitPack 上的库并删掉这份副本。
- build: implementation + bundledRuntime 引 com.github.FPSMasterTeam:Cadence:v0.1.1;
bundle 时不带传递依赖——gson 由 MC 提供,kotlin-stdlib 上面已单独 bundle。 - MusicRoutes: import 换到 top.fpsmaster.music.*;MusicCredentialStore 由全局单例
改为注入路径的实例 default("FPSMaster"),落盘路径不变(%APPDATA%/FPSMaster/
music_auth.json);把 Cadence 的 MusicLog SPI 接到 mod 自己的 logger。 - 原 web/music/README.md 里 Nova 侧的接入说明保留为 web/api/MUSIC.md,
协议细节归 Cadence 仓库。
顺带获得逐字歌词能力:网易云歌词请求现在带 yv=-1,Lyric 多出 yrc/lines 字段。
前端走 /api/netease/ 透传代理,不受影响。
已验证 :1.21.11 与 :26.2 两个节点 compileKotlin 通过,:1.21.11:jar 内含 43 个
Cadence class 且未误带 gson。网易云/QQ 的真实联网流程需住宅 IP + 登录态,未验。
Co-Authored-By: Claude noreply@anthropic.com