diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs index aac4376ea..6524c90a8 100644 --- a/Dalamud/Plugin/DalamudPluginInterface.cs +++ b/Dalamud/Plugin/DalamudPluginInterface.cs @@ -42,8 +42,8 @@ public sealed class DalamudPluginInterface : IDisposable /// Location of the assembly. /// The reason the plugin was loaded. /// A value indicating whether this is a dev plugin. - /// The repository from which the plugin is installed. - internal DalamudPluginInterface(string pluginName, FileInfo assemblyLocation, PluginLoadReason reason, bool isDev, string sourceRepository) + /// The local manifest for this plugin. + internal DalamudPluginInterface(string pluginName, FileInfo assemblyLocation, PluginLoadReason reason, bool isDev, LocalPluginManifest manifest) { var configuration = Service.Get(); var dataManager = Service.Get(); @@ -56,7 +56,8 @@ public sealed class DalamudPluginInterface : IDisposable this.configs = Service.Get().PluginConfigs; this.Reason = reason; this.IsDev = isDev; - this.SourceRepository = isDev ? LocalPluginManifest.FlagDevPlugin : sourceRepository; + this.SourceRepository = isDev ? LocalPluginManifest.FlagDevPlugin : manifest.InstalledFromUrl; + this.IsTesting = manifest.Testing; this.LoadTime = DateTime.Now; this.LoadTimeUTC = DateTime.UtcNow; @@ -97,7 +98,11 @@ public sealed class DalamudPluginInterface : IDisposable public PluginLoadReason Reason { get; } /// - /// Gets the custom repository from which this plugin is installed, , or . + /// Gets the repository from which this plugin was installed. + /// + /// If a plugin was installed from the official/main repository, this will return the value of + /// . Developer plugins will return the value of + /// . /// public string SourceRepository { get; } @@ -106,6 +111,14 @@ public sealed class DalamudPluginInterface : IDisposable /// public bool IsDev { get; } + /// + /// Gets a value indicating whether this is a testing release of a plugin. + /// + /// + /// Dev plugins have undefined behavior for this value, but can be expected to return false. + /// + public bool IsTesting { get; } + /// /// Gets the time that this plugin was loaded. /// diff --git a/Dalamud/Plugin/Internal/Types/LocalPlugin.cs b/Dalamud/Plugin/Internal/Types/LocalPlugin.cs index b49f5799c..7fae1b079 100644 --- a/Dalamud/Plugin/Internal/Types/LocalPlugin.cs +++ b/Dalamud/Plugin/Internal/Types/LocalPlugin.cs @@ -15,7 +15,6 @@ using Dalamud.Logging.Internal; using Dalamud.Plugin.Internal.Exceptions; using Dalamud.Plugin.Internal.Loader; using Dalamud.Utility; -using Dalamud.Utility.Signatures; namespace Dalamud.Plugin.Internal.Types; @@ -397,11 +396,10 @@ internal class LocalPlugin : IDisposable } // Update the location for the Location and CodeBase patches - PluginManager.PluginLocations[this.pluginType.Assembly.FullName] = - new PluginPatchData(this.DllFile); + PluginManager.PluginLocations[this.pluginType.Assembly.FullName] = new PluginPatchData(this.DllFile); this.DalamudInterface = - new DalamudPluginInterface(this.pluginAssembly.GetName().Name!, this.DllFile, reason, this.IsDev, this.Manifest.InstalledFromUrl); + new DalamudPluginInterface(this.pluginAssembly.GetName().Name!, this.DllFile, reason, this.IsDev, this.Manifest); if (this.Manifest.LoadSync && this.Manifest.LoadRequiredState is 0 or 1) {