From b0369effd1285561c0ed4c3bea1cf7ea5ab6a678 Mon Sep 17 00:00:00 2001 From: bientavu Date: Tue, 29 Sep 2026 14:31:41 +0200 Subject: [PATCH 1/3] feat(settings): add friends button --- .../backend/Models/MoonfinSettingsProfile.cs | 14 ++++++++++++ Jellyfin/backend/Pages/configPage.html | 22 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/Jellyfin/backend/Models/MoonfinSettingsProfile.cs b/Jellyfin/backend/Models/MoonfinSettingsProfile.cs index ede82cb..72348c0 100644 --- a/Jellyfin/backend/Models/MoonfinSettingsProfile.cs +++ b/Jellyfin/backend/Models/MoonfinSettingsProfile.cs @@ -917,6 +917,20 @@ public class MoonfinSettingsProfile [JsonPropertyName("showServerMessagesButton")] public bool? ShowServerMessagesButton { get; set; } + /// + /// Friends button for the Achievement Badges plugin. Clients only show it + /// when that plugin has friends turned on. + /// + [JsonPropertyName("showFriendsButton")] + public bool? ShowFriendsButton { get; set; } + + /// + /// Hides chat banners from the Achievement Badges plugin while a video or + /// game plays. Clients default it to on. + /// + [JsonPropertyName("muteChatBannersDuringPlayback")] + public bool? MuteChatBannersDuringPlayback { get; set; } + [JsonPropertyName("diagnosticLoggingEnabled")] public bool? DiagnosticLoggingEnabled { get; set; } diff --git a/Jellyfin/backend/Pages/configPage.html b/Jellyfin/backend/Pages/configPage.html index f69ea19..f03cdad 100644 --- a/Jellyfin/backend/Pages/configPage.html +++ b/Jellyfin/backend/Pages/configPage.html @@ -1567,6 +1567,24 @@

Nav Button +
+ + +
Only shows where the Achievement Badges plugin has friends turned on.
+
+
+ + +
Hides new message banners while a video or game plays. Moonfin turns this on by default.
+
@@ -6060,6 +6078,8 @@

Active Downloads

setNullableBoolSelect('#DefaultShowLiveTvButton', defaults.showLiveTvButton); setNullableBoolSelect('#DefaultShowDownloadsButton', defaults.showDownloadsButton); setNullableBoolSelect('#DefaultShowServerMessagesButton', defaults.showServerMessagesButton); + setNullableBoolSelect('#DefaultShowFriendsButton', defaults.showFriendsButton); + setNullableBoolSelect('#DefaultMuteChatBannersDuringPlayback', defaults.muteChatBannersDuringPlayback); setSelectValue('#DefaultMediaBarSourceType', defaults.mediaBarSourceType, 'Configured source'); loadAdminGenrePicker(defaults.mediaBarExcludedGenres || []); @@ -6861,6 +6881,8 @@

Active Downloads

config.DefaultUserSettings.showLiveTvButton = getNullableBoolSelect('#DefaultShowLiveTvButton'); config.DefaultUserSettings.showDownloadsButton = getNullableBoolSelect('#DefaultShowDownloadsButton'); config.DefaultUserSettings.showServerMessagesButton = getNullableBoolSelect('#DefaultShowServerMessagesButton'); + config.DefaultUserSettings.showFriendsButton = getNullableBoolSelect('#DefaultShowFriendsButton'); + config.DefaultUserSettings.muteChatBannersDuringPlayback = getNullableBoolSelect('#DefaultMuteChatBannersDuringPlayback'); config.DefaultUserSettings.mediaBarSourceType = document.querySelector('#DefaultMediaBarSourceType').value || null; var genreIds = []; From 6e98f647a951b56cba79a928a1880990fa4fb5e5 Mon Sep 17 00:00:00 2001 From: bientavu Date: Tue, 29 Sep 2026 14:52:41 +0200 Subject: [PATCH 2/3] refactor(settings): remove mute chat banners during playback option --- Jellyfin/backend/Models/MoonfinSettingsProfile.cs | 7 ------- Jellyfin/backend/Pages/configPage.html | 11 ----------- 2 files changed, 18 deletions(-) diff --git a/Jellyfin/backend/Models/MoonfinSettingsProfile.cs b/Jellyfin/backend/Models/MoonfinSettingsProfile.cs index 71e4a00..49d954b 100644 --- a/Jellyfin/backend/Models/MoonfinSettingsProfile.cs +++ b/Jellyfin/backend/Models/MoonfinSettingsProfile.cs @@ -931,13 +931,6 @@ public class MoonfinSettingsProfile [JsonPropertyName("showFriendsButton")] public bool? ShowFriendsButton { get; set; } - /// - /// Hides chat banners from the Achievement Badges plugin while a video or - /// game plays. Clients default it to on. - /// - [JsonPropertyName("muteChatBannersDuringPlayback")] - public bool? MuteChatBannersDuringPlayback { get; set; } - [JsonPropertyName("diagnosticLoggingEnabled")] public bool? DiagnosticLoggingEnabled { get; set; } diff --git a/Jellyfin/backend/Pages/configPage.html b/Jellyfin/backend/Pages/configPage.html index 72248dc..8d6f957 100644 --- a/Jellyfin/backend/Pages/configPage.html +++ b/Jellyfin/backend/Pages/configPage.html @@ -1596,15 +1596,6 @@

