diff --git a/Dalamud/Game/ChatHandlers.cs b/Dalamud/Game/ChatHandlers.cs index c6de6ec7e..101cc5779 100644 --- a/Dalamud/Game/ChatHandlers.cs +++ b/Dalamud/Game/ChatHandlers.cs @@ -224,19 +224,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 = new SeString(new List() { diff --git a/Dalamud/Plugin/PluginInstallerWindow.cs b/Dalamud/Plugin/PluginInstallerWindow.cs index 6bc062ef6..50c34802d 100644 --- a/Dalamud/Plugin/PluginInstallerWindow.cs +++ b/Dalamud/Plugin/PluginInstallerWindow.cs @@ -202,6 +202,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);