BetterPartyFinder/BetterPartyFinder.csproj --- XML
2 2
3 <PropertyGroup> 3 <PropertyGroup>
4 <TargetFramework>net8-windows</TargetFramework> 4 <TargetFramework>net8-windows</TargetFramework>
5 <Version>1.4.9</Version> 5 <Version>1.5.1</Version>
6 <LangVersion>latest</LangVersion> 6 <LangVersion>latest</LangVersion>
7 <Nullable>enable</Nullable> 7 <Nullable>enable</Nullable>
8 <ProduceReferenceAssembly>false</ProduceReferenceAssembly> 8 <ProduceReferenceAssembly>false</ProduceReferenceAssembly>
BetterPartyFinder/CategoryHelper.cs --- 1/4 --- C#
21 21 DeepDungeons,
22 22 AdventuringForays,
23 23 VCDungeon,
.. 24 Chaotic,
24 25 }
25 26
26 27 internal static class UiCategoryExt
BetterPartyFinder/CategoryHelper.cs --- 2/4 --- C#
48 49 UiCategory.DeepDungeons => ct.GetRow((uint) ContentType2.DeepDungeons).Name.ExtractText(),
49 50 UiCategory.AdventuringForays => addon.GetRow(2_307).Text.ExtractText(),
50 51 UiCategory.VCDungeon => ct.GetRow((uint)ContentType2.VCDungeon).Name.ExtractText(),
.. 52 UiCategory.Chaotic => ct.GetRow((uint)ContentType2.Chaotic).Name.ExtractText(),
51 53 _ => null,
52 54 };
53 55 }
BetterPartyFinder/CategoryHelper.cs --- 3/4 --- C#
83 85 UiCategory.DeepDungeons => isOther && listing.Category == DutyCategory.DeepDungeon,
84 86 UiCategory.AdventuringForays => isNormal && listing.Category == DutyCategory.FieldOperation,
85 87 UiCategory.VCDungeon => isNormal && listing.Duty.Value.ContentType.RowId == (uint) ContentType2.VCDungeon,
.. 88 UiCategory.Chaotic => isNormalDuty && listing.Duty.Value.ContentType.RowId == (uint) ContentType2.Chaotic,
86 89 _ => false,
87 90 };
88 91
BetterPartyFinder/CategoryHelper.cs --- 4/4 --- C#
118 121 Eureka = 26,
119 122 UltimateRaids = 28,
120 123 VCDungeon = 30,
... 124 Chaotic = 37,
121 125 }
122 126 }
BetterPartyFinder/Util.cs --- 1/2 --- C#
1 1 using System.Collections.Generic;
2 2 using System.Globalization;
3 3 using System.Linq;
. 4 using System.Runtime.CompilerServices;
4 5 using Dalamud.Game.ClientState.Objects.SubKinds;
5 6 using Lumina.Excel.Sheets;
6 7
BetterPartyFinder/Util.cs --- 2/2 --- C#
30 31
31 internal static IEnumerable<World> WorldsOnDataCentre(IPlayerCharacter character) 32 internal static IEnumerable<World> WorldsOnDataCentre(IPlayerCharacter character)
32 { 33 {
33 var dcRow = character.HomeWorld.Value.DataCenter.RowId; 34 var dcRow = character.HomeWorld.Value.DataCenter.Value.Region;
34 return Plugin.DataManager.GetExcelSheet<World>().Where(world => world.IsPublic && world.DataCenter.RowId == 35 return Plugin.DataManager.GetExcelSheet<World>().Where(world => world.IsPublic && world.DataCenter.Value.Reg
.. dcRow); .. ion == dcRow);
35 } 36 }
.. 37
.. 38 /// <summary> Iterate over enumerables with additional index. </summary>
.. 39 [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
.. 40 public static IEnumerable<(T Value, int Index)> WithIndex<T>(this IEnumerable<T> list)
.. 41 => list.Select((x, i) => (x, i));
36 } 42 }
BetterPartyFinder/Windows/Main/MainWindow.Duties.cs --- C#
19 19 21, // Deep Dungeons
20 20 26, // Eureka
21 21 28, // Ultimate Raids
22 22 30, // V&C Dungeon Finder
.. 23 37 // Chaotic
23 24 ];
24 25
25 26 private void DrawDutiesTab(ConfigurationFilter filter)
BetterPartyFinder/Windows/Main/MainWindow.Players.cs --- C#
23 23
24 ImGui.SameLine(); 24 ImGui.SameLine();
25 25
26 var worlds = Util.WorldsOnDataCentre(player).OrderBy(world => world.Name.ExtractText()).ToList(); 26 var worlds = Util.WorldsOnDataCentre(player).OrderByDescending(world => world.DataCenter.RowId).ThenBy(world
.. .. => world.Name.ExtractText()).ToList();
.. 27
.. 28 using (var combo = ImRaii.Combo("###player-world", worlds[SelectedWorld].Name.ExtractText()))
.. 29 {
.. 30 if (combo.Success)
.. 31 {
27 var worldNames = worlds.Select(world => world.Name.ToString()).ToArray(); 32 var lastDc = worlds.First().DataCenter.RowId;
28 33 foreach (var (world, idx) in worlds.WithIndex())
29 ImGui.Combo("###player-world", ref SelectedWorld, worldNames, worldNames.Length); 34 {
.. 35 if (ImGui.Selectable(world.Name.ExtractText(), SelectedWorld == idx))
.. 36 SelectedWorld = idx;
.. 37
.. 38 if (lastDc != world.DataCenter.RowId)
.. 39 {
.. 40 lastDc = world.DataCenter.RowId;
.. 41 ImGui.Separator();
.. 42 }
.. 43 }
.. 44 }
.. 45 }
.. 46
30 ImGui.PopItemWidth(); 47 ImGui.PopItemWidth();
31 48