feat: implement IsTestingExclusive

This commit is contained in:
goat 2020-10-02 16:20:48 +02:00
parent 3bd53590f1
commit 74ea78cab1
3 changed files with 15 additions and 4 deletions

View file

@ -33,6 +33,11 @@ namespace Dalamud.Plugin
/// </summary>
public string TestingAssemblyVersion { get; set; }
/// <summary>
/// Defines if the plugin is only available for testing.
/// </summary>
public bool IsTestingExclusive { get; set; }
/// <summary>
/// A description of the plugins functions.
/// </summary>

View file

@ -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();

View file

@ -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);