diff --git a/Dalamud/Interface/Internal/Windows/PluginImageCache.cs b/Dalamud/Interface/Internal/Windows/PluginImageCache.cs index bcdf90fe4..766f80b23 100644 --- a/Dalamud/Interface/Internal/Windows/PluginImageCache.cs +++ b/Dalamud/Interface/Internal/Windows/PluginImageCache.cs @@ -11,6 +11,7 @@ using Dalamud.Game; using Dalamud.Networking.Http; using Dalamud.Plugin.Internal; using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Utility; using ImGuiScene; using Serilog; diff --git a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs index 80b4656b0..a37f05b68 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs @@ -24,6 +24,7 @@ using Dalamud.Plugin.Internal; using Dalamud.Plugin.Internal.Exceptions; using Dalamud.Plugin.Internal.Profiles; using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Support; using Dalamud.Utility; using ImGuiNET; @@ -2036,13 +2037,12 @@ internal class PluginInstallerWindow : Window, IDisposable label += Locs.PluginTitleMod_TestingVersion; } - // TODO: check with the repos instead - /* - if (plugin.Manifest.IsAvailableForTesting && configuration.DoPluginTest && testingOptIn == null) + var hasTestingAvailable = this.pluginListAvailable.Any(x => x.InternalName == plugin.InternalName && + x.IsAvailableForTesting); + if (hasTestingAvailable && configuration.DoPluginTest && testingOptIn == null) { label += Locs.PluginTitleMod_TestingAvailable; } - */ // Freshly installed if (showInstalled) @@ -2157,12 +2157,15 @@ internal class PluginInstallerWindow : Window, IDisposable ImGui.SameLine(); ImGui.TextColored(ImGuiColors.DalamudGrey3, downloadText); + var acceptsFeedback = + this.pluginListAvailable.Any(x => x.InternalName == plugin.InternalName && x.AcceptsFeedback); + var isThirdParty = plugin.IsThirdParty; var canFeedback = !isThirdParty && !plugin.IsDev && !plugin.IsOrphaned && plugin.Manifest.DalamudApiLevel == PluginManager.DalamudApiLevel && - // plugin.Manifest.AcceptsFeedback && // TODO: check with the repos + acceptsFeedback && availablePluginUpdate == default; // Installed from diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs index 1b9f065ab..2b58c21cc 100644 --- a/Dalamud/Plugin/DalamudPluginInterface.cs +++ b/Dalamud/Plugin/DalamudPluginInterface.cs @@ -21,6 +21,7 @@ using Dalamud.Interface.Internal; using Dalamud.Interface.Internal.Windows.PluginInstaller; using Dalamud.Plugin.Internal; using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; using Dalamud.Plugin.Ipc.Internal; diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs index a7fec04e1..c98a6bbfc 100644 --- a/Dalamud/Plugin/Internal/PluginManager.cs +++ b/Dalamud/Plugin/Internal/PluginManager.cs @@ -25,6 +25,7 @@ using Dalamud.Networking.Http; using Dalamud.Plugin.Internal.Exceptions; using Dalamud.Plugin.Internal.Profiles; using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Plugin.Ipc.Internal; using Dalamud.Utility; using Dalamud.Utility.Timing; diff --git a/Dalamud/Plugin/Internal/Types/AvailablePluginUpdate.cs b/Dalamud/Plugin/Internal/Types/AvailablePluginUpdate.cs index 13523a379..36823b389 100644 --- a/Dalamud/Plugin/Internal/Types/AvailablePluginUpdate.cs +++ b/Dalamud/Plugin/Internal/Types/AvailablePluginUpdate.cs @@ -1,3 +1,5 @@ +using Dalamud.Plugin.Internal.Types.Manifest; + namespace Dalamud.Plugin.Internal.Types; /// diff --git a/Dalamud/Plugin/Internal/Types/LocalDevPlugin.cs b/Dalamud/Plugin/Internal/Types/LocalDevPlugin.cs index 498bea874..98784ce64 100644 --- a/Dalamud/Plugin/Internal/Types/LocalDevPlugin.cs +++ b/Dalamud/Plugin/Internal/Types/LocalDevPlugin.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Dalamud.Configuration.Internal; using Dalamud.Interface.Internal.Notifications; using Dalamud.Logging.Internal; +using Dalamud.Plugin.Internal.Types.Manifest; namespace Dalamud.Plugin.Internal.Types; diff --git a/Dalamud/Plugin/Internal/Types/LocalPlugin.cs b/Dalamud/Plugin/Internal/Types/LocalPlugin.cs index d4caed0fd..5ad09ebc3 100644 --- a/Dalamud/Plugin/Internal/Types/LocalPlugin.cs +++ b/Dalamud/Plugin/Internal/Types/LocalPlugin.cs @@ -15,6 +15,7 @@ using Dalamud.Logging.Internal; using Dalamud.Plugin.Internal.Exceptions; using Dalamud.Plugin.Internal.Loader; using Dalamud.Plugin.Internal.Profiles; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Utility; namespace Dalamud.Plugin.Internal.Types; diff --git a/Dalamud/Plugin/Internal/Types/ILocalPluginManifest.cs b/Dalamud/Plugin/Internal/Types/Manifest/ILocalPluginManifest.cs similarity index 92% rename from Dalamud/Plugin/Internal/Types/ILocalPluginManifest.cs rename to Dalamud/Plugin/Internal/Types/Manifest/ILocalPluginManifest.cs index bbd40d2dd..97365d1e5 100644 --- a/Dalamud/Plugin/Internal/Types/ILocalPluginManifest.cs +++ b/Dalamud/Plugin/Internal/Types/Manifest/ILocalPluginManifest.cs @@ -1,4 +1,4 @@ -namespace Dalamud.Plugin.Internal.Types; +namespace Dalamud.Plugin.Internal.Types.Manifest; /// /// Public interface for the local plugin manifest. diff --git a/Dalamud/Plugin/Internal/Types/IPluginManifest.cs b/Dalamud/Plugin/Internal/Types/Manifest/IPluginManifest.cs similarity index 98% rename from Dalamud/Plugin/Internal/Types/IPluginManifest.cs rename to Dalamud/Plugin/Internal/Types/Manifest/IPluginManifest.cs index 90f2fb8bd..9e052efad 100644 --- a/Dalamud/Plugin/Internal/Types/IPluginManifest.cs +++ b/Dalamud/Plugin/Internal/Types/Manifest/IPluginManifest.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Dalamud.Plugin.Internal.Types; +namespace Dalamud.Plugin.Internal.Types.Manifest; /// /// Public interface for the base plugin manifest. diff --git a/Dalamud/Plugin/Internal/Types/LocalPluginManifest.cs b/Dalamud/Plugin/Internal/Types/Manifest/LocalPluginManifest.cs similarity index 94% rename from Dalamud/Plugin/Internal/Types/LocalPluginManifest.cs rename to Dalamud/Plugin/Internal/Types/Manifest/LocalPluginManifest.cs index d6f8f99bf..4b4bf5d6e 100644 --- a/Dalamud/Plugin/Internal/Types/LocalPluginManifest.cs +++ b/Dalamud/Plugin/Internal/Types/Manifest/LocalPluginManifest.cs @@ -5,7 +5,7 @@ using Dalamud.Utility; using Newtonsoft.Json; using Serilog; -namespace Dalamud.Plugin.Internal.Types; +namespace Dalamud.Plugin.Internal.Types.Manifest; /// /// Information about a plugin, packaged in a json file with the DLL. This variant includes additional information such as @@ -55,11 +55,6 @@ internal record LocalPluginManifest : PluginManifest, ILocalPluginManifest /// public Version EffectiveVersion => this.Testing && this.TestingAssemblyVersion != null ? this.TestingAssemblyVersion : this.AssemblyVersion; - /// - /// Gets a value indicating whether this plugin is eligible for testing. - /// - public bool IsAvailableForTesting => this.TestingAssemblyVersion != null && this.TestingAssemblyVersion > this.AssemblyVersion; - /// /// Save a plugin manifest to file. /// diff --git a/Dalamud/Plugin/Internal/Types/RemotePluginManifest.cs b/Dalamud/Plugin/Internal/Types/Manifest/RemotePluginManifest.cs similarity index 71% rename from Dalamud/Plugin/Internal/Types/RemotePluginManifest.cs rename to Dalamud/Plugin/Internal/Types/Manifest/RemotePluginManifest.cs index 09084d569..952650c72 100644 --- a/Dalamud/Plugin/Internal/Types/RemotePluginManifest.cs +++ b/Dalamud/Plugin/Internal/Types/Manifest/RemotePluginManifest.cs @@ -1,7 +1,7 @@ using JetBrains.Annotations; using Newtonsoft.Json; -namespace Dalamud.Plugin.Internal.Types; +namespace Dalamud.Plugin.Internal.Types.Manifest; /// /// Information about a plugin, packaged in a json file with the DLL. This variant includes additional information such as @@ -16,4 +16,9 @@ internal record RemotePluginManifest : PluginManifest /// [JsonIgnore] public PluginRepository SourceRepo { get; set; } = null!; + + /// + /// Gets a value indicating whether this plugin is eligible for testing. + /// + public bool IsAvailableForTesting => this.TestingAssemblyVersion != null && this.TestingAssemblyVersion > this.AssemblyVersion; } diff --git a/Dalamud/Plugin/Internal/Types/PluginDef.cs b/Dalamud/Plugin/Internal/Types/PluginDef.cs index c5dbede0d..049e58d7d 100644 --- a/Dalamud/Plugin/Internal/Types/PluginDef.cs +++ b/Dalamud/Plugin/Internal/Types/PluginDef.cs @@ -1,5 +1,7 @@ using System.IO; +using Dalamud.Plugin.Internal.Types.Manifest; + namespace Dalamud.Plugin.Internal.Types; /// diff --git a/Dalamud/Plugin/Internal/Types/PluginManifest.cs b/Dalamud/Plugin/Internal/Types/PluginManifest.cs index effff824a..0b5ec26fc 100644 --- a/Dalamud/Plugin/Internal/Types/PluginManifest.cs +++ b/Dalamud/Plugin/Internal/Types/PluginManifest.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using Dalamud.Game; +using Dalamud.Plugin.Internal.Types.Manifest; using Newtonsoft.Json; namespace Dalamud.Plugin.Internal.Types; diff --git a/Dalamud/Plugin/Internal/Types/PluginRepository.cs b/Dalamud/Plugin/Internal/Types/PluginRepository.cs index b51a3355c..a1097abce 100644 --- a/Dalamud/Plugin/Internal/Types/PluginRepository.cs +++ b/Dalamud/Plugin/Internal/Types/PluginRepository.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using Dalamud.Logging.Internal; using Dalamud.Networking.Http; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Utility; using Newtonsoft.Json; diff --git a/Dalamud/Support/BugBait.cs b/Dalamud/Support/BugBait.cs index da0df6054..22628303e 100644 --- a/Dalamud/Support/BugBait.cs +++ b/Dalamud/Support/BugBait.cs @@ -3,7 +3,7 @@ using System.Text; using System.Threading.Tasks; using Dalamud.Networking.Http; -using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Utility; using Newtonsoft.Json; diff --git a/Dalamud/Support/Troubleshooting.cs b/Dalamud/Support/Troubleshooting.cs index e8cf8d2eb..9893451f4 100644 --- a/Dalamud/Support/Troubleshooting.cs +++ b/Dalamud/Support/Troubleshooting.cs @@ -7,7 +7,7 @@ using Dalamud.Configuration; using Dalamud.Configuration.Internal; using Dalamud.Interface.Internal; using Dalamud.Plugin.Internal; -using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types.Manifest; using Dalamud.Utility; using Newtonsoft.Json; using Serilog;