Dalamud
Dalamud copied to clipboard
BuddyList only picking up first Trust Member
Reading the Dalamud data whenever in a Trust run results in only the first member under the player character actually being registered and the others are either null or don't even show up.
Example: Running the level 81 dungeon (Scenario mode, same thing happens on Avatar mode but I'm keeping it simple), I have my group sort settings as the default (Tank, Healer, DPS) meaning Thancred is the first if I'm not a tank, otherwise it's Alphinaud. Estinien & Alisaie show up as null. If I switch my group sort settings before entering the dungeon to DPS, Healer, Tank (only important part is DPS is first) then I get Alisaie as the first slot so then she works and the other two Trust members do not.
BuddyMemberSize is the size of the Buddy structure vs size of the BuddyMember struct. Is this correct?
- private static int BuddyMemberSize { get; } = Marshal.SizeOf<FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy>();
- vs
- private static int BuddyMemberSize { get; } = Marshal.SizeOf<FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember>
The code is indexing it assuming it is the size of the BuddyMember array return (IntPtr)(this.BuddyListStruct->BattleBuddies + (index * BuddyMemberSize));
Also, there are 7 as of 6.1 instead of just 3.