JonKazama-Hellion e66ae1f5b4 merge: Hellion Chat 0.5.0 — Settings UX Polish
Twelve organic settings tabs collapsed into eight themed ones (General,
Appearance, Window, Chat, Tabs, Privacy, Database, Information). Wipe
migration v9→v10 with HellionChat.json.pre-v10-backup safety net.
Default tab layout now spawns six themed tabs out of the box (General,
System, Free Company, Party, Beginner when Novice Network is on,
Linkshell, Tell Exclusive). HelpMarker pattern across every section,
disabled tooltips remain visible. Pre-release polish from full
codebase review covered race-conditions, EmoteCache retry, Allman
bracing, and dead i18n keys.
2026-05-02 18:42:50 +02:00
2024-11-13 04:13:18 +01:00
2024-04-30 19:23:08 +02:00
2024-04-20 21:18:51 +10:00
2021-12-29 14:31:45 -05:00

Hellion Chat

Version 0.3.1 — DSGVO-bewusste Erweiterung von Chat 2 für FINAL FANTASY XIV / Dalamud.

Hellion Chat baut auf Chat 2 auf und ergänzt es um Datenschutz- und Daten-Handling-Kontrollen, die mit den Datenschutz-Regeln in der EU, den USA und Japan im Einklang sind. Alle Chat-2-Funktionen, Befehle und Tastenkürzel funktionieren unverändert. Eigenständiger Plugin-Slot, eigene Konfiguration, eigene Datenbank.

Privates Repository, EUPL-1.2-lizenziert. Distribution über Custom-Repo während der Bootstrap-Phase.


Tech Stack

Kategorie Technologie
Plattform Dalamud Plugin (API Level 15)
Sprache C# 13 / .NET 10 (net10.0-windows)
Build Dalamud.NET.Sdk 15.0.0, DalamudPackager 15.0.0
UI Dear ImGui (Dalamud-Bindings)
Datenbank SQLite (Microsoft.Data.Sqlite, MessagePack-Storage)
Lokalisierung ResX (HellionStrings.resx, .de.resx) + Crowdin-Sync
Schriftart Exo 2 (SIL Open Font License 1.1, gebündelt)
Toolchain dotnet 10 SDK, VS Code mit C# Dev Kit
Deployment GitHub Releases + Custom-Repo (repo.json)

Features

Privacy / Compliance

  • Channel-Whitelist für die Datenbank-Persistenz mit Privacy-First-Default. Out-of-the-box werden nur eigene Konversationen gespeichert (Tells, Gruppe, FC, Linkshells, Cross-World-Linkshells, Allianz, ExtraChat). Öffentlicher Chat, NPC-Dialoge, System-Spam und Battle-Logs werden auf der Storage-Ebene verworfen.
  • Aufbewahrungsdauer pro Kanal mit täglicher Background-Bereinigung. Tells 365 Tage, eigene Konversations-Kanäle 90 Tage, globaler Default 30 Tage. Standard ist AUS, das Plugin löscht ohne ausdrückliche Zustimmung nichts.
  • Retroaktive Säuberung mit Vorschau und Strg+Umschalt-Bestätigung. Wendet die aktuelle Whitelist auf eine bestehende Datenbank an, läuft im Hintergrund, ruft danach VACUUM auf.
  • Export nach Markdown, JSON oder CSV via Dalamud-Datei-Dialog (DSGVO Art. 15 Auskunftsrecht). Filter nach Kanal, Datums-Bereich oder Sender-Substring.

Onboarding

  • First-Run-Wizard mit drei Profilen (Privacy-First, Locker, Volle Historie) und DSGVO-Hinweis bei der "Volle Historie"-Option.
  • Konfigurations-Migration v6→v7 seedet Privacy-Defaults bei Bestand-Usern und zeigt eine Benachrichtigung beim Ersten Plugin-Start nach Update.
  • Layout-Migration aus Chat 2 verschiebt Konfiguration und Datenbank in pluginConfigs/HellionChat/ ohne Datenverlust. Robust gegen blockierte Dateien (Warnung beim User wenn Chat 2 noch geladen ist).
  • Migrate3-Recovery heilt halb-migrierte Datenbanken aus alten Chat-2-Installationen.

