Files
HellionChat/README.md
T
JonKazama-Hellion 23e0f37dfb Bump to v0.1.2 with About-tab rebrand and Hellion-style README
Manifest moves to 0.1.2.0 so existing testers get an in-place
update offer once the matching GitHub release is published.

Changes since 0.1.1 are surface and packaging:

  - The inherited About tab now reflects the fork: Hellion Online
    Media as maintainer with hellion-media.de as the contact
    channel, EUPL-1.2 dual-copyright statement, FINAL FANTASY XIV
    SQUARE ENIX disclaimer, explicit acknowledgment of Chat 2 by
    Infi & Anna as the upstream foundation, and the original
    ChatTwo translator list relabelled as upstream Crowdin
    contributors so it isn't mistaken for Hellion translators.
  - Cherry-picked the upstream DBViewer UI improvements
    (auto-scroll-reset on page change, localized tooltips on the
    date reset, folder export, export-running notifications and
    the pagination arrows).
  - README rewritten in the Hellion project style: German prose,
    tech-stack table, architecture tree, database column list, a
    proper migration guide for users coming from Chat 2 (with
    Linux and Windows manual recovery commands), upstream-sync
    workflow notes for cherry-picks, project-status checklist
    separating bootstrap-done from phase-2-open work, and the
    Hellion Online Media footer.
  - repo.json regenerated to point at the v0.1.2 GitHub release
    asset URL.

Bundle changelog summarises the same so testers see the new
content in their plugin list before they pull the update.
2026-05-02 00:13:54 +02:00

13 KiB
Raw Permalink Blame History

Hellion Chat

Version 0.1.2 — 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.

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.1.2 | 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)

Phase 2 (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