Nav Button
Only shows where the Achievement Badges plugin has friends turned on.
-
- - -
Hides new message banners while a video or game plays. Moonfin turns this on by default.
-
@@ -6144,7 +6135,6 @@

Active Downloads

setNullableBoolSelect('#DefaultShowDownloadsButton', defaults.showDownloadsButton); setNullableBoolSelect('#DefaultShowServerMessagesButton', defaults.showServerMessagesButton); setNullableBoolSelect('#DefaultShowFriendsButton', defaults.showFriendsButton); - setNullableBoolSelect('#DefaultMuteChatBannersDuringPlayback', defaults.muteChatBannersDuringPlayback); setSelectValue('#DefaultMediaBarSourceType', defaults.mediaBarSourceType, 'Configured source'); loadAdminGenrePicker(defaults.mediaBarExcludedGenres || []); @@ -6949,7 +6939,6 @@

Active Downloads

config.DefaultUserSettings.showDownloadsButton = getNullableBoolSelect('#DefaultShowDownloadsButton'); config.DefaultUserSettings.showServerMessagesButton = getNullableBoolSelect('#DefaultShowServerMessagesButton'); config.DefaultUserSettings.showFriendsButton = getNullableBoolSelect('#DefaultShowFriendsButton'); - config.DefaultUserSettings.muteChatBannersDuringPlayback = getNullableBoolSelect('#DefaultMuteChatBannersDuringPlayback'); config.DefaultUserSettings.mediaBarSourceType = document.querySelector('#DefaultMediaBarSourceType').value || null; var genreIds = []; From dc5822d45f2985080104db2c1ee8c4049e982ab5 Mon Sep 17 00:00:00 2001 From: RadicalMuffinMan <103554043+RadicalMuffinMan@users.noreply.github.com> Date: Tue, 29 Sep 2026 21:12:37 -0400 Subject: [PATCH 3/3] updated #304 to add showFriendsButton to the Emby profile model so both ports keep the same settings keys --- Emby/Emby.Plugins.Moonfin/Models/MoonfinSettingsProfile.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Emby/Emby.Plugins.Moonfin/Models/MoonfinSettingsProfile.cs b/Emby/Emby.Plugins.Moonfin/Models/MoonfinSettingsProfile.cs index 461d265..a1d61e9 100644 --- a/Emby/Emby.Plugins.Moonfin/Models/MoonfinSettingsProfile.cs +++ b/Emby/Emby.Plugins.Moonfin/Models/MoonfinSettingsProfile.cs @@ -325,6 +325,7 @@ public class MoonfinSettingsProfile [JsonPropertyName("showLiveTvButton")] public bool? ShowLiveTvButton { get; set; } [JsonPropertyName("showDownloadsButton")] public bool? ShowDownloadsButton { get; set; } [JsonPropertyName("showServerMessagesButton")] public bool? ShowServerMessagesButton { get; set; } + [JsonPropertyName("showFriendsButton")] public bool? ShowFriendsButton { get; set; } [JsonPropertyName("crashReportsEnabled")] public bool? CrashReportsEnabled { get; set; } [JsonPropertyName("diagnosticLoggingEnabled")] public bool? DiagnosticLoggingEnabled { get; set; } [JsonPropertyName("updateNotificationsEnabled")] public bool? UpdateNotificationsEnabled { get; set; }