Skip to content

feat: add achievements plugin friends feature - #304

Merged
RadicalMuffinMan merged 4 commits into
Moonfin-Client:masterfrom
bientavu:feat/add-achievements-friends
Sep 30, 2026
Merged

RadicalMuffinMan merged 4 commits into
Moonfin-Client:masterfrom
bientavu:feat/add-achievements-friends

Conversation

@bientavu

@bientavu bientavu commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Pull Request

Summary

Moonfin-Core adds a Friends button for the Achievement Badges plugin's friends and chat. This adds its setting to the profile, so it syncs across devices like the other nav buttons, and lets an admin set a default.

Needs the matching Moonfin-Core PR : Moonfin-Client/Moonfin-Core#1695

Related Issues

  • Closes #
  • Fixes #
  • Related #

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • API / endpoint change
  • Settings schema change
  • Documentation update
  • Build/CI change
  • Other (describe):

Area

  • Settings sync / profiles
  • Admin defaults / config page
  • Ratings (MDBList / TMDB)
  • Notifications / Push (FCM / relay)
  • Seerr integration
  • Games / Emulators
  • Custom home rows
  • Web Client (Go to Moonfin-Core repo)
  • Other / shared

Changes Made

  • ShowFriendsButton in MoonfinSettingsProfile, next to ShowServerMessagesButton.
  • A Show Friends Button default in the Navigation part of the default user settings, loaded and saved like the others.
  • Jellyfin only.

Client Impact

  • No client changes needed
  • Companion client PR(s) required, linked here: Moonfin-Core, feat/implement-achievments-friends
  • New setting keys added. List each key and confirm it matches the client key exactly, including casing:
    • showFriendsButton: matches SyncedField('showFriendsButton', …) in
      lib/data/services/synced_fields.dart.

Compatibility

  • Change to the settings profile is additive only, no renamed or removed properties
  • New properties use the same type the client sends (a client bool maps to bool?, an int to int?)
  • Migration added for any renamed or removed settings
  • Older clients still work, unknown fields are ignored and no keys were removed

One new bool?, nothing renamed, so no migration. Older clients never send the key.

Testing

  • Built the plugin and deployed to a Jellyfin server
  • Verified against a live client (which one: Moonfin-Core on macOS, Android TV and Android phone)
  • Manual testing completed
  • Not tested (explain why):

Builds with no warnings.

Test Steps

  1. Turn the Friends button off in Moonfin on one device. It turns off on another device signed in to the same account.
  2. Set Show Friends Button to No in the default user settings and apply the defaults. A fresh client starts with the button off.

Screenshots (if applicable)

FireShot Capture 003

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced
  • Any new setting keys match the client-side keys exactly

@github-actions

github-actions Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Build Successful

Both plugins compiled against .NET 8, and both test suites passed.

Property Value
Commit dc5822d
Jellyfin ABI 10.10.0.0
Emby version 2.3.0.0
Workflow Build #448

…le model so both ports keep the same settings keys
@RadicalMuffinMan
RadicalMuffinMan merged commit 09f4c3f into Moonfin-Client:master Sep 30, 2026
1 check passed
@bientavu
bientavu deleted the feat/add-achievements-friends branch September 30, 2026 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants