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_prefer_simple_using_statement = true:suggestion
|
||||
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_top_level_statements = true:silent
|
||||
csharp_style_prefer_primary_constructors = true:suggestion
|
||||
|
@ -1,6 +1,6 @@
|
||||
<Project Sdk="Dalamud.NET.Sdk/9.0.2">
|
||||
<PropertyGroup>
|
||||
<Version>6.3</Version>
|
||||
<Version>6.0</Version>
|
||||
<OutputPath>dist</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -35,7 +35,6 @@ 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")]
|
||||
@ -54,7 +53,7 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
||||
ArgumentNullException.ThrowIfNull(dataManager);
|
||||
|
||||
_pluginInterface = pluginInterface;
|
||||
_configuration = (Configuration?)_pluginInterface.GetPluginConfig() ?? Configuration.CreateNew();
|
||||
_configuration = (Configuration?)_pluginInterface.GetPluginConfig() ?? new Configuration();
|
||||
MigrateConfiguration(_configuration);
|
||||
_chatGui = chatGui;
|
||||
_clientState = clientState;
|
||||
@ -80,7 +79,6 @@ 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;
|
||||
@ -124,14 +122,6 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
||||
configuration.Version = 2;
|
||||
_pluginInterface.SavePluginConfig(configuration);
|
||||
}
|
||||
|
||||
if (configuration.Version == 2)
|
||||
{
|
||||
if (!configuration.BlacklistedItems.Contains(2820))
|
||||
configuration.BlacklistedItems.Add(2820);
|
||||
configuration.Version = 3;
|
||||
_pluginInterface.SavePluginConfig(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckRetainerPostProcess(string retainerName) =>
|
||||
@ -344,7 +334,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 (_gameStrings.DiscardItem.IsMatch(text) || _gameStrings.DiscardCollectable.IsMatch(text))
|
||||
if (text.StartsWith("Discard", StringComparison.Ordinal))
|
||||
{
|
||||
return addon;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ namespace ARDiscard;
|
||||
|
||||
internal sealed class Configuration : IPluginConfiguration
|
||||
{
|
||||
public int Version { get; set; } = 3;
|
||||
public int Version { get; set; } = 2;
|
||||
public bool RunAfterVenture { get; set; }
|
||||
public bool RunBeforeLogout { get; set; }
|
||||
public List<uint> DiscardingItems { get; set; } = new();
|
||||
@ -45,12 +45,4 @@ internal sealed class Configuration : IPluginConfiguration
|
||||
public bool GroupByCategory { get; set; } = true;
|
||||
public bool ShowIcons { get; set; } = true;
|
||||
}
|
||||
|
||||
public static Configuration CreateNew()
|
||||
{
|
||||
return new Configuration
|
||||
{
|
||||
BlacklistedItems = [2820]
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -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; }
|
||||
}
|
@ -62,14 +62,6 @@ internal sealed class ItemCache
|
||||
cachedItemInfo.CanBeBoughtFromCalamitySalvager = true;
|
||||
}
|
||||
|
||||
foreach (var collectableItem in dataManager.GetExcelSheet<CollectablesShopItem>()!)
|
||||
{
|
||||
if (collectableItem.RowId == 0)
|
||||
continue;
|
||||
|
||||
listManager.AddToInternalWhitelist(collectableItem.Item.Row);
|
||||
}
|
||||
|
||||
// only look at msq + regional side quests
|
||||
foreach (var quest in dataManager.GetExcelSheet<Quest>()!.Where(x => x.JournalGenre.Value?.JournalCategory.Value?.JournalSection.Row is 0 or 1 or 3))
|
||||
{
|
||||
@ -80,14 +72,8 @@ internal sealed class ItemCache
|
||||
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)
|
||||
{
|
||||
return quest.Row > 0 &&
|
||||
|
@ -11,6 +11,8 @@ internal sealed class ListManager : IListManager
|
||||
/// </summary>
|
||||
private ISet<uint> _blacklistedItems = new List<uint>
|
||||
{
|
||||
2820, // red onion helm
|
||||
|
||||
16039, // ala mhigan earrings
|
||||
24589, // aetheryte earrings
|
||||
33648, // menphina's earrings
|
||||
|
@ -234,8 +234,7 @@ internal sealed class ConfigWindow : LWindow
|
||||
if (ImGui.InputInt("Ignore items >= this ilvl (Armoury Chest only)",
|
||||
ref maximumItemLevel))
|
||||
{
|
||||
_configuration.Armoury.MaximumGearItemLevel =
|
||||
Math.Max(0, Math.Min(_itemCache.MaxDungeonItemLevel, maximumItemLevel));
|
||||
_configuration.Armoury.MaximumGearItemLevel = Math.Max(0, Math.Min(625, maximumItemLevel));
|
||||
Save();
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ namespace ARDiscard.Windows
|
||||
protected override string RightSideLabel => "Items that will be automatically discarded";
|
||||
internal required ExcludedListTab ExcludedTab { private get; init; }
|
||||
|
||||
public IEnumerable<uint> ToSavedItems()
|
||||
public override IEnumerable<uint> ToSavedItems()
|
||||
{
|
||||
SelectedItems.RemoveAll(x => ExcludedTab.IsBlacklistedInConfiguration(x.ItemId));
|
||||
return SelectedItems.Select(x => x.ItemId);
|
||||
|
@ -123,12 +123,14 @@ internal sealed class DiscardWindow : LWindow
|
||||
{
|
||||
if (_configuration.Preview.ShowIcons)
|
||||
{
|
||||
using IDalamudTextureWrap? icon = _iconCache.GetIcon(displayedItem.IconId);
|
||||
if (icon != null)
|
||||
ISharedImmediateTexture icon = _iconCache.GetIcon(displayedItem.IconId);
|
||||
if (icon.TryGetWrap(out IDalamudTextureWrap? wrap, out _))
|
||||
{
|
||||
ImGui.Image(icon.ImGuiHandle, new Vector2(23, 23));
|
||||
ImGui.Image(wrap.ImGuiHandle, new Vector2(23, 23));
|
||||
ImGui.SameLine();
|
||||
ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 3);
|
||||
|
||||
wrap.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ internal sealed class ExcludedListTab : ItemListTab
|
||||
|
||||
protected override string RightSideLabel => "Items that will never be discarded";
|
||||
|
||||
public IEnumerable<uint> ToSavedItems()
|
||||
public override IEnumerable<uint> ToSavedItems()
|
||||
{
|
||||
return SelectedItems
|
||||
.Select(x => x.ItemId)
|
||||
|
@ -26,6 +26,8 @@ internal abstract class ItemListTab
|
||||
protected abstract string RightSideLabel { get; }
|
||||
protected List<(uint ItemId, string Name)> SelectedItems { get; } = new();
|
||||
|
||||
public abstract IEnumerable<uint> ToSavedItems();
|
||||
|
||||
public void Draw()
|
||||
{
|
||||
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) AsRightSideDisplay(uint itemId, string name) => (name, true);
|
||||
|
||||
protected void Save() => _parent.Save();
|
||||
|
||||
private void UpdateResults()
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 1c8745ef2757585d2683b4a83c44c8db81ff8955
|
||||
Subproject commit a63c8e7154e272374ffa03d5c801736d4229e38a
|
2
ECommons
2
ECommons
@ -1 +1 @@
|
||||
Subproject commit 07c07e09101e0c8a5f770dbea2ca6eafea5ec705
|
||||
Subproject commit 38080f2a3733aa19b6928f4d2984fac7b9a7fab7
|
2
LLib
2
LLib
@ -1 +1 @@
|
||||
Subproject commit fde09c705b648f03c287814191a554f0a4b92cc4
|
||||
Subproject commit 7027d291efbbff6a55944dd521d3907210ddecbe
|
Loading…
Reference in New Issue
Block a user