diff --git a/HellionChat/Configuration.cs b/HellionChat/Configuration.cs index c7b0434..9d78591 100755 --- a/HellionChat/Configuration.cs +++ b/HellionChat/Configuration.cs @@ -100,6 +100,15 @@ public class Configuration : IPluginConfiguration public Dictionary RetentionPerChannelDays = []; public DateTimeOffset RetentionLastRunAt = DateTimeOffset.MinValue; public bool FirstRunCompleted; + + // Tracks which plugin version last surfaced the first-run wizard. + // When the running version is newer than this, Plugin.LoadAsync + // re-opens the wizard once so existing users see major UX reworks + // (e.g. the v1.5.2 multi-step rewrite). Skip path and Finish both + // set FirstRunCompleted = true on close, so the wizard only fires + // once per version bump even if the user dismisses it. + public string WizardLastShownVersion = string.Empty; + public bool UseHellionFont = true; public bool ShowHonorificTitleInHeader = true; @@ -336,6 +345,7 @@ public class Configuration : IPluginConfiguration RetentionLastRunAt = other.RetentionLastRunAt; FirstRunCompleted = other.FirstRunCompleted; + WizardLastShownVersion = other.WizardLastShownVersion; UseHellionFont = other.UseHellionFont; ShowHonorificTitleInHeader = other.ShowHonorificTitleInHeader; ShowHonorificGlow = other.ShowHonorificGlow; diff --git a/HellionChat/Plugin.cs b/HellionChat/Plugin.cs index b486c8f..6286521 100755 --- a/HellionChat/Plugin.cs +++ b/HellionChat/Plugin.cs @@ -324,6 +324,19 @@ public sealed class Plugin : IAsyncDalamudPlugin new SelfTests.WizardStateSmokeStep(this), ]); + // Re-surface the wizard for existing users when a major UX + // rework ships. The constant tracks the most recent version + // whose wizard should be shown once; bump it in future cycles + // that reshape the onboarding flow. Saved immediately so a + // pre-Finish crash doesn't loop the prompt forever. + const string WizardReshowVersion = "1.5.2"; + if (Config.WizardLastShownVersion != WizardReshowVersion) + { + Config.FirstRunCompleted = false; + Config.WizardLastShownVersion = WizardReshowVersion; + SaveConfig(); + } + if (!Config.FirstRunCompleted) FirstRunWizard.IsOpen = true;