Merge pull request #341 from Aireil/fix_installer_not_init

fix: game crashing when plugin master is loading
This commit is contained in:
goaaats 2021-04-29 11:57:35 +02:00 committed by GitHub
commit 6c7ea79fc4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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