From 49c7f577a9a13d85eeb3ec77cb5d72db2987d2cb Mon Sep 17 00:00:00 2001 From: Aireil <33433913+Aireil@users.noreply.github.com> Date: Sat, 19 Dec 2020 18:19:42 +0100 Subject: [PATCH] Add chat text when updating plugins --- Dalamud/Game/ChatHandlers.cs | 14 ++------------ Dalamud/Plugin/PluginInstallerWindow.cs | 2 ++ Dalamud/Plugin/PluginRepository.cs | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Dalamud/Game/ChatHandlers.cs b/Dalamud/Game/ChatHandlers.cs index 78df4ae1f..6614f8d4f 100644 --- a/Dalamud/Game/ChatHandlers.cs +++ b/Dalamud/Game/ChatHandlers.cs @@ -218,19 +218,9 @@ namespace Dalamud.Game { } else { var updatedPlugins = t.Result.UpdatedPlugins; - if (updatedPlugins.Count != 0) { + if (updatedPlugins != null && updatedPlugins.Any()) { if (this.dalamud.Configuration.AutoUpdatePlugins) { - this.dalamud.Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudPluginUpdateSuccessful", "Auto-update:"))); - foreach (var plugin in updatedPlugins) { - if (plugin.WasUpdated) { - this.dalamud.Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudPluginUpdateSuccessful", " 》 {0} updated to v{1}."), plugin.Name, plugin.Version)); - } else { - this.dalamud.Framework.Gui.Chat.PrintChat(new XivChatEntry { - MessageBytes = Encoding.UTF8.GetBytes(string.Format(Loc.Localize("DalamudPluginUpdateFailed", " 》 {0} update to v{1} failed."), plugin.Name, plugin.Version)), - Type = XivChatType.Urgent - }); - } - } + this.dalamud.PluginRepository.PrintUpdatedPlugins(updatedPlugins, Loc.Localize("DalamudPluginAutoUpdate", "Auto-update:")); } else { this.dalamud.Framework.Gui.Chat.PrintChat(new XivChatEntry { MessageBytes = Encoding.UTF8.GetBytes(Loc.Localize("DalamudPluginUpdateRequired", "One or more of your plugins needs to be updated. Please use the /xlplugins command in-game to update them!")), diff --git a/Dalamud/Plugin/PluginInstallerWindow.cs b/Dalamud/Plugin/PluginInstallerWindow.cs index abcea773a..3362d11c7 100644 --- a/Dalamud/Plugin/PluginInstallerWindow.cs +++ b/Dalamud/Plugin/PluginInstallerWindow.cs @@ -201,6 +201,8 @@ namespace Dalamud.Plugin this.errorModalDrawing = this.installStatus == PluginInstallStatus.Fail; this.errorModalOnNextFrame = this.installStatus == PluginInstallStatus.Fail; + + this.dalamud.PluginRepository.PrintUpdatedPlugins(updatedPlugins, Loc.Localize("DalamudPluginUpdates", "Updates:")); }); } } diff --git a/Dalamud/Plugin/PluginRepository.cs b/Dalamud/Plugin/PluginRepository.cs index abad9bb27..26f5435bb 100644 --- a/Dalamud/Plugin/PluginRepository.cs +++ b/Dalamud/Plugin/PluginRepository.cs @@ -8,6 +8,8 @@ using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; +using CheapLoc; +using Dalamud.Game.Chat; using Newtonsoft.Json; using Serilog; @@ -289,6 +291,22 @@ namespace Dalamud.Plugin return (!hasError, updatedList); } + public void PrintUpdatedPlugins(List updatedPlugins, string header) { + if (updatedPlugins != null && updatedPlugins.Any()) { + this.dalamud.Framework.Gui.Chat.Print(header); + foreach (var plugin in updatedPlugins) { + if (plugin.WasUpdated) { + this.dalamud.Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudPluginUpdateSuccessful", " 》 {0} updated to v{1}."), plugin.Name, plugin.Version)); + } else { + this.dalamud.Framework.Gui.Chat.PrintChat(new XivChatEntry { + MessageBytes = Encoding.UTF8.GetBytes(string.Format(Loc.Localize("DalamudPluginUpdateFailed", " 》 {0} update to v{1} failed."), plugin.Name, plugin.Version)), + Type = XivChatType.Urgent + }); + } + } + } + } + public void CleanupPlugins() { try { var pluginsDirectory = new DirectoryInfo(this.pluginDirectory);