c5fe69f0d3
Crystal Nocturne (royal sapphire + electric magenta on obsidian, by CRYSTALLITE) replaces Moonlit Bloom in the built-in roster. The same chat-channel tinting convention applies: sapphire-blue identity on party/team channels, accent-magenta on tells, and an alternating mint/yellow/peach palette across the eight linkshell slots so each LS stays individually distinguishable on the dark obsidian background. Users who had Moonlit Bloom selected fall back to the default Hellion Arctic on the first plugin load. A custom JSON copy of Moonlit Bloom dropped into pluginConfigs/HellionChat/themes/ keeps working as a user theme. Plus a cosmetic re-sort of the registry: insertion order now drives a deliberate Theme-Picker grid layout (3 columns) — blue family in row 1, purple to magenta in row 2, green/warm/classic in row 3, Synthwave Sunset alone in row 4 as a retro bonus.
136 lines
6.3 KiB
YAML
Executable File
136 lines
6.3 KiB
YAML
Executable File
name: Hellion Chat
|
|
author: Jon Kazama (Hellion Forge)
|
|
punchline: A Hellion Forge plugin — privacy-focused chat replacement for FFXIV, built for EU, US and JP data rules.
|
|
description: |-
|
|
Chat replacement for FINAL FANTASY XIV with privacy controls built around
|
|
EU, US and JP data-protection rules.
|
|
|
|
By default only your own conversations are stored. Public chat, NPC
|
|
dialogue and system messages stay out of the database unless you opt in.
|
|
Retention windows are configurable per channel, history can be wiped
|
|
retroactively, and everything can be exported on demand.
|
|
|
|
Features:
|
|
- Channel whitelist with a Privacy-First default
|
|
- Per-channel retention with a daily background sweep
|
|
- Retroactive cleanup (Ctrl+Shift confirm)
|
|
- Export to Markdown, JSON or CSV
|
|
- First-run wizard with three preset profiles
|
|
- Bilingual UI (EN/DE) with live language switching
|
|
- Own config and database — no shared state with other plugins
|
|
|
|
Based on Chat 2 by Infi and Anna (EUPL-1.2).
|
|
Support: https://discord.gg/X9V7Kcv5gR
|
|
repo_url: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat
|
|
accepts_feedback: true
|
|
icon_url: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/icon.png
|
|
image_urls:
|
|
- https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/chatWindow.png
|
|
- https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/settingsOverview.png
|
|
- https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/themesPicker.png
|
|
tags:
|
|
- Social
|
|
- UI
|
|
- Chat
|
|
- Replacement
|
|
- Privacy
|
|
changelog: |-
|
|
**v1.4.6 — Code Hygiene and Refactor (2026-05-12)**
|
|
|
|
Maintenance patch. No user-visible behaviour changes; tightens the
|
|
development feedback loop, fixes two upstream-inherited bugs, and
|
|
prepares the code for the v1.4.7 backlog cleanup.
|
|
|
|
- preflight.sh gains a csharpier reflow check and a markdownlint
|
|
pass so style drift and markdown violations are caught at the
|
|
pre-push gate
|
|
- FontManager fallback catches the full set of atlas-toolkit
|
|
throws (IO, InvalidOperation, ArgumentException) — a corrupt
|
|
font config no longer takes down the whole atlas build
|
|
- BrandingLinks and IntegrationLinks URLs validated on plugin
|
|
load — a typo in a future URL rotation now throws at startup
|
|
- Cherry-picked from ChatTwo upstream f35b7d3: Chat.SetChannel
|
|
no longer leaks the native Utf8String when the linkshell check
|
|
rejects the channel
|
|
- Cherry-picked from ChatTwo upstream f35b7d3: Tab.Clone now
|
|
deep-clones UsedChannel and TellTarget — PopOut and Temp tabs
|
|
no longer mutate each other's channel state
|
|
- Active-tab underline scales with DPI and rounds to physical
|
|
pixels for crisp rendering above 100% scaling
|
|
- IconButton width parameter no longer subtracts HUD-scaled
|
|
padding from a raw int (measured width passes through verbatim)
|
|
- Internal: HellionStyle ChildBgAlpha extracted to a testable
|
|
helper; Plugin.SaveConfig clones only the temp tabs;
|
|
SettingsOverview caches the draw-list per frame;
|
|
Dalamud.Utility.Util surface routed through an IPlatformUtil
|
|
indirection (MessageStore IsWine probe is now testable in
|
|
isolation)
|
|
- Built-in themes: Crystal Nocturne (sapphire and electric
|
|
magenta over obsidian, by CRYSTALLITE) replaces Moonlit Bloom.
|
|
Users with Moonlit Bloom selected fall back to Hellion Arctic
|
|
on first load
|
|
|
|
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
|
|
|
---
|
|
|
|
**v1.4.5 — UX and Robustness (2026-05-12)**
|
|
|
|
Sixth sub-patch of the v1.4.x polish-sweep series. Chat-log draw
|
|
failures surface as a notification, the first-run wizard has an
|
|
explicit "Later" option, the input history clears on plugin reload,
|
|
and the status bar version slot stops clipping in narrow windows.
|
|
|
|
- Chat window draw errors now show a one-shot notification instead
|
|
of failing silently — stack trace stays in /xllog
|
|
- First-run wizard: explicit "Later — keep defaults" button.
|
|
Closing the X no longer silently accepts the defaults; the wizard
|
|
reopens on the next plugin load if nothing was picked
|
|
- InputHistoryService clears on plugin dispose so the previous
|
|
session's typed commands don't bleed into the next load
|
|
- Status bar hides the version slot when the chat window is too
|
|
narrow to fit all five slots without overlap
|
|
- Internal: explicit session-only Auto-Tell-Tab invariant in
|
|
Plugin.cs plus a pinning test in the Build-Suite
|
|
- Internal: FontManager falls back to the system font if the
|
|
embedded Hellion font resource is missing — logs a Warning
|
|
|
|
---
|
|
|
|
**v1.4.4 — Threading and IPC safety polish (2026-05-12)**
|
|
|
|
Fifth sub-patch of the v1.4.x polish-sweep series. Threading
|
|
assumptions are documented per-method, a hot-path lock falls
|
|
away, and the privacy filter speaks up when an unknown ChatType
|
|
shows up.
|
|
|
|
- AutoTellTabs hot-path getter uses an Interlocked counter
|
|
instead of taking the lock on every read
|
|
- Honorific integration: per-method threading banners, plus
|
|
Warning-level log on unsubscribe failure
|
|
- AutoTranslate warmup thread marked IsBackground so plugin
|
|
unload doesn't wait for it
|
|
- PrivacyFilter logs once per unknown ChatType so a future
|
|
patch's added channel doesn't drop off the radar
|
|
- New installs persist unknown channels by default; existing
|
|
configs keep their explicit choice
|
|
|
|
---
|
|
|
|
**v1.4.3 — Faster plugin load + new repo (2026-05-08)**
|
|
|
|
Heavy startup work (migrations, hooks, windows) now runs async so
|
|
Dalamud's UI stays responsive during load. Load time is comparable
|
|
to v1.4.2 — this is the foundation for v1.4.4 optimisations.
|
|
|
|
- Two-phase async load via IAsyncDalamudPlugin
|
|
- Schema-gate replaces the v9→v16 migration chain; old configs
|
|
require a v1.4.2 install first
|
|
- AutoTranslate cache loads on first use instead of every startup
|
|
- Custom font (Hellion-Exo2) appears with a brief pop after load
|
|
- Repo moved to gitea.hellion-forge.cloud — update your custom-repo URL
|
|
|
|
---
|
|
|
|
Full history: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases
|