From 74ea78cab1cde091edb1c1ad398638c8341e926c Mon Sep 17 00:00:00 2001
From: goat <16760685+goaaats@users.noreply.github.com>
Date: Fri, 2 Oct 2020 16:20:48 +0200
Subject: [PATCH] feat: implement IsTestingExclusive
---
Dalamud/Plugin/PluginDefinition.cs | 5 +++++
Dalamud/Plugin/PluginInstallerWindow.cs | 10 ++++++++--
Dalamud/Plugin/PluginRepository.cs | 4 ++--
3 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/Dalamud/Plugin/PluginDefinition.cs b/Dalamud/Plugin/PluginDefinition.cs
index 74737e097..8d876ab06 100644
--- a/Dalamud/Plugin/PluginDefinition.cs
+++ b/Dalamud/Plugin/PluginDefinition.cs
@@ -33,6 +33,11 @@ namespace Dalamud.Plugin
///
public string TestingAssemblyVersion { get; set; }
+ ///
+ /// Defines if the plugin is only available for testing.
+ ///
+ public bool IsTestingExclusive { get; set; }
+
///
/// A description of the plugins functions.
///
diff --git a/Dalamud/Plugin/PluginInstallerWindow.cs b/Dalamud/Plugin/PluginInstallerWindow.cs
index 196619996..4b2e0a237 100644
--- a/Dalamud/Plugin/PluginInstallerWindow.cs
+++ b/Dalamud/Plugin/PluginInstallerWindow.cs
@@ -100,8 +100,6 @@ namespace Dalamud.Plugin
didAnyWithSearch = true;
- ImGui.PushID(pluginDefinition.InternalName + pluginDefinition.AssemblyVersion);
-
var isInstalled = this.dalamud.PluginManager.Plugins.Where(x => x.Definition != null).Any(
x => x.Definition.InternalName == pluginDefinition.InternalName);
@@ -120,8 +118,16 @@ namespace Dalamud.Plugin
if (Version.TryParse(pluginDefinition.AssemblyVersion, out var assemblyVersion) && Version.TryParse(pluginDefinition.TestingAssemblyVersion, out var testingAssemblyVersion))
isTestingAvailable = this.dalamud.Configuration.DoPluginTest && testingAssemblyVersion > assemblyVersion;
+ if (this.dalamud.Configuration.DoPluginTest && pluginDefinition.IsTestingExclusive) {
+ isTestingAvailable = true;
+ } else {
+ continue;
+ }
+
label += isTestingAvailable ? " (Testing version)" : string.Empty;
+ ImGui.PushID(pluginDefinition.InternalName + pluginDefinition.AssemblyVersion);
+
if (ImGui.CollapsingHeader(pluginDefinition.Name + label + "###Header" + pluginDefinition.InternalName)) {
ImGui.Indent();
diff --git a/Dalamud/Plugin/PluginRepository.cs b/Dalamud/Plugin/PluginRepository.cs
index 9ab463d69..0202411a7 100644
--- a/Dalamud/Plugin/PluginRepository.cs
+++ b/Dalamud/Plugin/PluginRepository.cs
@@ -97,10 +97,10 @@ namespace Dalamud.Plugin
using var client = new WebClient();
- var doTestingDownload = fromTesting && Version.Parse(definition.TestingAssemblyVersion) > Version.Parse(definition.AssemblyVersion);
+ var doTestingDownload = fromTesting && Version.Parse(definition.TestingAssemblyVersion) > Version.Parse(definition.AssemblyVersion) || fromTesting && definition.IsTestingExclusive;
var url = string.Format(PluginFunctionBaseUrl, definition.InternalName, isUpdate, doTestingDownload);
- Log.Information("Downloading plugin to {0} from {1} doTestingDownload: {2}", path, url, doTestingDownload);
+ Log.Information("Downloading plugin to {0} from {1} doTestingDownload: {2} isTestingExclusive:", path, url, doTestingDownload, definition.IsTestingExclusive);
client.DownloadFile(url, path);