Skip to content

Commit

Permalink
Merge pull request #105 from FFXIV-CombatReborn/mergeWIP2
Browse files Browse the repository at this point in the history
slash commands for AI follow slot
  • Loading branch information
CarnifexOptimus authored May 24, 2024
2 parents cd11ef7 + 000d6ca commit cb423e2
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions BossMod/AI/AIManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@ private void OnChatMessage(XivChatType type, uint senderId, ref SeString sender,
private void OnCommand(string cmd, string message)
{
var messageData = message.Split(' ');
if (messageData.Length == 0)
return;

switch (messageData[0])
{
case "on":
Expand All @@ -153,9 +156,38 @@ private void OnCommand(string cmd, string message)
else
SwitchToIdle();
break;
case "follow":
if (messageData.Length < 2)
{
Service.Log("[AI] Missing follow target.");
return;
}

if (messageData[1].StartsWith("Slot", StringComparison.OrdinalIgnoreCase) && int.TryParse(messageData[1].AsSpan(4), out var slot) && slot >= 1 && slot <= 8)
SwitchToFollow(slot - 1);
else
{
var memberIndex = FindPartyMemberByName(string.Join(" ", messageData.Skip(1)));
if (memberIndex >= 0)
SwitchToFollow(memberIndex);
else
Service.Log($"[AI] Unknown party member: {string.Join(" ", messageData.Skip(1))}");
}
break;
default:
Service.Log($"[AI] Unknown command: {messageData[0]}");
break;
}
}

private int FindPartyMemberByName(string name)
{
for (var i = 0; i < 8; i++)
{
var member = _autorot.WorldState.Party[i];
if (member != null && member.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
return i;
}
return -1;
}
}

0 comments on commit cb423e2

Please sign in to comment.