A Minecraft Fabric mod that connects the game with ATProtocol ⛏️
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: update README for current feature set

Reflect completed features: OAuth, stat syncing, achievement syncing,
session tracking, server status, sync consent controls. Update roadmap.

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta Code <noreply@letta.com>

+38 -9
+38 -9
README.md
··· 4 4 5 5 ## Project Status 6 6 7 - **This project is in active development and is NOT ready for production use.** Identity linking and authentication are now fully implemented with enterprise-grade security features. Stat syncing and other data collection features are planned but not yet implemented. 7 + **This project is in active development and is NOT ready for production use.** 8 + 9 + Core features are now implemented: 10 + - ✅ Identity linking and authentication (OAuth + app passwords) 11 + - ✅ Stat syncing to AT Protocol 12 + - ✅ Achievement syncing 13 + - ✅ Play session tracking 14 + - ✅ Server status snapshots 15 + - ✅ Sync consent controls 16 + - ✅ Enterprise-grade security (encryption, rate limiting, audit logging) 8 17 9 18 ## Affiliation & Hosting 10 19 ··· 29 38 **Basic Commands:** 30 39 31 40 * **`/atproto link <handle or DID>`** - Link your Minecraft UUID to your AT Protocol identity (no login required) 32 - * **`/atproto login <handle> <app-password>`** - Authenticate to enable data syncing 41 + * **`/atproto login <handle> <app-password>`** - Authenticate with app password (fallback method) 33 42 * **`/atproto logout`** - Remove authentication (keeps identity link) 34 43 * **`/atproto unlink`** - Remove identity link and authentication 35 44 * **`/atproto whoami`** - View your linked identity and auth status 36 45 * **`/atproto status`** - Quick status check 37 46 * **`/atproto whois <player or handle>`** - Look up another player's identity 47 + * **`/atproto sync`** - View your sync consent settings 48 + * **`/atproto sync stats <on|off>`** - Control whether your stats are synced 49 + * **`/atproto sync sessions <on|off>`** - Control whether your sessions are synced 38 50 39 51 **Example Workflow:** 40 52 ··· 82 94 ### Key Features 83 95 84 96 * **Slingshot Integration**: Uses [Slingshot by Microcosm](https://slingshot.microcosm.blue) for fast, cached PDS resolution 85 - * **App Password Support**: Secure authentication using AT Protocol app passwords (never use your main password!) 97 + * **OAuth Support**: Browser-based authentication with DPoP and PKCE (recommended method) 98 + * **App Password Fallback**: Secure authentication using AT Protocol app passwords 86 99 * **Automatic Token Refresh**: Access tokens are automatically refreshed before expiration 87 100 * **Multi-PDS Support**: Works with any AT Protocol PDS, not just Bluesky 88 101 * **Persistent Sessions**: Authentication survives server restarts 89 102 * **Encrypted Storage**: Session data protected with AES-256-GCM encryption 103 + 104 + ### Data Syncing 105 + 106 + The mod automatically syncs Minecraft data to AT Protocol: 107 + 108 + * **Player Stats**: Periodic snapshots of player statistics (kills, blocks mined, playtime, etc.) 109 + * **Achievements**: Records when players earn Minecraft advancements 110 + * **Play Sessions**: Tracks when players join and leave servers 111 + * **Server Status**: Periodic server information snapshots (online players, MOTD, etc.) 112 + 113 + All data syncing respects **sync consent** — players control whether their data is written to AT Protocol. Note that AT Protocol data is **always public** by design, so the sync consent controls whether data is written at all, not who can see it. 114 + 115 + Use `/atproto sync` to view and change your sync consent settings. 90 116 91 117 ### Getting an App Password 92 118 ··· 320 346 * [x] Build session management with automatic token refresh 321 347 * [x] Add encryption for session storage 322 348 * [x] Implement rate limiting and security auditing 323 - * [ ] Build data collection hooks for player statistics 324 - * [ ] Implement authenticated record creation (writing stats) 325 - * [ ] Add automatic stat syncing at configurable intervals 326 - * [ ] Add privacy controls and data filtering options 349 + * [x] Build data collection hooks for player statistics 350 + * [x] Implement authenticated record creation (writing stats) 351 + * [x] Add automatic stat syncing at configurable intervals 352 + * [x] Add sync consent controls (stats/sessions) 353 + * [x] Implement OAuth browser flow for better UX 354 + * [x] Add DPoP support 355 + * [x] Implement achievement syncing 356 + * [x] Implement play session tracking 357 + * [x] Implement server status snapshots 327 358 * [ ] Create example AppView for displaying Minecraft data 328 - * [ ] Implement OAuth browser flow for better UX 329 - * [ ] Add DPoP support 330 359 * [ ] Write comprehensive documentation 331 360 * [ ] Add automated tests 332 361 * [ ] Publish to Modrinth/CurseForge