Make plugin compatible with AllaganTools 1.7.1.1+

This commit is contained in:
Liza 2024-10-20 15:11:25 +02:00
parent f80b694d60
commit 0b797bd08b
Signed by: liza
GPG Key ID: 7199F8D727D55F67
3 changed files with 11 additions and 11 deletions

View File

@ -3,27 +3,26 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
namespace Influx.AllaganTools;
internal sealed class FilterResult
{
private readonly object _delegate;
private readonly PropertyInfo _sortedItems;
private readonly IEnumerable _searchResultList;
public FilterResult(object @delegate)
public FilterResult(IEnumerable searchResultList)
{
ArgumentNullException.ThrowIfNull(@delegate);
_delegate = @delegate;
_sortedItems =
_delegate.GetType().GetProperty("SortedItems") ?? throw new MissingMemberException();
ArgumentNullException.ThrowIfNull(searchResultList);
_searchResultList = searchResultList;
}
public IReadOnlyList<SortingResult> GenerateFilteredList()
{
return ((IEnumerable)_sortedItems.GetValue(_delegate)!)
return _searchResultList
.Cast<object>()
.Select(x => x.GetType()
.GetField("_sortingResult", BindingFlags.Instance | BindingFlags.NonPublic)!
.GetValue(x)!)
.Select(x => new SortingResult(x))
.ToList();
}

View File

@ -1,4 +1,5 @@
using System;
using System.Collections;
using System.Reflection;
namespace Influx.AllaganTools;
@ -23,6 +24,6 @@ internal sealed class ListService : IListService
public FilterResult? GetFilterByKeyOrName(string keyOrName)
{
var f = _getListByKeyOrName.Invoke(_listService, [keyOrName]);
return f != null ? new FilterResult(_refreshList.Invoke(_listFilterService, [f])!) : null;
return f != null ? new FilterResult((IEnumerable)_refreshList.Invoke(_listFilterService, [f])!) : null;
}
}

View File

@ -1,6 +1,6 @@
<Project Sdk="Dalamud.NET.Sdk/10.0.0">
<PropertyGroup>
<Version>1.2</Version>
<Version>1.3</Version>
<OutputPath>dist</OutputPath>
</PropertyGroup>