Look & Feel

  • Bilinguale UI (Englisch + Deutsch) mit Live-Sprachwechsel. Hellion-spezifische Strings in HellionStrings.<lang>.resx.
  • Hellion-HUD-Theme mit Cyan-Teal-Akzenten, Slate-Violet-Tabs, Bernstein-Highlights für aktive Zustände.
  • Fenster-Deckkraft-Slider für Kampf-freundliche Transparenz.
  • Mitgelieferte Hellion-Schrift (Exo 2, OFL-1.1) als optionaler Default statt System-Font.
  • Hellion-Logo im Plugin-Bundle und in der Dalamud-Plugin-Liste.

Stability

  • BetterTTV-Cache-Crash-Fix (Null-Key-Handling).
  • Font-Atlas-Build-Fallback bei nicht-installierten System-Fonts.
  • Defensive Wrapping aller Migrations-Operationen.

Was gegenüber Chat 2 fehlt

  • Webinterface wurde in Hellion Chat 0.2.0 entfernt. Es bedient einen anderen Anwendungsfall als der Fokus dieses Forks, nämlich Remote-Zugriff auf den Chat von einem zweiten Gerät. An die kleineren Defaults dieses Forks anzupassen hätte einen erheblichen Umbau bedeutet, also ist es ersatzlos entfernt worden. Wer den vollen Funktionsumfang von Chat 2 möchte, ist mit dem Upstream-Plugin besser bedient. Hellion Chat fokussiert sich auf einen schmaleren Datenbestand und verzichtet bewusst auf Remote-Zugriffs-Features.

Architektur

ChatTwo/
├── Privacy/
│   └── PrivacyDefaults.cs       # Whitelist-Sets, Spec-Retention-Tabelle
├── Export/
│   └── MessageExporter.cs       # Markdown / JSON / CSV Serializer
├── Resources/
│   ├── HellionStrings.resx      # Hellion-eigene UI-Strings (EN)
│   ├── HellionStrings.de.resx   # Deutsche Übersetzung
│   ├── HellionStrings.Designer.cs # Hand-maintained Accessor
│   ├── HellionFont.ttf          # Exo 2 Variable Font
│   ├── HellionFont-OFL.txt      # OFL-1.1 Lizenztext (mit Font gebundelt)
│   └── Language*.resx           # Upstream-Lokalisierung (Crowdin)
├── Ui/
│   ├── FirstRunWizard.cs        # Drei-Profile-Onboarding
│   ├── HellionStyle.cs          # ImGui-Theme-Push (lokal + global)
│   └── SettingsTabs/
│       └── Privacy.cs           # Datenschutz-Tab (Filter, Retention, Cleanup, Export)
├── images/
│   └── icon.png                 # Hellion-Logo (256×256)
├── DalamudPackager.targets      # Override für ImagesPath / HandleImages
└── HellionChat.yaml             # Plugin-Manifest (DalamudPackager-Source)

Regeln

  • Code-Namespace bleibt ChatTwo.* — Cherry-Picks von Upstream-Bugfixes bleiben damit konfliktarm.
  • AssemblyName ist HellionChat — eigener Slot in pluginConfigs/, eigene Datei-Manifest, kein Shared State mit Chat 2.
  • Hellion-eigene Strings nur in HellionStrings.*.resx — die Upstream-Language.*.resx bleiben unverändert für sauberen Crowdin-Sync.
  • Kein Direkt-Eingriff in Plugin.Interface.UiBuilder.FontAtlas außerhalb von FontManager — Font-Fallback und Hellion-Font laufen zentral.

Datenbank

SQLite, Schema von Upstream Chat 2 übernommen (Migration-Stand v3). Hellion-Erweiterungen sind in Configuration als Felder, nicht im DB-Schema:

Spalte Typ Beschreibung
Id BLOB Guid
Receiver INTEGER Empfänger-ContentId
ContentId INTEGER Sender-ContentId
Date INTEGER Unix-Timestamp (ms)
ChatType INTEGER XivChatType / LogKind
SourceKind INTEGER Player / NPC / Server / etc.
TargetKind INTEGER Player / NPC / Server / etc.
Sender BLOB MessagePack List<Chunk>
Content BLOB MessagePack List<Chunk>
SenderSource BLOB MessagePack SeString
ContentSource BLOB MessagePack SeString
ExtraChatChannel BLOB Guid
Deleted BOOLEAN Soft-Delete-Marker

