From 8d6868aef6c494ee34af83ec3c96e0443ad7fb7d Mon Sep 17 00:00:00 2001 From: JonKazama-Hellion Date: Sat, 2 May 2026 23:21:20 +0200 Subject: [PATCH 1/2] chore(config): align defaults with maintainer's live config Four defaults now match what a daily-driver Hellion install ends up at anyway, so a fresh install does not feel like the wrong product: - HellionThemeWindowOpacity 0.92 -> 0.5 (more glass-like) - LoadPreviousSession + FilterIncludePreviousSessions false -> true (tabs pick up where they left off after a crash or restart). The privacy filter still gates what goes into the store; loading what is already in there is not an additional privacy cost. - Use24HourClock false -> true (matches a German / European locale, works with the strict CultureInfo.InvariantCulture format from the v0.5.1 fix). RetentionEnabled stays at false because that one is a documented opt-in privacy line, not a UX default. The persistent retention sweep should require an explicit user gesture even though my own install has it on. --- ChatTwo/Configuration.cs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/ChatTwo/Configuration.cs b/ChatTwo/Configuration.cs index 80aec68..6de6cb6 100755 --- a/ChatTwo/Configuration.cs +++ b/ChatTwo/Configuration.cs @@ -73,8 +73,10 @@ public class Configuration : IPluginConfiguration public bool HellionThemeEnabled = true; // Window background opacity, 0.5–1.0. Lower values make the plugin - // panes more glass-like so the game shines through. Default ~92%. - public float HellionThemeWindowOpacity = 0.92f; + // panes more glass-like so the game shines through. Default 0.5 + // matches the maintainer's daily-driver preference; users who want + // a less translucent look bump it up in Aussehen → Theme. + public float HellionThemeWindowOpacity = 0.5f; // Use the bundled Exo 2 font (OFL-1.1) for the regular plugin font // instead of whatever GlobalFontV2.FontId points at. Default ON so a @@ -150,15 +152,26 @@ public class Configuration : IPluginConfiguration public bool ShowTitleBar = true; public bool ShowPopOutTitleBar = true; public bool DatabaseBattleMessages; - public bool LoadPreviousSession; - public bool FilterIncludePreviousSessions; + // Load previously stored messages back into the tabs on plugin start + // so a /tell or party conversation picks up where it left off after + // a crash, restart or character switch. Default ON because the + // privacy filter already gates which channels go into the store at + // all; loading what is in there is not an additional privacy cost. + // Users can flip this off in Datenbank → Speicherung if they prefer + // every session to start with empty tabs. + public bool LoadPreviousSession = true; + public bool FilterIncludePreviousSessions = true; public bool SortAutoTranslate; public bool CollapseDuplicateMessages; public bool CollapseKeepUniqueLinks; public bool PlaySounds = true; public bool KeepInputFocus = true; public int MaxLinesToRender = 5_000; // 1-10000 - public bool Use24HourClock; + // Default ON to match a German / European 24h locale. The + // ChatLogWindow.cs format-flip in v0.5.1 honours this strictly via + // CultureInfo.InvariantCulture so the result is consistent across + // host locales. + public bool Use24HourClock = true; public bool ShowEmotes = true; public HashSet BlockedEmotes = []; From 340cadf3b91b31a111e5732399d6ad1b0ce7cb52 Mon Sep 17 00:00:00 2001 From: JonKazama-Hellion Date: Sat, 2 May 2026 23:24:22 +0200 Subject: [PATCH 2/2] chore(config): align defaults with maintainer's live config Three real-world adjustments to the default config that ships with a fresh install: - HellionThemeWindowOpacity 0.92 -> 0.5 so a fresh install lands at the more glass-like default the maintainer uses daily - Use24HourClock false -> true to match a German / European locale. Works correctly thanks to the v0.5.1 strict-format fix that uses CultureInfo.InvariantCulture instead of the host culture - HellionParty preset Channel: InputChannel.Party -> null. Auto- routing /party into a tab that also collects /alliance and /pvpteam surprises the user when they wanted to type into the other ones; the tab stays as a read surface LoadPreviousSession and FilterIncludePreviousSessions stay false to keep the privacy-strict 'every session starts fresh' line. The maintainer's personal settings flip them on, but that's an opt-in choice, not a default we should ship to every fresh install. RetentionEnabled also stays false for the same opt-in reason. --- ChatTwo/Configuration.cs | 11 ++--------- ChatTwo/Util/TabsUtil.cs | 5 ++++- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/ChatTwo/Configuration.cs b/ChatTwo/Configuration.cs index 6de6cb6..2e06485 100755 --- a/ChatTwo/Configuration.cs +++ b/ChatTwo/Configuration.cs @@ -152,15 +152,8 @@ public class Configuration : IPluginConfiguration public bool ShowTitleBar = true; public bool ShowPopOutTitleBar = true; public bool DatabaseBattleMessages; - // Load previously stored messages back into the tabs on plugin start - // so a /tell or party conversation picks up where it left off after - // a crash, restart or character switch. Default ON because the - // privacy filter already gates which channels go into the store at - // all; loading what is in there is not an additional privacy cost. - // Users can flip this off in Datenbank → Speicherung if they prefer - // every session to start with empty tabs. - public bool LoadPreviousSession = true; - public bool FilterIncludePreviousSessions = true; + public bool LoadPreviousSession; + public bool FilterIncludePreviousSessions; public bool SortAutoTranslate; public bool CollapseDuplicateMessages; public bool CollapseKeepUniqueLinks; diff --git a/ChatTwo/Util/TabsUtil.cs b/ChatTwo/Util/TabsUtil.cs index b143a5c..01cb838 100755 --- a/ChatTwo/Util/TabsUtil.cs +++ b/ChatTwo/Util/TabsUtil.cs @@ -108,7 +108,10 @@ public static class TabsUtil [ChatType.LootNotice] = (ChatSourceExt.All, ChatSourceExt.All), [ChatType.LootRoll] = (ChatSourceExt.All, ChatSourceExt.All), }, - Channel = InputChannel.Party, + // No automatic input-channel switch; the Gruppe tab is a read + // surface that pulls in Party, CrossParty, Alliance and PvpTeam + // together. Auto-routing /party into this tab would surprise the + // user when they actually wanted /alliance or /pvpteam. }; public static Tab HellionBeginner => new()