Add first-run wizard with three privacy profiles
Fresh installs now open a setup window on first plugin load that asks the user to pick one of three starting profiles. Existing ChatTwo users keep skipping the wizard because the v6→v7 migration sets Configuration.FirstRunCompleted = true on the same pass that seeds the Privacy-First defaults — they already saw the migration notification and can reopen the wizard from the Privacy tab if they want to choose differently. The three profiles map to concrete configuration sets: Privacy-First (recommended): own-conversation whitelist (30 channels), retention enabled with the spec defaults (Tells 365 days, own-conversation channels 90, fallback 30). Casual: Privacy-First plus public chat (Say/Shout/Yell, both emote types, Novice Network) with a 1-day retention window so RP players can scroll back the last scene without keeping third-party speech forever. Full History: filter off, retention off, GDPR warning shown inline. Behaves like upstream Chat 2. The wizard window is non-modal but covers a wide layout (three side-by-side cards) and closing it without picking anything is treated as accepting whatever defaults are already in place. The Privacy tab gains a "show wizard again" button at the top so the choice is reversible.
This commit is contained in:
+14
@@ -99,4 +99,18 @@ internal class HellionStrings
|
||||
|
||||
internal static string Migration_Notification_Title => Get(nameof(Migration_Notification_Title));
|
||||
internal static string Migration_Notification_Content => Get(nameof(Migration_Notification_Content));
|
||||
|
||||
internal static string Wizard_Title => Get(nameof(Wizard_Title));
|
||||
internal static string Wizard_Intro => Get(nameof(Wizard_Intro));
|
||||
internal static string Wizard_Profile_PrivacyFirst_Heading => Get(nameof(Wizard_Profile_PrivacyFirst_Heading));
|
||||
internal static string Wizard_Profile_PrivacyFirst_Description => Get(nameof(Wizard_Profile_PrivacyFirst_Description));
|
||||
internal static string Wizard_Profile_PrivacyFirst_Apply => Get(nameof(Wizard_Profile_PrivacyFirst_Apply));
|
||||
internal static string Wizard_Profile_Casual_Heading => Get(nameof(Wizard_Profile_Casual_Heading));
|
||||
internal static string Wizard_Profile_Casual_Description => Get(nameof(Wizard_Profile_Casual_Description));
|
||||
internal static string Wizard_Profile_Casual_Apply => Get(nameof(Wizard_Profile_Casual_Apply));
|
||||
internal static string Wizard_Profile_FullHistory_Heading => Get(nameof(Wizard_Profile_FullHistory_Heading));
|
||||
internal static string Wizard_Profile_FullHistory_Description => Get(nameof(Wizard_Profile_FullHistory_Description));
|
||||
internal static string Wizard_Profile_FullHistory_GdprWarning => Get(nameof(Wizard_Profile_FullHistory_GdprWarning));
|
||||
internal static string Wizard_Profile_FullHistory_Apply => Get(nameof(Wizard_Profile_FullHistory_Apply));
|
||||
internal static string Wizard_Reopen_Button => Get(nameof(Wizard_Reopen_Button));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user