Pfad: pluginConfigs/HellionChat/chat-sqlite.db. WAL-Modus, Synchronous=NORMAL.


Installation (Tester)

Hellion Chat wird während der Bootstrap-Phase über ein Dalamud-Custom-Repository verteilt.

Frische Installation (kein Chat 2 vorher)

  1. Dalamud-Settings (/xlsettings) → Experimental öffnen.
  2. Neuen Eintrag unter Custom Plugin Repositories anlegen:
    https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/repo.json
    
  3. Save, dann in /xlpluginsAll Plugins → Refresh.
  4. Hellion Chat taucht in der Liste auf — installieren.

Migration aus Chat 2 (mit bestehendem Verlauf)

Chat 2 und Hellion Chat teilen sich die Datenbank-Datei, bis Hellion Chat sie beim ersten Start in den eigenen Pfad verschiebt. Die Reihenfolge ist wichtig:

  1. Chat 2 deaktivieren in /xlplugins (nicht deinstallieren, nur deaktivieren).
  2. FFXIV komplett schließen, damit SQLite die Datei-Sperre freigibt. Plugin-Reload allein reicht nicht.
  3. Spiel neu starten.
  4. Custom-Repo wie oben hinzufügen.
  5. Hellion Chat installieren. Beim ersten Start wandert die Konfigurations-Datei und das gesamte Datenbank-Verzeichnis in das HellionChat-Layout.
  6. Verifizieren unter Einstellungen → Datenschutz → Vorschau aktualisieren, dass die Nachrichten-Anzahl plausibel ist.

Troubleshooting

Hellion Chat zeigt 0 Nachrichten, obwohl Chat 2 vorher aktiv war:

Migration wurde durch eine gesperrte Datei blockiert. Spiel schließen und manuell verschieben:

Linux / XIVLauncher Core:

mv ~/.xlcore/pluginConfigs/ChatTwo/chat-sqlite.db \
   ~/.xlcore/pluginConfigs/HellionChat/chat-sqlite.db
[ -d ~/.xlcore/pluginConfigs/ChatTwo/EmoteCacheV1 ] && \
  mv ~/.xlcore/pluginConfigs/ChatTwo/EmoteCacheV1 \
     ~/.xlcore/pluginConfigs/HellionChat/

Windows / XIVLauncher:

