fix: handle DTR node removals when reloading plugins (fixes #759)

This commit is contained in:
goat 2022-02-14 01:39:25 +01:00
parent aac5cdfef7
commit 5cb693e834
No known key found for this signature in database
GPG key ID: 7773BB5B43BA52E5
2 changed files with 20 additions and 8 deletions

View file

@ -5,7 +5,6 @@ using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net.Http;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
@ -14,6 +13,7 @@ using CheapLoc;
using Dalamud.Configuration;
using Dalamud.Configuration.Internal;
using Dalamud.Game.Gui;
using Dalamud.Game.Gui.Dtr;
using Dalamud.Game.Text;
using Dalamud.Logging.Internal;
using Dalamud.Plugin.Internal.Exceptions;
@ -790,6 +790,10 @@ namespace Dalamud.Plugin.Internal
}
}
// We need to handle removed DTR nodes here, as otherwise, plugins will not be able to re-add their bar entries after updates.
var dtr = Service<DtrBar>.Get();
dtr.HandleRemovedNodes();
try
{
await this.InstallPluginAsync(metadata.UpdateManifest, metadata.UseTesting, PluginLoadReason.Update);