[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81663":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":13,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":13,"lastSyncTime":36,"discoverSource":37},81663,"OpenFriendMod","zerozshare\u002FOpenFriendMod","zerozshare","Fabric client mod that backports the Minecraft Java Edition Friends List (snapshot 26.2+) to MC 1.16.5 – 1.21.11. Gamertag search, friend requests, in-game Open to Friends, Friends-List-driven Join. 30 builds, no Fabric API dependency.","https:\u002F\u002Fopenfriend.net",null,"Java",50,2,1,3,0,1.43,"Other",false,"main",[22,23,24,25,26,27,28,29,30,31,32],"fabric","fabricmc","fabricmc-mod","friends-list","friendslist","minecraft","minecraft-mod","openfriend","snapshot-26-2","xbox-live","zshare","2026-06-12 02:04:18","# OpenFriend — Minecraft Java Edition Friends List bridge\n\n> ## ⚠️ Unofficial — not affiliated with Microsoft, Mojang, or the Xbox brand\n>\n> OpenFriend is an **independent, community-built** project. It is **not** developed, endorsed, supported, sponsored, certified, or otherwise officially connected to Microsoft Corporation, Mojang AB, Mojang Studios, or the Xbox brand. \"Minecraft\", \"Xbox\", \"Xbox Live\", \"Microsoft\", and \"Mojang\" are trademarks of their respective owners. Use OpenFriend on accounts you control, on servers you operate or have permission to operate on. You assume all risk associated with running this software.\n\n---\n\nOpenFriend backports the **snapshot 26.2 Friends List** (search by gamertag, add \u002F accept \u002F decline, Xbox-Live-driven Join, in-game \"Open to Friends\") to older Minecraft versions on the client side — without touching the vanilla launcher.\n\n| | |\n|---|---|\n| **Mod version** | 1.0.0 |\n| **Supported MC** | 1.16.5 → 1.21.11 (30 Fabric builds — see table below) |\n| **Loader** | Fabric (Forge \u002F NeoForge planned for v1.0.1) |\n| **License** | MIT (see [LICENSE](LICENSE)) |\n| **Issues \u002F feedback** | https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenFriendMC\u002Fissues |\n\n---\n\n## ⚠️ Test coverage disclaimer\n\nOnly a subset of these 30 Fabric builds have been **smoke-tested end-to-end** (sign-in → friend add → Join works in-game). The rest compile and load cleanly, share the same overlay group as a tested representative, and are *expected* to work — but I haven't been able to verify each individually.\n\n**If something is broken on your MC version, please open a GitHub Issue:**\n**https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenFriendMC\u002Fissues**\n\nInclude:\n- Your MC version\n- The full launcher log (especially lines containing `OpenFriend` or `core:`)\n- What you tried to do and what happened\n\nI read every report and turn around fixes quickly.\n\n| Confirmed working in-game | Built but not personally tested |\n|---|---|\n| 1.16.5, 1.20.4, 1.20.6, 1.21.1, 1.21.4, 1.21.6 | everything else (most likely fine — same overlay code) |\n\n---\n\n## Quick start\n\n1. Install **Fabric Loader** (`fabricloader >= 0.16.0`, or `>= 0.11.0` for 1.16.5, `>= 0.12.0` for 1.17.x).\n2. Download the jar matching your MC version from this release.\n3. Drop it into your `mods\u002F` folder.\n4. Launch Minecraft. A **Friends** button appears on the title screen, pause screen, and multiplayer screen.\n5. First launch shows a device-code sign-in screen — visit the URL, enter the code, sign in with the Microsoft account you use for Minecraft.\n6. The OpenFriend overlay lets you search by gamertag, send \u002F accept friend requests, and Join friends who are hosting.\n\nNo Fabric API dependency. The bundled Core binary (Windows \u002F macOS \u002F Linux × amd64 + arm64) auto-extracts to your platform's data directory on first launch.\n\n## Version support matrix\n\n| MC version | Jar | Overlay group | Java floor | Notes |\n|---|---|---|---|---|\n| 1.21.11 | `OpenFriend-fabric-1.21.11.jar` | group-d4 | 21 | new `AbstractButton.renderContents` API; `Identifier` rename |\n| 1.21.10 | `OpenFriend-fabric-1.21.10.jar` | group-d3 | 21 | `KeyEvent` \u002F `CharacterEvent` input |\n| 1.21.9  | `OpenFriend-fabric-1.21.9.jar`  | group-d3 | 21 | |\n| 1.21.8  | `OpenFriend-fabric-1.21.8.jar`  | group-d2 | 21 | `Matrix3x2fStack` poses |\n| 1.21.7  | `OpenFriend-fabric-1.21.7.jar`  | group-d2 | 21 | |\n| 1.21.6  | `OpenFriend-fabric-1.21.6.jar`  | group-d2 | 21 | |\n| 1.21.5  | `OpenFriend-fabric-1.21.5.jar`  | group-d  | 21 | |\n| 1.21.4  | `OpenFriend-fabric-1.21.4.jar`  | group-c  | 21 | |\n| 1.21.3  | `OpenFriend-fabric-1.21.3.jar`  | group-c  | 21 | |\n| 1.21.2  | `OpenFriend-fabric-1.21.2.jar`  | group-c  | 21 | |\n| 1.21.1  | `OpenFriend-fabric-1.21.1.jar`  | group-c2 | 21 | |\n| 1.21    | `OpenFriend-fabric-1.21.jar`    | group-c2 | 21 | |\n| 1.20.6  | `OpenFriend-fabric-1.20.6.jar`  | group-c1c | 21 | |\n| 1.20.5  | `OpenFriend-fabric-1.20.5.jar`  | group-c1c | 21 | |\n| 1.20.4  | `OpenFriend-fabric-1.20.4.jar`  | group-c1b | 17 | **primary tested target** |\n| 1.20.3  | `OpenFriend-fabric-1.20.3.jar`  | group-c1b | 17 | |\n| 1.20.2  | `OpenFriend-fabric-1.20.2.jar`  | group-c1b | 17 | |\n| 1.20.1  | `OpenFriend-fabric-1.20.1.jar`  | group-c1  | 17 | |\n| 1.20    | `OpenFriend-fabric-1.20.jar`    | group-c1  | 17 | |\n| 1.19.4  | `OpenFriend-fabric-1.19.4.jar`  | group-b   | 17 | PoseStack era |\n| 1.19.3  | `OpenFriend-fabric-1.19.3.jar`  | group-b3  | 17 | |\n| 1.19.2  | `OpenFriend-fabric-1.19.2.jar`  | group-b0  | 17 | |\n| 1.19.1  | `OpenFriend-fabric-1.19.1.jar`  | group-b0  | 17 | |\n| 1.19    | `OpenFriend-fabric-1.19.jar`    | group-b0  | 17 | |\n| 1.18.2  | `OpenFriend-fabric-1.18.2.jar`  | group-b1  | 17 | `TextComponent` instead of `Component.literal` |\n| 1.18.1  | `OpenFriend-fabric-1.18.1.jar`  | group-b1  | 17 | |\n| 1.18    | `OpenFriend-fabric-1.18.jar`    | group-b1  | 17 | |\n| 1.17.1  | `OpenFriend-fabric-1.17.1.jar`  | group-a2  | 16 | no `isHoveredOrFocused()` |\n| 1.17    | `OpenFriend-fabric-1.17.jar`    | group-a2  | 16 | |\n| 1.16.5  | `OpenFriend-fabric-1.16.5.jar`  | group-a   | 8  | log4j logger, `ConnectScreen` 3-arg, `TextureManager.bind` |\n\n## Known limitations on legacy versions (1.16.5 – 1.19.x)\n\n- **No real player skin heads** — currently shows a hashed-color placeholder. Skin lookup uses a Mojang API path that we haven't wired up for the PoseStack-era versions yet.\n- **No auto sign-in from the launcher session** — legacy `User.getAccessToken()` returns an old-style Mojang yggdrasil token that doesn't pass MSA → XSTS handshake. Device-code is the working sign-in path; the Core remembers the refresh token, so it's a one-time setup.\n- **Toast click-to-expand only inside the OpenFriend overlay** on 1.16.5 — the global `Screen.mouseClicked` mixin can't bind because 1.16.5's `Screen` doesn't override the method (it's a default interface method on `GuiEventListener`).\n\nAll three planned for v1.0.1.\n\n## Source code\n\nThis release ships only the **1.16.5 source tree** under [`src-1.16.5\u002F`](src-1.16.5\u002F). It's the most complex variant (legacy PoseStack, log4j, public AbstractWidget fields, old `Button` constructor, no `isHoveredOrFocused()` \u002F `Tooltip` \u002F `getProfileId()` \u002F `Component.literal` \u002F `JsonParser.parseString` \u002F `addRenderableWidget`) — so if you're reading the code to understand how the per-version overlays work or to send a fix, this is the most informative starting point.\n\nThe full multi-version build infrastructure (all 30 group overlays, build orchestrator, mixins refmap pipeline) lives in the private development tree. If you need source for a specific newer MC version to fix something, **open an Issue** with which version and what you want to change — I can either share that overlay or fold the fix in directly.\n\nBuild the 1.16.5 source:\n\n```bash\ncd src-1.16.5\n\n# (optional) drop pre-built Core binaries into helper\u002Fsrc\u002Fmain\u002Fresources\u002Fopenfriend\u002F\n# from https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenFriendCore\u002Freleases — needed only to\n# produce a runnable jar; source-only reading doesn't need them.\n\n.\u002Fgradlew :fabric:remapJar\nls fabric\u002Fbuild\u002Flibs\u002F\n```\n\n## Components\n\nOpenFriend is split into independently-shippable pieces, glued by JSON-RPC stdio IPC:\n\n| Component | What it does | Repository |\n|---|---|---|\n| **OpenFriend Mod** *(this)* | Fabric client mod — UI, MC session handoff, in-game \"Open to Friends\", Join | this release |\n| **OpenFriend Core** | Go binary — MSA \u002F Xbox Live auth, Mojang Friends signaling, WebRTC bridge | [zerozshare\u002FOpenFriendCore](https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenFriendCore) |\n| **OpenFriend Bypass** | Paper plugin — optional online-mode bypass for the destination server | [zerozshare\u002FOpenFriendBypass](https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenFriendBypass) |\n| **OpenMix** | Standalone UI toolkit (UButton, UPanel, UScrollPane, UTabBar, UInput, UTheme, UDivider, URenderer, UComponent) extracted from this mod | [zerozshare\u002FOpenMix](https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenMix) |\n\nThe bundled Core binary inside each jar auto-launches on first use and IPCs with the mod via stdin\u002Fstdout JSON-RPC. No extra setup required to *use* the mod.\n\n**OpenMix** is the renderer-agnostic UI layer this mod is built on. It's published as a separate library so other Minecraft mods (and non-Minecraft projects) can reuse it without pulling in the Friends-List bridge. See [zerozshare\u002FOpenMix](https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenMix).\n\n## Roadmap — v1.0.1\n\n- Forge + NeoForge builds (rework `common-mc\u002Fbuild.gradle.kts` for Architectury multiloader)\n- Real player skin heads on 1.16.5 – 1.19.x (Mojang sessionserver fetch + texture cache)\n- Auto sign-in on legacy (extract MSA token via launcher profile, skip device-code when possible)\n- 26.1 \u002F 26.1.1 \u002F 26.1.2 Fabric builds (blocked on Architectury Loom stable supporting Java 25)\n- Toast click on title \u002F pause screen for 1.16.5\n\n26.2+ ships the Friends List natively — OpenFriend is not needed on those versions.\n\n## Feedback\n\nBugs, missing features, version-specific weirdness — please open a GitHub Issue:\n**https:\u002F\u002Fgithub.com\u002Fzerozshare\u002FOpenFriendMC\u002Fissues**\n\nPull requests welcome on the 1.16.5 source tree included in this release.\n\n## License\n\nMIT. See [LICENSE](LICENSE). Third-party trademarks remain the property of their respective owners.\n","OpenFriend 是一个 Fabric 客户端模组，它将 Minecraft Java 版的好友列表（快照 26.2+）功能回溯到 1.16.5 至 1.21.11 版本。核心功能包括玩家标签搜索、好友请求、游戏内“对好友开放”以及基于好友列表的加入游戏。该模组不依赖于 Fabric API，并且支持 Windows、macOS 和 Linux 的 amd64 及 arm64 架构。适用于那些希望在旧版本 Minecraft 中使用现代好友系统功能的玩家和服务器管理员。","2026-06-11 04:05:52","CREATED_QUERY"]