Move-Item "$env:AppData\XIVLauncher\pluginConfigs\ChatTwo\chat-sqlite.db" `
          "$env:AppData\XIVLauncher\pluginConfigs\HellionChat\chat-sqlite.db" -Force

Spiel starten, Hellion Chat aktivieren, Verlauf ist zurück.

Updates

Updates erscheinen automatisch in der Plugin-Liste, sobald ein neuer v0.1.x-Tag mit GitHub-Release publiziert ist. Keine Neu-Installation nötig.


Entwicklung

Voraussetzungen

  • .NET 10 SDK (10.0.104+) und .NET 9 SDK (9.0.115+ parallel)
  • Dalamud-Hooks im XIVLauncher-addon-Verzeichnis
  • VS Code mit C# Dev Kit (oder Rider, JetBrains)
  • Linux: WireGuard-Mount für Test-Spiel-Setup falls Remote-DB

Setup

git clone --recurse-submodules https://github.com/JonKazama-Hellion/HellionChat.git
cd HellionChat
git remote add upstream https://github.com/Infiziert90/ChatTwo.git

# Linux: DALAMUD_HOME exportieren falls Hooks nicht im Standardpfad
cp .env.example .env
set -a; source .env; set +a

dotnet build ChatTwo/ChatTwo.csproj

Output: ChatTwo/bin/Debug/HellionChat.dll. Den Ordner ChatTwo/bin/Debug in Dalamud unter Experimental → Dev Plugin Locations eintragen.

Build-Konfigurationen

Configuration Output Zweck
Debug bin/Debug/HellionChat.dll Dev-Plugin-Loading
Release bin/Release/HellionChat/latest.zip + Manifest Custom-Repo / GitHub Release

Upstream-Sync

git fetch upstream
git log --oneline HEAD..upstream/main          # Welche Commits gibt es?
git cherry-pick -x <commit>                    # Selektiv übernehmen

Konflikte in Upstream-Sprach-Ressourcen (Language.<lang>.resx) kommen häufig vor weil Crowdin sie regelmäßig anfasst. Pragmatisch mit git checkout --theirs auflösen, da wir sie selbst nicht editieren.


Distribution

Phase Version Distribution
Bootstrap v0.1.x Eigenes Custom-Repo (repo.json im Repo-Root)
Stable v1.0 Eigenes Custom-Repo
Optional v1.1+ Submission ans Dalamud-Main-Plugin-Repo (zusätzlich)

repo.json wird beim Versions-Bump per Hand aus dem generierten HellionChat.json plus den GitHub-Release-Download-Links zusammengebaut. Skript-Automatisierung via GitHub Actions ist geplant aber noch nicht eingerichtet.


Projektstatus

Version 0.3.1 | Stand: Mai 2026

Alle Bootstrap-Phasen abgeschlossen:

  • Privacy-Filter (Whitelist + Retention + Cleanup + Export)
  • First-Run-Wizard mit drei Profilen
  • Plugin-Identity (eigener Slot, Layout-Migration, Recovery)
  • Bilinguale UI (EN + DE) mit Live-Sprachwechsel
  • Hellion-Theme + Hellion-Logo + gebündelter Exo-2-Font
  • Custom-Repo-Pipeline mit GitHub-Release-Distribution
  • About-Tab im Hellion-Branding mit License + Disclaimer
  • AI-Disclosure dokumentiert (Pair-Klassifikation)
  • Webinterface entfernt (Phase 1.5, Audit-Konsequenz aus 2026-05-02)
  • Audit-Hardening Phase 2 (Path-Traversal, Retention-Race, DbViewer-Konsistenz, Privacy-Filter-Help-Text)
  • Slash-Commands auf /hellion-Familie umbenannt
  • Theme auf Hellion-Online-Media-Brand-Palette aligned (Arctic Cyan + Ember Orange)
  • About-Tab vollständig lokalisiert (EN + DE) mit Mission-Statement und neutraler Tonart

Phase 3 (offen, kein festes Datum):

  • MySQL/MariaDB-Backend mit Drei-Stufen-Bestätigung
  • PostgreSQL-Backend
  • Encryption für sensible Channels (AES-256, lokaler Key)
  • WireGuard-Network-Detection (optionaler Filter)
  • libnotify-Integration (native Linux-Toasts)
  • XDG-Compliance (komplex unter Wine)
  • Hand-gezeichnetes Hellion-Logo (Platzhalter aus Hellion-Online-Media-Brand-Repo)
  • GitHub-Actions für reproduzierbaren Build und automatischen repo.json-Sync
  • Submission ans Dalamud-Main-Plugin-Repo

Lizenz

EUPL-1.2 (gleiche Lizenz wie Upstream Chat 2). Siehe LICENCE.

© 20232026 die Chat-2-Autoren (Infi, Anna und die Upstream-Contributors) für die Engine, IPC und Storage-Schicht. © 2026 Hellion Online Media für die Hellion-Chat-Erweiterungen.

Acknowledgments

  • Infi & Anna (ascclemens) — die Chat-2-Engine, ohne die dieser Fork nicht existieren würde.
  • Dalamud-Team — das Plugin-Framework.
  • Chat-2-Crowdin-Community — Übersetzungen der Upstream-Strings (siehe Settings → Info → "Chat 2 community translators").

FFXIV-Disclaimer

FINAL FANTASY XIV © SQUARE ENIX CO., LTD. Alle Rechte vorbehalten. Hellion Chat ist ein inoffizielles, von Fans erstelltes Plugin und ist weder mit Square Enix verbunden noch von ihnen unterstützt, gesponsert oder genehmigt.

KI-Unterstützung

Siehe AI_DISCLOSURE.md für die Pair-Level-Disclosure.


Hellion Online Media | Bad Harzburg | hellion-media.de

S
Description
A Linux-aware, GDPR-compliant chat plugin for FINAL FANTASY XIV.
Readme EUPL-1.2 16 MiB
v1.4.3 Latest
2026-05-09 06:42:49 +00:00
Languages
C# 99.2%
Shell 0.8%