fix: game crashing when plugin master is loading

This commit is contained in:
Aireil 2021-04-29 06:21:03 +02:00
parent 411cf3ee9c
commit 8219e230eb

View file

@ -192,7 +192,8 @@ namespace Dalamud.Plugin
} }
else else
{ {
if (ImGui.Button(Loc.Localize("InstallerUpdatePlugins", "Update plugins"))) if (ImGui.Button(Loc.Localize("InstallerUpdatePlugins", "Update plugins")) &&
this.dalamud.PluginRepository.State == PluginRepository.InitializationState.Success)
{ {
this.installStatus = PluginInstallStatus.InProgress; this.installStatus = PluginInstallStatus.InProgress;
@ -217,7 +218,8 @@ namespace Dalamud.Plugin
this.errorModalDrawing = this.installStatus == PluginInstallStatus.Fail; this.errorModalDrawing = this.installStatus == PluginInstallStatus.Fail;
this.errorModalOnNextFrame = this.installStatus == PluginInstallStatus.Fail; this.errorModalOnNextFrame = this.installStatus == PluginInstallStatus.Fail;
this.dalamud.PluginRepository.PrintUpdatedPlugins(this.updatedPlugins, Loc.Localize("DalamudPluginUpdates", "Updates:")); this.dalamud.PluginRepository.PrintUpdatedPlugins(
this.updatedPlugins, Loc.Localize("DalamudPluginUpdates", "Updates:"));
this.RefetchPlugins(); this.RefetchPlugins();
}); });
@ -305,8 +307,11 @@ namespace Dalamud.Plugin
private void ResortPlugins() private void ResortPlugins()
{ {
if (this.dalamud.PluginRepository.State != PluginRepository.InitializationState.Success)
return;
var availableDefs = this.dalamud.PluginRepository.PluginMaster.Where( var availableDefs = this.dalamud.PluginRepository.PluginMaster.Where(
x => this.pluginListInstalled.All(y => x.InternalName != y.InternalName)) x => this.pluginListInstalled.All(y => x.InternalName != y.InternalName))
.GroupBy(x => new { x.InternalName, x.AssemblyVersion }) .GroupBy(x => new { x.InternalName, x.AssemblyVersion })
.Select(y => y.First()).ToList(); .Select(y => y.First()).ToList();