Repository navigation
feat: promoted and user-pinned servers on vanilla multiplayer - #7
Merged
Merged
Conversation
…erScreen - 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>
- 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>
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.
改动范围
JoinMultiplayerScreen:拉取GET /api/v1/launcher/servers作推荐置顶;删除后本地隐藏;用户可置顶自建服。ServerBrowser;推荐ServerData不写入servers.dat。是否可直接上线
否。阻塞:GUI 真机只覆盖 1.21.11;其余五版仅编译 + 注入点核对。须等已锁定的功能级单次验收。
上线前是否需要 review
是。触发:公共多人界面与跨版本 mixin。前置:与 Edge 视觉、backend 文档、官网 UI 一并一次验收,不另开 Nova-only reviewer。
已跑验证
./gradlew :*:classes与:*:build --continue:BUILD SUCCESSFUL真实对象证据
入口为主菜单 Multiplayer →
JoinMultiplayerScreen。持久化fpsmaster/server_browser.json。依赖
不依赖 backend 新字段或其他 PR。无迁移。
回滚
git revert a588d1f e6d2afe;删除fpsmaster/server_browser.json即恢复推荐位,不影响servers.dat。