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)
{