From cea3113a2e4efb678c53946f821ab63e8376fd69 Mon Sep 17 00:00:00 2001 From: Anna Date: Fri, 26 Jul 2024 03:56:43 -0400 Subject: [PATCH] fix: handle low mana and missing mana gauge --- Plugin.cs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Plugin.cs b/Plugin.cs index e3e8dcc..6775dbc 100644 --- a/Plugin.cs +++ b/Plugin.cs @@ -281,9 +281,14 @@ public class Plugin : IDalamudPlugin { var right = (AtkTextNode*) unit.MPGaugeBar->GetTextNodeById(3); var chara = member.Object; + var hasLeft = left != null; var hasRight = right != null; var hasChara = chara != null; + if (!hasLeft) { + return; + } + left->TextColor = new ByteColor { RGBA = 0xFFFFFFFF, }; @@ -292,8 +297,13 @@ public class Plugin : IDalamudPlugin { ? chara->Mana.ToString(CultureInfo.InvariantCulture) : "???"; if (hasRight) { - left->SetText(manaString[..^2]); - right->SetText(manaString[^2..]); + if (manaString.Length <= 1) { + left->SetText(""); + right->SetText(manaString); + } else { + left->SetText(manaString[..^2]); + right->SetText(manaString[^2..]); + } } else { left->SetText(manaString); } @@ -364,13 +374,16 @@ public class Plugin : IDalamudPlugin { if (this.Config.Mode == MeterMode.Mana) { var left = (AtkTextNode*) member.MPGaugeBar->GetTextNodeById(2); var right = (AtkTextNode*) member.MPGaugeBar->GetTextNodeById(3); + var hasLeft = left != null; var hasRight = right != null; var hasChara = chara != null; + if (!hasLeft) { + return; + } + if (this.Config.Alternate && !this._showDps) { - var isCaster = hasChara - ? Array.IndexOf(this._manaUsers, chara->ClassJob) != -1 - : false; + var isCaster = hasChara && Array.IndexOf(this._manaUsers, chara->ClassJob) != -1; if (!this.Config.ManaModeAlternateOnlyManaUsers || isCaster) { left->TextColor = new ByteColor { RGBA = 0xFFFFFFFF,