Merge branch 'feature/v2.0.6'
Forge Announce / Post changelog to Hellion Forge (push) Failing after 0s
Release / Build and attach release ZIP (push) Failing after 0s
Security Scan (reusable) / Security Scan (push) Successful in 27s
Security / scan (push) Successful in 27s
Build / Build (Release) (push) Successful in 32s
Forge Announce / Post changelog to Hellion Forge (push) Failing after 0s
Release / Build and attach release ZIP (push) Failing after 0s
Security Scan (reusable) / Security Scan (push) Successful in 27s
Security / scan (push) Successful in 27s
Build / Build (Release) (push) Successful in 32s
This commit is contained in:
commit
2f762a9410
36 files changed
+216
-18
No files matched your search
@@ -0,0 +1,8 @@
|
||||
---
|
||||
subtitle: "Statusleiste abschaltbar"
|
||||
versionsnatur: "Feature-Patch"
|
||||
---
|
||||
Eine Frage aus dem Discord, klein genug für ein eigenes Release: Sind die Pillen am unteren Rand fest im Code? Waren sie.
|
||||
|
||||
- **Die Statusleiste lässt sich ausschalten.** Die Reihe am unteren Rand des Chatfensters (Kanal, Privatsphäre-Status, Nachrichtenzähler, Flüstern, Uhr, Version) hatte keinen Schalter. Unter Einstellungen → Fenster → Fenster-Style gibt es jetzt „Statusleiste anzeigen". Aus, und der Chat nimmt den Platz. Bleibt für alle an, bis du es ausschaltest, von selbst ändert sich nichts. Eines solltest du wissen: Kamera und Schloss wohnen in dieser Reihe. Ohne Leiste zeigen Screenshot-Modus und Privatsphäre-Filter nichts mehr an.
|
||||
- **Vorgeschlagen von Ashy ^.^, und das steht auch dran.** Der Schalter trägt eine Zeile „Vorgeschlagen von" unter sich. Wer etwas vorschlägt, soll den eigenen Namen dort sehen, wo die Funktion gelandet ist, nicht in einem Changelog, das niemand öffnet. Die Zeile ist in alle 25 Sprachen übersetzt und bereit für den nächsten Vorschlag.
|
||||
@@ -231,6 +231,7 @@ public class Configuration : IPluginConfiguration
|
||||
public bool CanResize = true;
|
||||
public bool ShowTitleBar;
|
||||
public bool ShowPopOutTitleBar = true;
|
||||
public bool ShowStatusBar = true;
|
||||
public bool DatabaseBattleMessages;
|
||||
public bool FilterIncludePreviousSessions;
|
||||
public bool SortAutoTranslate;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
||||
<PropertyGroup>
|
||||
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
|
||||
<Version>2.0.5</Version>
|
||||
<Version>2.0.6</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<!-- Use lock file to pin exact versions -->
|
||||
|
||||
@@ -21,6 +21,15 @@ tags:
|
||||
- Replacement
|
||||
- Privacy
|
||||
changelog: |-
|
||||
**v2.0.6 — Status bar, optional (2026-09-20)**
|
||||
|
||||
One question from the Discord, small enough to ship on its own: are the pills along the bottom edge fixed in the code? They were.
|
||||
|
||||
- **The status bar can be switched off.** The row at the bottom of the chat window (channel, privacy state, message counts, tells, clock, version) had no switch. Settings → Window → Window style has "Show status bar" now. Off, the chat body takes the space; on for everyone until you turn it off, so nothing changes by itself. One thing to know: the camera and the lock live in that row, so with the bar hidden, screenshot mode and the privacy filter give no visible sign.
|
||||
- **Suggested by Ashy ^.^, and it says so.** The toggle carries a "Suggested by" line under it. Whoever proposes a feature should see their name where the feature lives, not in a changelog they will never open. The line is translated into all 25 languages and is a generic key, ready for the next suggestion.
|
||||
|
||||
---
|
||||
|
||||
**v2.0.5 — Focus, and a way out (2026-08-23)**
|
||||
|
||||
Two tester reports, both about the same corner: what a tell does to what you were doing, and what you can do about a tab once it exists.
|
||||
@@ -48,12 +57,5 @@ changelog: |-
|
||||
- **Screenshot mode could not be turned off.** It is a saved setting, but neither of its two toggles wrote the change to the config file, so switching it off never survived a reload and the mode came back on at every plugin load. Both toggles save now. If it is stuck on for you, one click off is enough.
|
||||
- **Text the game colours itself could render invisible.** Some of those colours arrive without an alpha byte, and the byte order swap then left them fully transparent.
|
||||
|
||||
---
|
||||
|
||||
**v2.0.2 — Emotes out, placeholders fixed (2026-08-19)**
|
||||
|
||||
- **BetterTTV emote support is gone.** Its shared-emote endpoint went behind authentication, and that was where nearly all of them came from — what remained was a 65-entry global set, eleven of which are on the known-broken list, so 54 mostly static images from Twitch's early days. Exactly one was animated, and that one wanted 492 frames and 37 MB of video memory. The plugin now makes no outbound network calls at all. Messages stored with emotes still read fine; they show the code that was typed.
|
||||
- **Five settings descriptions printed `{0}` instead of the plugin name.** All 25 languages were affected, English included — it just hid better there, since "Hide {0} during cutscenes" still scans as a sentence while German puts the placeholder first. A test now walks every resource string with a placeholder and fails if one reaches a widget unformatted.
|
||||
- **New preview images.** The ones in the plugin installer were from 8 May and showed the interface as it looked before any of the window rebuilds.
|
||||
|
||||
Earlier history: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases
|
||||
@@ -428,6 +428,8 @@ internal class HellionStrings
|
||||
internal static string Settings_Window_TabPlacement_Description => Get(nameof(Settings_Window_TabPlacement_Description));
|
||||
internal static string Settings_Window_TitleBar_Name => Get(nameof(Settings_Window_TitleBar_Name));
|
||||
internal static string Settings_Window_PopoutTitleBar_Name => Get(nameof(Settings_Window_PopoutTitleBar_Name));
|
||||
internal static string Settings_Window_StatusBar_Name => Get(nameof(Settings_Window_StatusBar_Name));
|
||||
internal static string Settings_SuggestedBy => Get(nameof(Settings_SuggestedBy));
|
||||
internal static string Settings_Window_AllowMove_Name => Get(nameof(Settings_Window_AllowMove_Name));
|
||||
internal static string Settings_Window_AllowResize_Name => Get(nameof(Settings_Window_AllowResize_Name));
|
||||
internal static string Settings_Window_SidebarThreshold_Name => Get(nameof(Settings_Window_SidebarThreshold_Name));
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Barra de títol als pop-outs</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Mostra la barra d'estat</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Suggerit per {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Permet moure</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Záhlaví u pop-out oken</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Zobrazit stavový řádek</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Návrh od {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Povolit přesouvání</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Vis titellinje for pop-out-vinduer</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Vis statuslinje</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Foreslået af {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Tillad flytning</value>
|
||||
</data>
|
||||
|
||||
@@ -1217,6 +1217,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Titelleiste für Pop-Outs</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Statusleiste anzeigen</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Vorgeschlagen von {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Verschieben erlauben</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Εμφάνιση γραμμής τίτλου στα αποσπώμενα παράθυρα</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Εμφάνιση γραμμής κατάστασης</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Πρόταση από {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Να επιτρέπεται η μετακίνηση</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Barra de título en pop-outs</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Mostrar la barra de estado</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Sugerido por {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Permitir mover</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Näytä otsikkopalkki irrotetuissa ikkunoissa</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Näytä tilarivi</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Ehdottanut {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Salli siirtäminen</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Afficher la barre de titre des fenêtres détachées</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Afficher la barre d'état</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Suggéré par {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Autoriser le déplacement</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Címsor a pop-out ablakoknál</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Állapotsor megjelenítése</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Javasolta: {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Mozgatás engedélyezése</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Barra del titolo nei pop-out</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Mostra la barra di stato</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Suggerito da {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Consenti lo spostamento</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>ポップアウトのタイトルバーを表示</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>ステータスバーを表示</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>提案者: {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>移動を許可</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>팝아웃 창의 제목 표시줄 보이기</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>상태 표시줄 보이기</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>제안자: {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>이동 허용</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Tittellinje for pop-out-vinduer</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Vis statuslinje</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Foreslått av {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Tillat flytting</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Titelbalk voor pop-outvensters</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Statusbalk tonen</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Voorgesteld door {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Verplaatsen toestaan</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Pokaż pasek tytułu w oknach odłączonych</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Pokaż pasek stanu</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Zaproponowane przez {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Zezwól na przesuwanie</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Mostrar barra de título nas janelas destacadas</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Mostrar barra de status</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Sugerido por {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Permitir mover</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Mostrar barra de título nas janelas destacadas</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Mostrar barra de estado</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Sugerido por {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Permitir mover</value>
|
||||
</data>
|
||||
|
||||
@@ -1234,6 +1234,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Show title bar for pop-outs</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Show status bar</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Suggested by {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Allow movement</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Afișează bara de titlu la ferestrele desprinse</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Afișează bara de stare</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Sugerat de {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Permite mutarea</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Показывать заголовок в отдельных окнах</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Показывать строку состояния</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Предложено пользователем {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Разрешить перемещение</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Namnlist för pop-out-fönster</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Visa statusfält</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Föreslagen av {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Tillåt flytt</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Ayrık pencereler için başlık çubuğunu göster</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Durum çubuğunu göster</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>{0} tarafından önerildi</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Taşımaya izin ver</value>
|
||||
</data>
|
||||
|
||||
@@ -1222,6 +1222,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>Показувати рядок заголовка у відокремлених вікнах</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>Показувати рядок стану</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>Запропоновано користувачем {0}</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>Дозволити переміщення</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>显示弹出窗口的标题栏</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>显示状态栏</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>由 {0} 建议</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>允许移动</value>
|
||||
</data>
|
||||
|
||||
@@ -1223,6 +1223,12 @@
|
||||
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
|
||||
<value>顯示彈出視窗的標題列</value>
|
||||
</data>
|
||||
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
|
||||
<value>顯示狀態列</value>
|
||||
</data>
|
||||
<data name="Settings_SuggestedBy" xml:space="preserve">
|
||||
<value>由 {0} 建議</value>
|
||||
</data>
|
||||
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
|
||||
<value>允許移動</value>
|
||||
</data>
|
||||
|
||||
@@ -71,6 +71,15 @@ internal sealed class WindowTab
|
||||
() => Plugin.Config.ShowPopOutTitleBar,
|
||||
v => Plugin.Config.ShowPopOutTitleBar = v
|
||||
);
|
||||
// Tester credit on the row itself: the people who propose a feature
|
||||
// should see their name where the feature lives, not in a changelog.
|
||||
_w.ToggleRow(
|
||||
ImGui.GetID("window.style.statusbar"u8),
|
||||
HellionStrings.Settings_Window_StatusBar_Name,
|
||||
string.Format(HellionStrings.Settings_SuggestedBy, "Ashy ^.^"),
|
||||
() => Plugin.Config.ShowStatusBar,
|
||||
v => Plugin.Config.ShowStatusBar = v
|
||||
);
|
||||
_w.ToggleRow(
|
||||
ImGui.GetID("window.style.hidebutton"u8),
|
||||
Language.Options_ShowHideButton_Name,
|
||||
|
||||
@@ -368,7 +368,9 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
|
||||
if (_activeTab is { } seenTab)
|
||||
seenTab.Unread = 0;
|
||||
|
||||
var statusHeight = Components.StatusBar.Height;
|
||||
// A child height of 0 means "fill the remaining space" in ImGui, so hiding
|
||||
// the bar lets the body take the whole window without a second code path.
|
||||
var statusHeight = Plugin.Config.ShowStatusBar ? Components.StatusBar.Height : 0f;
|
||||
|
||||
using (var body = ImRaii.Child("##hellion-body", new Vector2(-1f, -statusHeight)))
|
||||
{
|
||||
@@ -376,7 +378,8 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
|
||||
DrawBody(tabs);
|
||||
}
|
||||
|
||||
_status.Draw(_activeTab, tabs);
|
||||
if (Plugin.Config.ShowStatusBar)
|
||||
_status.Draw(_activeTab, tabs);
|
||||
}
|
||||
|
||||
private void DrawBody(IReadOnlyList<Tab> tabs)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/actions/workflows/build.yml)
|
||||
[](LICENSE)
|
||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
|
||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
|
||||
[](https://github.com/goatcorp/Dalamud)
|
||||
[](https://dotnet.microsoft.com/)
|
||||
[](https://www.finalfantasyxiv.com/)
|
||||
@@ -11,7 +11,7 @@
|
||||
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
|
||||
</p>
|
||||
|
||||
**Version 2.0.5** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, originally
|
||||
**Version 2.0.6** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, originally
|
||||
forked from [Chat 2](https://github.com/Infiziert90/ChatTwo) (EUPL-1.2).
|
||||
|
||||
Hellion Chat is a privacy-first chat plugin that began as a fork of Chat 2. The core it grew from
|
||||
|
||||
@@ -11,6 +11,23 @@ releases as an overview and links to the release pages for details.
|
||||
|
||||
---
|
||||
|
||||
## [2.0.6] — 2026-09-20
|
||||
|
||||
One question from the Discord, small enough to ship on its own: are the pills
|
||||
along the bottom edge fixed in the code? They were.
|
||||
|
||||
### Added
|
||||
|
||||
- "Show status bar" under Window → Window style. Off, the bottom row of pills
|
||||
(channel, privacy state, counts, tells, clock, version) is gone and the chat
|
||||
body takes the space. On by default, so nothing changes until you flip it.
|
||||
With the bar hidden, screenshot mode and the privacy filter have no visible
|
||||
indicator; that is the trade the toggle makes. Suggested by Ashy.
|
||||
- A "Suggested by …" credit line under settings rows that came from a tester
|
||||
request, translated into all 25 languages. First used on the toggle above.
|
||||
|
||||
---
|
||||
|
||||
## [2.0.5] — 2026-08-23
|
||||
|
||||
Two tester reports about the same corner of the plugin: what an incoming tell does
|
||||
|
||||
@@ -12,6 +12,12 @@ be a poor fit for the plugin's privacy-first scope during brainstorming.
|
||||
|
||||
## Released
|
||||
|
||||
**v2.0.6 — Status bar, optional (2026-09-20)** came from a question on the Discord:
|
||||
whether the pills along the bottom edge were fixed in the code. They were. The bar
|
||||
has a toggle now under Window → Window style, on by default, and the row carries a
|
||||
"Suggested by" credit so the person who asked sees their name where the feature
|
||||
lives. The theme preview keeps its mock bar: it shows colours, not layout.
|
||||
|
||||
**v2.0.5 — Focus, and a way out (2026-08-23)** came out of two tester reports about
|
||||
the same corner. A tell arriving mid-sentence took the keyboard, which in this game
|
||||
sends the next keystrokes to the character; worse, it could address a half-typed line
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"Author": "Jon Kazama (Hellion Forge)",
|
||||
"Name": "Hellion Chat",
|
||||
"InternalName": "HellionChat",
|
||||
"AssemblyVersion": "2.0.5.0",
|
||||
"AssemblyVersion": "2.0.6.0",
|
||||
"Description": "A chat window that stores your own conversations and nothing else. Public chat, NPC dialogue, system messages and battle logs stay out of the database until you switch them on.\n\nRetention per channel, retroactive wipe, export to Markdown, JSON or CSV. Setup wizard with four profiles. 25 languages. Its own config and database.\n\nSupport: https://discord.gg/X9V7Kcv5gR",
|
||||
"ApplicableVersion": "any",
|
||||
"RepoUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat",
|
||||
@@ -20,12 +20,12 @@
|
||||
"CanUnloadAsync": false,
|
||||
"LoadPriority": 0,
|
||||
"Punchline": "Chat replacement for FFXIV that keeps your conversations and forgets the rest.",
|
||||
"Changelog": "**v2.0.5 — Focus, and a way out (2026-08-23)**\n\nTwo tester reports, both about the same corner: what a tell does to what you were doing, and what you can do about a tab once it exists.\n\n- **A tell arriving while you were typing took the keyboard.** The tab switched under you, and in this game that means the next thing you type walks your character around. It could also send your sentence to the wrong person: what you have typed belongs to the window, while the recipient is read off whichever tab is active when you press Enter — so a line meant for one person could leave addressed to whoever had just written. Nothing is revealed now while you are mid-sentence, in any mode. The tab still appears with its unread mark and waits for you.\n- **A tell tab could not be closed.** The entry was lost in the 2.0.0 window rebuild: it lived in the old menu, and the rebuilt one restored renaming, sounds, pop-outs and pinning but not this. Tell tabs are kept out of the settings editor on purpose, with a note pointing at the context menu — which could not close them either. Right-click any tab to close it. A pinned tell tab asks you to unpin it first, so one misclick cannot end a conversation you meant to keep.\n- **Two settings decided where a tell opens, and the older one always won.** \"Open new /tell tabs as a pop-out\" fired when the tab was created, a tick before the mode below it was ever asked — which is why that mode looked like it did nothing. They are one setting now and your existing choice carries over. \"Off\" went with them: it never stopped tell tabs from being created, that is the switch further up, it only stopped the jump to them, which is what the switch below it does.\n- **Closing a tab could break a pop-out you were using.** Re-anchoring always jumped to the first tab in the list, even when that tab was open in its own window, and stripped its tell binding on the way there.\n- **Smaller things.** \"Pop Out\" in the context menu was English on every client, as were the tell-open modes. The pinned-tab limit still pointed at a feature removed in May. Spanish had a word that does not exist, Greek had an untranslated one, Portuguese contradicted its own button. Segmented settings rows cut long labels in half. The last compiler warning in the project is gone.\n\n---\n\n**v2.0.4 — Housekeeping (2026-08-20)**\n\nNothing changes in how the plugin behaves. Two pieces of tidying that were overdue.\n\n- **The installer description was long, and one line of it was wrong.** It ran to 908 characters and opened by naming a category instead of saying what the plugin does. It also claimed 24 interface languages when there are 25, and the two manifests carried different one-line summaries, so the store listing and the plugin details showed different sentences.\n- **30 translation keys for the webinterface are gone.** That feature, its HTTP routes and its frontend left the code in May; the strings stayed behind in all 25 languages, along with a generated property for each. Every key was checked against the whole repository before anything was removed.\n\n---\n\n**v2.0.3 — Pop-out context menu, screenshot mode (2026-08-20)**\n\n- **The context menu never opened in a pop-out window.** Right-clicking a name or an item there did nothing at all. Every chat surface shares one popup state, and whichever window drew first cleared the menu it had not opened before the pop-out got its turn. The menu now stays with the window the click came from.\n- **Screenshot mode could not be turned off.** It is a saved setting, but neither of its two toggles wrote the change to the config file, so switching it off never survived a reload and the mode came back on at every plugin load. Both toggles save now. If it is stuck on for you, one click off is enough.\n- **Text the game colours itself could render invisible.** Some of those colours arrive without an alpha byte, and the byte order swap then left them fully transparent.\n\n---\n\n**v2.0.2 — Emotes out, placeholders fixed (2026-08-19)**\n\n- **BetterTTV emote support is gone.** Its shared-emote endpoint went behind authentication, and that was where nearly all of them came from — what remained was a 65-entry global set, eleven of which are on the known-broken list, so 54 mostly static images from Twitch's early days. Exactly one was animated, and that one wanted 492 frames and 37 MB of video memory. The plugin now makes no outbound network calls at all. Messages stored with emotes still read fine; they show the code that was typed.\n- **Five settings descriptions printed `{0}` instead of the plugin name.** All 25 languages were affected, English included — it just hid better there, since \"Hide {0} during cutscenes\" still scans as a sentence while German puts the placeholder first. A test now walks every resource string with a placeholder and fails if one reaches a widget unformatted.\n- **New preview images.** The ones in the plugin installer were Line truncated
|
||||
"Changelog": "**v2.0.6 — Status bar, optional (2026-09-20)**\n\nOne question from the Discord, small enough to ship on its own: are the pills along the bottom edge fixed in the code? They were.\n\n- **The status bar can be switched off.** The row at the bottom of the chat window (channel, privacy state, message counts, tells, clock, version) had no switch. Settings → Window → Window style has \"Show status bar\" now. Off, the chat body takes the space; on for everyone until you turn it off, so nothing changes by itself. One thing to know: the camera and the lock live in that row, so with the bar hidden, screenshot mode and the privacy filter give no visible sign.\n- **Suggested by Ashy ^.^, and it says so.** The toggle carries a \"Suggested by\" line under it. Whoever proposes a feature should see their name where the feature lives, not in a changelog they will never open. The line is translated into all 25 languages and is a generic key, ready for the next suggestion.\n\n---\n\n**v2.0.5 — Focus, and a way out (2026-08-23)**\n\nTwo tester reports, both about the same corner: what a tell does to what you were doing, and what you can do about a tab once it exists.\n\n- **A tell arriving while you were typing took the keyboard.** The tab switched under you, and in this game that means the next thing you type walks your character around. It could also send your sentence to the wrong person: what you have typed belongs to the window, while the recipient is read off whichever tab is active when you press Enter — so a line meant for one person could leave addressed to whoever had just written. Nothing is revealed now while you are mid-sentence, in any mode. The tab still appears with its unread mark and waits for you.\n- **A tell tab could not be closed.** The entry was lost in the 2.0.0 window rebuild: it lived in the old menu, and the rebuilt one restored renaming, sounds, pop-outs and pinning but not this. Tell tabs are kept out of the settings editor on purpose, with a note pointing at the context menu — which could not close them either. Right-click any tab to close it. A pinned tell tab asks you to unpin it first, so one misclick cannot end a conversation you meant to keep.\n- **Two settings decided where a tell opens, and the older one always won.** \"Open new /tell tabs as a pop-out\" fired when the tab was created, a tick before the mode below it was ever asked — which is why that mode looked like it did nothing. They are one setting now and your existing choice carries over. \"Off\" went with them: it never stopped tell tabs from being created, that is the switch further up, it only stopped the jump to them, which is what the switch below it does.\n- **Closing a tab could break a pop-out you were using.** Re-anchoring always jumped to the first tab in the list, even when that tab was open in its own window, and stripped its tell binding on the way there.\n- **Smaller things.** \"Pop Out\" in the context menu was English on every client, as were the tell-open modes. The pinned-tab limit still pointed at a feature removed in May. Spanish had a word that does not exist, Greek had an untranslated one, Portuguese contradicted its own button. Segmented settings rows cut long labels in half. The last compiler warning in the project is gone.\n\n---\n\n**v2.0.4 — Housekeeping (2026-08-20)**\n\nNothing changes in how the plugin behaves. Two pieces of tidying that were overdue.\n\n- **The installer description was long, and one line of it was wrong.** It ran to 908 characters and opened by naming a category instead of saying what the plugin does. It also claimed 24 interface languages when there are 25, and the two manifests carried different one-line summaries, so the store listing and the plugin details showed different sentences.\n- **30 translation keys for the webinterface are gone.** That feature, its HTTP routes and its frontend left the code in May; the strings stayed behind in all 25 languages, along with a generated property for each. Every key was checked against the whole repository before anything was removed.\n\n---\n\n**v2.0.3 — Pop-out context menu, screenshot mode (2026-08-20)**\n\n- **The context menu never opened in a pop-out window.** Right-clicking a name or an item there did nothing at all. Every chat surface shares one popup state, and whichever window drew first cleared the menu it had not opened before the pop-out got its turn. The menu now stays with the window the click came from.\n- **Screenshot mode could not be turned off.** It is a saved setting, but neither of its two toggles wrote the change to the config file, so switching it off never survived a reload and the mode came back on at every plugin load. Both toggles save now. If it is stuck on for you, one click off is enough.\n- **Text the game colours itself could render invisible.** Some of those colours arrive without an alpha byte, and the byte order swap then left them fully transparent.\n",
|
||||
"AcceptsFeedback": true,
|
||||
"DownloadLinkInstall": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v2.0.5/latest.zip",
|
||||
"DownloadLinkUpdate": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v2.0.5/latest.zip",
|
||||
"DownloadLinkTesting": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v2.0.5/latest.zip",
|
||||
"TestingAssemblyVersion": "2.0.5.0",
|
||||
"DownloadLinkInstall": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v2.0.6/latest.zip",
|
||||
"DownloadLinkUpdate": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v2.0.6/latest.zip",
|
||||
"DownloadLinkTesting": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v2.0.6/latest.zip",
|
||||
"TestingAssemblyVersion": "2.0.6.0",
|
||||
"IconUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/icon.png",
|
||||
"ImageUrls": [
|
||||
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/chatWindow.png",
|
||||
|
||||
Reference in new issue
Block a user