From: Liza Carvelli Date: Sat, 5 Apr 2025 17:43:11 +0000 (+0200) Subject: Fix code that doesn't work on all languages X-Git-Tag: v5.6~6 X-Git-Url: https://git.jacobcasper.com/?a=commitdiff_plain;h=99e5c77b3c11d3fbb3b300137f27d6a533c22f50;p=Questionable.git Fix code that doesn't work on all languages --- diff --git a/LLib b/LLib index cbefdaff..72934290 160000 --- a/LLib +++ b/LLib @@ -1 +1 @@ -Subproject commit cbefdaffc21ab091586645a369e8f5779049c49c +Subproject commit 72934290c0049ffce6378e8128afbe546985d0be diff --git a/Questionable/Controller/GameUi/InteractionUiController.cs b/Questionable/Controller/GameUi/InteractionUiController.cs index afb17b1b..ef939db3 100644 --- a/Questionable/Controller/GameUi/InteractionUiController.cs +++ b/Questionable/Controller/GameUi/InteractionUiController.cs @@ -773,8 +773,8 @@ internal sealed class InteractionUiController : IDisposable .Where(x => x.RowId > 0 && x.TerritoryType.RowId == targetTerritoryId); foreach (var entry in warps) { - string excelName = entry.Name.ToString(); - string excelQuestion = entry.Question.ToString(); + string excelName = entry.Name.WithCertainMacroCodeReplacements(); + string excelQuestion = entry.Question.WithCertainMacroCodeReplacements(); if (!string.IsNullOrEmpty(excelQuestion) && GameFunctions.GameStringEquals(excelQuestion, actualPrompt)) { diff --git a/Questionable/Controller/MiniTaskController.cs b/Questionable/Controller/MiniTaskController.cs index a62a5e6d..99d4927c 100644 --- a/Questionable/Controller/MiniTaskController.cs +++ b/Questionable/Controller/MiniTaskController.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.RegularExpressions; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; @@ -27,7 +28,7 @@ internal abstract class MiniTaskController : IDisposable private readonly InterruptHandler _interruptHandler; private readonly ILogger _logger; - private readonly string _actionCanceledText; + private readonly Regex _actionCanceledText; private readonly string _eventCanceledText; private readonly string _cantExecuteDueToStatusText; @@ -41,7 +42,7 @@ internal abstract class MiniTaskController : IDisposable _condition = condition; _eventCanceledText = dataManager.GetString(1318, x => x.Text)!; - _actionCanceledText = dataManager.GetString(1314, x => x.Text)!; + _actionCanceledText = dataManager.GetRegex(1314, x => x.Text)!; _cantExecuteDueToStatusText = dataManager.GetString(7728, x => x.Text)!; _interruptHandler.Interrupted += HandleInterruption; } @@ -220,7 +221,7 @@ internal abstract class MiniTaskController : IDisposable if (!isHandled) { - if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) && + if (_actionCanceledText.IsMatch(message.TextValue) && !_condition[ConditionFlag.InFlight] && _taskQueue.CurrentTaskExecutor?.ShouldInterruptOnDamage() == true) InterruptQueueWithCombat(); diff --git a/Questionable/Functions/ExcelFunctions.cs b/Questionable/Functions/ExcelFunctions.cs index 48a9d105..88c61189 100644 --- a/Questionable/Functions/ExcelFunctions.cs +++ b/Questionable/Functions/ExcelFunctions.cs @@ -30,7 +30,7 @@ internal sealed class ExcelFunctions if (isRegex) return new StringOrRegex(seString.ToRegex()); else - return new StringOrRegex(seString?.ToDalamudString().ToString()); + return new StringOrRegex(seString?.WithCertainMacroCodeReplacements()); } public ReadOnlySeString? GetRawDialogueText(Quest? currentQuest, string? excelSheetName, string key)