using System.Collections.Generic; using System.Linq; using Dalamud.Game.ClientState.Party; namespace KamiLib.Extensions; public static class PartyListExtensions { public static IEnumerable Alive(this IEnumerable list) { return list.Where(member => member.GameObject != null && !member.GameObject.IsDead); } public static IEnumerable WithRole(this IEnumerable list, uint roleID) { return list.Where(member => member.ClassJob.GameData?.Role == roleID); } public static IEnumerable WithJob(this IEnumerable list, uint jobID) { return list.Where(member => member.ClassJob.Id == jobID); } public static IEnumerable WithJob(this IEnumerable list, List jobList) { return list.Where(member => jobList.Contains(member.ClassJob.Id)); } public static IEnumerable WithStatus(this IEnumerable list, uint statusID) { return list.Where(member => member.HasStatus(statusID)); } public static IEnumerable WithStatus(this IEnumerable list, List statusList) { return list.Where(member => member.HasStatus(statusList)); } }