Compare commits
No commits in common. "master" and "v6.0" have entirely different histories.
|
@ -990,7 +990,7 @@ csharp_space_around_binary_operators = before_and_after
|
||||||
csharp_using_directive_placement = outside_namespace:silent
|
csharp_using_directive_placement = outside_namespace:silent
|
||||||
csharp_prefer_simple_using_statement = true:suggestion
|
csharp_prefer_simple_using_statement = true:suggestion
|
||||||
csharp_prefer_braces = true:silent
|
csharp_prefer_braces = true:silent
|
||||||
csharp_style_namespace_declarations = file_scoped:silent
|
csharp_style_namespace_declarations = block_scoped:silent
|
||||||
csharp_style_prefer_method_group_conversion = true:silent
|
csharp_style_prefer_method_group_conversion = true:silent
|
||||||
csharp_style_prefer_top_level_statements = true:silent
|
csharp_style_prefer_top_level_statements = true:silent
|
||||||
csharp_style_prefer_primary_constructors = true:suggestion
|
csharp_style_prefer_primary_constructors = true:suggestion
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Dalamud.NET.Sdk/9.0.2">
|
<Project Sdk="Dalamud.NET.Sdk/9.0.2">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>6.2</Version>
|
<Version>6.0</Version>
|
||||||
<OutputPath>dist</OutputPath>
|
<OutputPath>dist</OutputPath>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,6 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
||||||
private readonly ICommandManager _commandManager;
|
private readonly ICommandManager _commandManager;
|
||||||
private readonly InventoryUtils _inventoryUtils;
|
private readonly InventoryUtils _inventoryUtils;
|
||||||
private readonly IconCache _iconCache;
|
private readonly IconCache _iconCache;
|
||||||
private readonly GameStrings _gameStrings;
|
|
||||||
private readonly AutoRetainerApi _autoRetainerApi;
|
private readonly AutoRetainerApi _autoRetainerApi;
|
||||||
|
|
||||||
[SuppressMessage("Usage", "CA2213:Disposable fields should be disposed", Justification = "Obsolete in ECommons")]
|
[SuppressMessage("Usage", "CA2213:Disposable fields should be disposed", Justification = "Obsolete in ECommons")]
|
||||||
|
@ -80,7 +79,6 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
||||||
listManager.FinishInitialization();
|
listManager.FinishInitialization();
|
||||||
|
|
||||||
_iconCache = new IconCache(textureProvider);
|
_iconCache = new IconCache(textureProvider);
|
||||||
_gameStrings = new GameStrings(dataManager, pluginLog);
|
|
||||||
|
|
||||||
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
|
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
|
||||||
_pluginInterface.UiBuilder.OpenMainUi += OpenDiscardUi;
|
_pluginInterface.UiBuilder.OpenMainUi += OpenDiscardUi;
|
||||||
|
@ -336,7 +334,7 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
||||||
var textNode = addon->UldManager.NodeList[15]->GetAsAtkTextNode();
|
var textNode = addon->UldManager.NodeList[15]->GetAsAtkTextNode();
|
||||||
var text = MemoryHelper.ReadSeString(&textNode->NodeText).ExtractText();
|
var text = MemoryHelper.ReadSeString(&textNode->NodeText).ExtractText();
|
||||||
_pluginLog.Information($"YesNo prompt: {text}");
|
_pluginLog.Information($"YesNo prompt: {text}");
|
||||||
if (_gameStrings.DiscardItem.IsMatch(text) || _gameStrings.DiscardCollectable.IsMatch(text))
|
if (text.StartsWith("Discard", StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
return addon;
|
return addon;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
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<Addon>(110, addon => addon.Text, pluginLog)
|
|
||||||
?? throw new ConstraintException($"Unable to resolve {nameof(DiscardItem)}");
|
|
||||||
DiscardCollectable = dataManager.GetRegex<Addon>(153, addon => addon.Text, pluginLog)
|
|
||||||
?? throw new ConstraintException($"Unable to resolve {nameof(DiscardCollectable)}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public Regex DiscardItem { get; }
|
|
||||||
public Regex DiscardCollectable { get; }
|
|
||||||
}
|
|
|
@ -72,14 +72,8 @@ internal sealed class ItemCache
|
||||||
listManager.AddToInternalWhitelist(item.RowId);
|
listManager.AddToInternalWhitelist(item.RowId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MaxDungeonItemLevel = _items.Values.Where(x => x.Rarity == 2)
|
|
||||||
.Select(x => (int)x.ILvl)
|
|
||||||
.Max();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int MaxDungeonItemLevel { get; }
|
|
||||||
|
|
||||||
private bool CanDiscardItemsFromQuest(LazyRow<Quest> quest)
|
private bool CanDiscardItemsFromQuest(LazyRow<Quest> quest)
|
||||||
{
|
{
|
||||||
return quest.Row > 0 &&
|
return quest.Row > 0 &&
|
||||||
|
|
|
@ -234,8 +234,7 @@ internal sealed class ConfigWindow : LWindow
|
||||||
if (ImGui.InputInt("Ignore items >= this ilvl (Armoury Chest only)",
|
if (ImGui.InputInt("Ignore items >= this ilvl (Armoury Chest only)",
|
||||||
ref maximumItemLevel))
|
ref maximumItemLevel))
|
||||||
{
|
{
|
||||||
_configuration.Armoury.MaximumGearItemLevel =
|
_configuration.Armoury.MaximumGearItemLevel = Math.Max(0, Math.Min(625, maximumItemLevel));
|
||||||
Math.Max(0, Math.Min(_itemCache.MaxDungeonItemLevel, maximumItemLevel));
|
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace ARDiscard.Windows
|
||||||
protected override string RightSideLabel => "Items that will be automatically discarded";
|
protected override string RightSideLabel => "Items that will be automatically discarded";
|
||||||
internal required ExcludedListTab ExcludedTab { private get; init; }
|
internal required ExcludedListTab ExcludedTab { private get; init; }
|
||||||
|
|
||||||
public IEnumerable<uint> ToSavedItems()
|
public override IEnumerable<uint> ToSavedItems()
|
||||||
{
|
{
|
||||||
SelectedItems.RemoveAll(x => ExcludedTab.IsBlacklistedInConfiguration(x.ItemId));
|
SelectedItems.RemoveAll(x => ExcludedTab.IsBlacklistedInConfiguration(x.ItemId));
|
||||||
return SelectedItems.Select(x => x.ItemId);
|
return SelectedItems.Select(x => x.ItemId);
|
||||||
|
|
|
@ -20,7 +20,7 @@ internal sealed class ExcludedListTab : ItemListTab
|
||||||
|
|
||||||
protected override string RightSideLabel => "Items that will never be discarded";
|
protected override string RightSideLabel => "Items that will never be discarded";
|
||||||
|
|
||||||
public IEnumerable<uint> ToSavedItems()
|
public override IEnumerable<uint> ToSavedItems()
|
||||||
{
|
{
|
||||||
return SelectedItems
|
return SelectedItems
|
||||||
.Select(x => x.ItemId)
|
.Select(x => x.ItemId)
|
||||||
|
|
|
@ -26,6 +26,8 @@ internal abstract class ItemListTab
|
||||||
protected abstract string RightSideLabel { get; }
|
protected abstract string RightSideLabel { get; }
|
||||||
protected List<(uint ItemId, string Name)> SelectedItems { get; } = new();
|
protected List<(uint ItemId, string Name)> SelectedItems { get; } = new();
|
||||||
|
|
||||||
|
public abstract IEnumerable<uint> ToSavedItems();
|
||||||
|
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
var ws = ImGui.GetWindowSize();
|
var ws = ImGui.GetWindowSize();
|
||||||
|
@ -141,6 +143,8 @@ internal abstract class ItemListTab
|
||||||
|
|
||||||
protected virtual (string Name, bool Enabled) AsLeftSideDisplay(uint itemId, string name) => (name, true);
|
protected virtual (string Name, bool Enabled) AsLeftSideDisplay(uint itemId, string name) => (name, true);
|
||||||
|
|
||||||
|
protected virtual (string Name, bool Enabled) AsRightSideDisplay(uint itemId, string name) => (name, true);
|
||||||
|
|
||||||
protected void Save() => _parent.Save();
|
protected void Save() => _parent.Save();
|
||||||
|
|
||||||
private void UpdateResults()
|
private void UpdateResults()
|
||||||
|
|
Loading…
Reference in New Issue