mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-02-24 05:31:51 +01:00
Added label and warning on dev plugins + made PluginLoadReason a mask
This commit is contained in:
parent
0197733fdb
commit
bbcab82961
4 changed files with 50 additions and 24 deletions
|
|
@ -99,9 +99,16 @@ namespace Dalamud.Plugin
|
|||
}
|
||||
|
||||
didAnyWithSearch = true;
|
||||
|
||||
var isInstalled = this.dalamud.PluginManager.Plugins.Where(x => x.Definition != null).Any(
|
||||
var installedPlugin = this.dalamud.PluginManager.Plugins.Where(x => x.Definition != null).FirstOrDefault(
|
||||
x => x.Definition.InternalName == pluginDefinition.InternalName);
|
||||
var isInstalled = installedPlugin.Definition != null;
|
||||
|
||||
var isRaw = false;
|
||||
if (isInstalled) {
|
||||
if (installedPlugin.PluginInterface.Reason.HasFlag(PluginLoadReason.Dev)) {
|
||||
isRaw = true;
|
||||
}
|
||||
}
|
||||
|
||||
var label = isInstalled ? Loc.Localize("InstallerInstalled", " (installed)") : string.Empty;
|
||||
label = this.updatedPlugins != null &&
|
||||
|
|
@ -114,6 +121,8 @@ namespace Dalamud.Plugin
|
|||
? Loc.Localize("InstallerUpdateFailed", " (update failed)")
|
||||
: label;
|
||||
|
||||
label = isRaw ? " (dev)" : label;
|
||||
|
||||
var isTestingAvailable = false;
|
||||
if (Version.TryParse(pluginDefinition.AssemblyVersion, out var assemblyVersion) && Version.TryParse(pluginDefinition.TestingAssemblyVersion, out var testingAssemblyVersion))
|
||||
isTestingAvailable = this.dalamud.Configuration.DoPluginTest && testingAssemblyVersion > assemblyVersion;
|
||||
|
|
@ -124,7 +133,7 @@ namespace Dalamud.Plugin
|
|||
continue;
|
||||
}
|
||||
|
||||
label += isTestingAvailable ? " (Testing version)" : string.Empty;
|
||||
label += (isTestingAvailable && !isRaw) ? " (testing version)" : string.Empty;
|
||||
|
||||
ImGui.PushID(pluginDefinition.InternalName + pluginDefinition.AssemblyVersion);
|
||||
|
||||
|
|
@ -157,8 +166,7 @@ namespace Dalamud.Plugin
|
|||
});
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(pluginDefinition.RepoUrl))
|
||||
{
|
||||
if (!string.IsNullOrEmpty(pluginDefinition.RepoUrl)) {
|
||||
ImGui.PushFont(InterfaceManager.IconFont);
|
||||
|
||||
ImGui.SameLine();
|
||||
|
|
@ -169,18 +177,18 @@ namespace Dalamud.Plugin
|
|||
ImGui.PopFont();
|
||||
}
|
||||
} else {
|
||||
var installedPlugin = this.dalamud.PluginManager.Plugins.Where(x => x.Definition != null).First(
|
||||
x => x.Definition.InternalName ==
|
||||
pluginDefinition.InternalName);
|
||||
|
||||
if (ImGui.Button(Loc.Localize("InstallerDisable", "Disable")))
|
||||
try {
|
||||
this.dalamud.PluginManager.DisablePlugin(installedPlugin.Definition);
|
||||
} catch (Exception exception) {
|
||||
Log.Error(exception, "Could not disable plugin.");
|
||||
this.errorModalDrawing = true;
|
||||
this.errorModalOnNextFrame = true;
|
||||
}
|
||||
if (!isRaw) {
|
||||
if (ImGui.Button(Loc.Localize("InstallerDisable", "Disable")))
|
||||
try {
|
||||
this.dalamud.PluginManager.DisablePlugin(installedPlugin.Definition);
|
||||
} catch (Exception exception) {
|
||||
Log.Error(exception, "Could not disable plugin.");
|
||||
this.errorModalDrawing = true;
|
||||
this.errorModalOnNextFrame = true;
|
||||
}
|
||||
} else {
|
||||
ImGui.NewLine();
|
||||
}
|
||||
|
||||
if (installedPlugin.PluginInterface.UiBuilder.OnOpenConfigUi != null) {
|
||||
ImGui.SameLine();
|
||||
|
|
@ -201,6 +209,11 @@ namespace Dalamud.Plugin
|
|||
|
||||
ImGui.SameLine();
|
||||
ImGui.TextColored(new Vector4(0.5f, 0.5f, 0.5f, 1.0f), $" v{pluginDefinition.AssemblyVersion}");
|
||||
|
||||
if(isRaw) {
|
||||
ImGui.SameLine();
|
||||
ImGui.TextColored(new Vector4(1.0f, 0.0f, 0.0f, 1.0f), " To update or disable this plugin, please remove it from the devPlugins folder.");
|
||||
}
|
||||
}
|
||||
|
||||
ImGui.Unindent();
|
||||
|
|
|
|||
|
|
@ -9,21 +9,34 @@ namespace Dalamud.Plugin
|
|||
/// <summary>
|
||||
/// This enum reflects reasons for loading a plugin.
|
||||
/// </summary>
|
||||
public enum PluginLoadReason
|
||||
[Flags]
|
||||
public enum PluginLoadReason
|
||||
{
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// We don't know why this plugin was loaded.
|
||||
/// </summary>
|
||||
Unknown,
|
||||
Unknown = 1,
|
||||
|
||||
/// <summary>
|
||||
/// This plugin was loaded because it was installed with the plugin installer.
|
||||
/// </summary>
|
||||
Installer,
|
||||
Installer = 2,
|
||||
|
||||
/// <summary>
|
||||
/// This plugin was loaded because the game was started or Dalamud was reinjected.
|
||||
/// </summary>
|
||||
Boot
|
||||
Boot = 4,
|
||||
|
||||
/// <summary>
|
||||
/// This plugin was loaded from the installedPlugins folder.
|
||||
/// </summary>
|
||||
Installed = 8,
|
||||
|
||||
/// <summary>
|
||||
/// This plugin was loaded from the devPlugins folder.
|
||||
/// </summary>
|
||||
Dev = 16
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ namespace Dalamud.Plugin
|
|||
|
||||
foreach (var dllFile in pluginDlls) {
|
||||
try {
|
||||
LoadPluginFromAssembly(dllFile, raw, PluginLoadReason.Boot);
|
||||
LoadPluginFromAssembly(dllFile, raw, PluginLoadReason.Boot | (raw ? PluginLoadReason.Dev : PluginLoadReason.Installed));
|
||||
} catch (Exception ex) {
|
||||
Log.Error(ex, $"Plugin load for {dllFile.FullName} failed.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ namespace Dalamud.Plugin
|
|||
if (disabledFile.Exists)
|
||||
disabledFile.Delete();
|
||||
|
||||
return this.dalamud.PluginManager.LoadPluginFromAssembly(dllFile, false, PluginLoadReason.Installer);
|
||||
return this.dalamud.PluginManager.LoadPluginFromAssembly(dllFile, false, PluginLoadReason.Installer | PluginLoadReason.Installed);
|
||||
}
|
||||
|
||||
if (dllFile.Exists && !enableAfterInstall) {
|
||||
|
|
@ -128,7 +128,7 @@ namespace Dalamud.Plugin
|
|||
testingFile.Delete();
|
||||
}
|
||||
|
||||
return this.dalamud.PluginManager.LoadPluginFromAssembly(dllFile, false, PluginLoadReason.Installer);
|
||||
return this.dalamud.PluginManager.LoadPluginFromAssembly(dllFile, false, PluginLoadReason.Installer | PluginLoadReason.Installed);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue