Compare commits

...

No commits in common. "main" and "149d1b806d2fb94b1aece1b55449d460563bc0f1" have entirely different histories.

7 changed files with 41 additions and 68 deletions

View File

@ -1,59 +1,49 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7-windows</TargetFramework>
<Version>1.2.7</Version>
<TargetFramework>net5-windows</TargetFramework>
<Version>1.2.1</Version>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup>
<DalamudLibPath>$(AppData)\XIVLauncher\addon\Hooks\dev</DalamudLibPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))'">
<DalamudLibPath>$(DALAMUD_HOME)</DalamudLibPath>
</PropertyGroup>
<PropertyGroup Condition="'$(IsCI)' == 'true'">
<DalamudLibPath>$(HOME)/dalamud</DalamudLibPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="Dalamud">
<HintPath>$(DalamudLibPath)\Dalamud.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Dalamud.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="FFXIVClientStructs">
<HintPath>$(DalamudLibPath)\FFXIVClientStructs.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\FFXIVClientStructs.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ImGui.NET">
<HintPath>$(DalamudLibPath)\ImGui.NET.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGui.NET.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ImGuiScene">
<HintPath>$(DalamudLibPath)\ImGuiScene.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGuiScene.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Lumina">
<HintPath>$(DalamudLibPath)\Lumina.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Lumina.Excel">
<HintPath>$(DalamudLibPath)\Lumina.Excel.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.Excel.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="DalamudPackager" Version="2.1.12"/>
<PackageReference Include="XivCommon" Version="9.0.0"/>
<PackageReference Include="DalamudPackager" Version="2.1.2"/>
<PackageReference Include="XivCommon" Version="3.0.1"/>
</ItemGroup>
<ItemGroup>
<Content Include="..\icon.png" Link="images/icon.png" CopyToOutputDirectory="PreserveNewest" Visible="false"/>
</ItemGroup>
</Project>

View File

@ -1,4 +1,4 @@
author: Anna
author: ascclemens
name: Better Party Finder
punchline: Use advanced Party Finder filter presets.
description: |-
@ -12,4 +12,3 @@ description: |-
- Remove PFs above maximum item level
- Filter on item level range
- Filter on multiple jobs and slots (ex. MCH + GNB available)
repo_url: https://git.anna.lgbt/anna/BetterPartyFinder

View File

@ -25,7 +25,7 @@ namespace BetterPartyFinder {
SeString msg = "Party description: ";
msg.Payloads.AddRange(listing.Description.Payloads);
this.Plugin.ChatGui.Print(new XivChatEntry {
this.Plugin.ChatGui.PrintChat(new XivChatEntry {
Name = "Better Party Finder",
Type = XivChatType.SystemMessage,
Message = msg,

View File

@ -1,33 +1,37 @@
using Dalamud.IoC;
using Dalamud.Data;
using Dalamud.Game.ClientState;
using Dalamud.Game.Command;
using Dalamud.Game.Gui;
using Dalamud.Game.Gui.PartyFinder;
using Dalamud.IoC;
using Dalamud.Plugin;
using Dalamud.Plugin.Services;
using XivCommon;
namespace BetterPartyFinder {
// ReSharper disable once ClassNeverInstantiated.Global
public class Plugin : IDalamudPlugin {
internal static string Name => "Better Party Finder";
public string Name => "Better Party Finder";
[PluginService]
internal DalamudPluginInterface Interface { get; init; } = null!;
[PluginService]
internal IChatGui ChatGui { get; init; } = null!;
internal ChatGui ChatGui { get; init; } = null!;
[PluginService]
internal IClientState ClientState { get; init; } = null!;
internal ClientState ClientState { get; init; } = null!;
[PluginService]
internal ICommandManager CommandManager { get; init; } = null!;
internal CommandManager CommandManager { get; init; } = null!;
[PluginService]
internal IDataManager DataManager { get; init; } = null!;
internal DataManager DataManager { get; init; } = null!;
[PluginService]
internal IGameGui GameGui { get; init; } = null!;
internal GameGui GameGui { get; init; } = null!;
[PluginService]
internal IPartyFinderGui PartyFinderGui { get; init; } = null!;
internal PartyFinderGui PartyFinderGui { get; init; } = null!;
internal Configuration Config { get; }
private Filter Filter { get; }
@ -40,7 +44,7 @@ namespace BetterPartyFinder {
this.Config = Configuration.Load(this) ?? new Configuration();
this.Config.Initialise(this);
this.Common = new XivCommonBase(this.Interface, Hooks.PartyFinder);
this.Common = new XivCommonBase(Hooks.PartyFinder);
this.Filter = new Filter(this);
this.JoinHandler = new JoinHandler(this);
this.Ui = new PluginUi(this);

View File

@ -2,11 +2,10 @@
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using Dalamud.Data;
using Dalamud.Game.Gui.PartyFinder.Types;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Interface;
using Dalamud.Interface.Utility;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Component.GUI;
using ImGuiNET;
using Lumina.Excel.GeneratedSheets;
@ -89,7 +88,7 @@ namespace BetterPartyFinder {
private void DrawSettingsWindow() {
ImGui.SetNextWindowSize(new Vector2(-1f, -1f), ImGuiCond.FirstUseEver);
if (!this.SettingsVisible || !ImGui.Begin($"{Plugin.Name} settings", ref this._settingsVisible)) {
if (!this.SettingsVisible || !ImGui.Begin($"{this.Plugin.Name} settings", ref this._settingsVisible)) {
return;
}
@ -142,7 +141,7 @@ namespace BetterPartyFinder {
return;
}
if (!ImGui.Begin(Plugin.Name, ref this._visible, ImGuiWindowFlags.NoDocking)) {
if (!ImGui.Begin(this.Plugin.Name, ref this._visible, ImGuiWindowFlags.NoDocking)) {
if (ImGui.IsWindowCollapsed() && addon != null && addon->IsVisible) {
// wait until addon is initialised to show
var rootNode = addon->RootNode;
@ -363,7 +362,7 @@ namespace BetterPartyFinder {
if (ImGui.BeginChild("duty-selection", new Vector2(-1f, -1f))) {
var duties = this.Plugin.DataManager.GetExcelSheet<ContentFinderCondition>()!
.Where(cf => cf.Unknown30)
.Where(cf => cf.Unknown29)
.Where(cf => AllowedContentTypes.Contains(cf.ContentType.Row));
var searchQuery = this.DutySearchQuery.Trim();
@ -679,7 +678,7 @@ namespace BetterPartyFinder {
}
internal static class UiCategoryExt {
internal static string? Name(this UiCategory category, IDataManager data) {
internal static string? Name(this UiCategory category, DataManager data) {
var ct = data.GetExcelSheet<ContentType>()!;
var addon = data.GetExcelSheet<Addon>()!;
@ -703,7 +702,7 @@ namespace BetterPartyFinder {
};
}
internal static bool ListingMatches(this UiCategory category, IDataManager data, PartyFinderListing listing) {
internal static bool ListingMatches(this UiCategory category, DataManager data, PartyFinderListing listing) {
var cr = data.GetExcelSheet<ContentRoulette>()!;
var isDuty = listing.Category == DutyCategory.Duty;
@ -713,13 +712,13 @@ namespace BetterPartyFinder {
return category switch {
UiCategory.None => isOther && isDuty && listing.RawDuty == 0,
UiCategory.DutyRoulette => listing.DutyType == DutyType.Roulette && isDuty && (!cr.GetRow(listing.RawDuty)?.IsPvP ?? false),
UiCategory.DutyRoulette => listing.DutyType == DutyType.Roulette && isDuty && (!cr.GetRow(listing.RawDuty)?.Unknown10 ?? false),
UiCategory.Dungeons => isNormalDuty && listing.Duty.Value.ContentType.Row == (uint) ContentType2.Dungeons,
UiCategory.Guildhests => isNormalDuty && listing.Duty.Value.ContentType.Row == (uint) ContentType2.Guildhests,
UiCategory.Trials => isNormalDuty && !listing.Duty.Value.HighEndDuty && listing.Duty.Value.ContentType.Row == (uint) ContentType2.Trials,
UiCategory.Raids => isNormalDuty && !listing.Duty.Value.HighEndDuty && listing.Duty.Value.ContentType.Row == (uint) ContentType2.Raids,
UiCategory.HighEndDuty => isNormalDuty && listing.Duty.Value.HighEndDuty,
UiCategory.Pvp => listing.DutyType == DutyType.Roulette && isDuty && (cr.GetRow(listing.RawDuty)?.IsPvP ?? false)
UiCategory.Pvp => listing.DutyType == DutyType.Roulette && isDuty && (cr.GetRow(listing.RawDuty)?.Unknown10 ?? false)
|| isNormalDuty && listing.Duty.Value.ContentType.Row == (uint) ContentType2.Pvp,
UiCategory.QuestBattles => isOther && listing.Category == DutyCategory.QuestBattles,
UiCategory.Fates => isOther && listing.Category == DutyCategory.Fates,

View File

@ -1,15 +1,15 @@
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Dalamud.Data;
using Dalamud.Game.ClientState.Objects.SubKinds;
using Dalamud.Plugin.Services;
using Lumina.Excel.GeneratedSheets;
namespace BetterPartyFinder {
public static class Util {
internal static uint MaxItemLevel { get; private set; }
internal static void CalculateMaxItemLevel(IDataManager data) {
internal static void CalculateMaxItemLevel(DataManager data) {
if (MaxItemLevel > 0) {
return;
}
@ -28,7 +28,7 @@ namespace BetterPartyFinder {
return CultureInfo.InvariantCulture.CompareInfo.IndexOf(haystack, needle, CompareOptions.IgnoreCase) >= 0;
}
internal static IEnumerable<World> WorldsOnDataCentre(IDataManager data, PlayerCharacter character) {
internal static IEnumerable<World> WorldsOnDataCentre(DataManager data, PlayerCharacter character) {
var dcRow = character.HomeWorld.GameData.DataCenter.Row;
return data.GetExcelSheet<World>()!
.Where(world => world.IsPublic && world.DataCenter.Row == dcRow);

View File

@ -1,19 +0,0 @@
{
"version": 1,
"dependencies": {
"net7.0-windows7.0": {
"DalamudPackager": {
"type": "Direct",
"requested": "[2.1.12, )",
"resolved": "2.1.12",
"contentHash": "Sc0PVxvgg4NQjcI8n10/VfUQBAS4O+Fw2pZrAqBdRMbthYGeogzu5+xmIGCGmsEZ/ukMOBuAqiNiB5qA3MRalg=="
},
"XivCommon": {
"type": "Direct",
"requested": "[9.0.0, )",
"resolved": "9.0.0",
"contentHash": "avaBp3FmSCi/PiQhntCeBDYOHejdyTWmFtz4pRBVQQ8vHkmRx+YTk1la9dkYBMlXxRXKckEdH1iI1Fu61JlE7w=="
}
}
}
}