From d730e2c03920763dcb28f7d6de77b83e99db6740 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Fri, 5 Jul 2024 21:48:01 +0200 Subject: [PATCH] Fix confirm check --- ARDiscard/.editorconfig | 2 +- ARDiscard/ARDiscard.csproj | 2 +- ARDiscard/AutoDiscardPlogon.cs | 4 +++- ARDiscard/GameData/GameStrings.cs | 21 +++++++++++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 ARDiscard/GameData/GameStrings.cs diff --git a/ARDiscard/.editorconfig b/ARDiscard/.editorconfig index 6a4af82..cec12bf 100644 --- a/ARDiscard/.editorconfig +++ b/ARDiscard/.editorconfig @@ -990,7 +990,7 @@ csharp_space_around_binary_operators = before_and_after csharp_using_directive_placement = outside_namespace:silent csharp_prefer_simple_using_statement = true:suggestion csharp_prefer_braces = true:silent -csharp_style_namespace_declarations = block_scoped:silent +csharp_style_namespace_declarations = file_scoped:silent csharp_style_prefer_method_group_conversion = true:silent csharp_style_prefer_top_level_statements = true:silent csharp_style_prefer_primary_constructors = true:suggestion diff --git a/ARDiscard/ARDiscard.csproj b/ARDiscard/ARDiscard.csproj index b981aba..cc988a8 100644 --- a/ARDiscard/ARDiscard.csproj +++ b/ARDiscard/ARDiscard.csproj @@ -1,6 +1,6 @@ - 6.0 + 6.1 dist diff --git a/ARDiscard/AutoDiscardPlogon.cs b/ARDiscard/AutoDiscardPlogon.cs index 53517ac..ba684e2 100644 --- a/ARDiscard/AutoDiscardPlogon.cs +++ b/ARDiscard/AutoDiscardPlogon.cs @@ -35,6 +35,7 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin private readonly ICommandManager _commandManager; private readonly InventoryUtils _inventoryUtils; private readonly IconCache _iconCache; + private readonly GameStrings _gameStrings; private readonly AutoRetainerApi _autoRetainerApi; [SuppressMessage("Usage", "CA2213:Disposable fields should be disposed", Justification = "Obsolete in ECommons")] @@ -79,6 +80,7 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin listManager.FinishInitialization(); _iconCache = new IconCache(textureProvider); + _gameStrings = new GameStrings(dataManager, pluginLog); _pluginInterface.UiBuilder.Draw += _windowSystem.Draw; _pluginInterface.UiBuilder.OpenMainUi += OpenDiscardUi; @@ -334,7 +336,7 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin var textNode = addon->UldManager.NodeList[15]->GetAsAtkTextNode(); var text = MemoryHelper.ReadSeString(&textNode->NodeText).ExtractText(); _pluginLog.Information($"YesNo prompt: {text}"); - if (text.StartsWith("Discard", StringComparison.Ordinal)) + if (_gameStrings.DiscardItem.IsMatch(text) || _gameStrings.DiscardCollectable.IsMatch(text)) { return addon; } diff --git a/ARDiscard/GameData/GameStrings.cs b/ARDiscard/GameData/GameStrings.cs new file mode 100644 index 0000000..a59b87d --- /dev/null +++ b/ARDiscard/GameData/GameStrings.cs @@ -0,0 +1,21 @@ +using System.Data; +using System.Text.RegularExpressions; +using Dalamud.Plugin.Services; +using LLib; +using Lumina.Excel.GeneratedSheets; + +namespace ARDiscard.GameData; + +internal sealed class GameStrings +{ + public GameStrings(IDataManager dataManager, IPluginLog pluginLog) + { + DiscardItem = dataManager.GetRegex(110, addon => addon.Text, pluginLog) + ?? throw new ConstraintException($"Unable to resolve {nameof(DiscardItem)}"); + DiscardCollectable = dataManager.GetRegex(153, addon => addon.Text, pluginLog) + ?? throw new ConstraintException($"Unable to resolve {nameof(DiscardCollectable)}"); + } + + public Regex DiscardItem { get; } + public Regex DiscardCollectable { get; } +}