diff --git a/CombatData.cs b/CombatData.cs index be3626e..878fc88 100644 --- a/CombatData.cs +++ b/CombatData.cs @@ -10,6 +10,7 @@ public class CombatData { this.Combatants[key] = new Combatant { Name = value.Name, EncDps = TryFloat(value.EncDps), + JobAbbr = value.Job, }; } @@ -37,5 +38,6 @@ public class Encounter { public class Combatant { public string Name { get; init; } + public string JobAbbr { get; init; } public float EncDps { get; init; } } diff --git a/Plugin.cs b/Plugin.cs index aadaa74..e8ee692 100644 --- a/Plugin.cs +++ b/Plugin.cs @@ -15,6 +15,7 @@ using FFXIVClientStructs.FFXIV.Client.Graphics; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; +using Lumina.Excel.GeneratedSheets; namespace PartyDamage; @@ -43,6 +44,9 @@ public class Plugin : IDalamudPlugin { [PluginService] internal IContextMenu ContextMenu { get; init; } + [PluginService] + internal IDataManager DataManager { get; init; } + internal Configuration Config { get; } private Client Client { get; } internal PluginUi Ui { get; } @@ -164,10 +168,18 @@ public class Plugin : IDalamudPlugin { if ( this.Config.UseEvaluatorNpc + && this.ClientState.LocalPlayer is { } player && this.Client.Data != null && Evaluator.Evaluators.FirstOrDefault(e => e.Id == this.Config.EvaluatorId) is { } evaluator ) { - var combatants = this.Client.Data.Combatants.Values.ToList(); + var combatants = this.Client.Data.Combatants.Values + .Where(combatant => { + var job = this.DataManager.GetExcelSheet()! + .FirstOrDefault(j => j.Abbreviation.RawString.Equals(combatant.JobAbbr, StringComparison.InvariantCultureIgnoreCase)); + + return job?.ClassJobCategory.Row == player.ClassJob.GameData?.ClassJobCategory.Row; + }) + .ToList(); combatants.Sort((a, b) => a.EncDps.CompareTo(b.EncDps)); var rank = (float) (combatants.FindIndex(combatant => combatant.Name == "YOU") + 1) / combatants.Count; var evaluation = rank switch { diff --git a/RawCombatData.cs b/RawCombatData.cs index 07babb3..07c155a 100644 --- a/RawCombatData.cs +++ b/RawCombatData.cs @@ -95,4 +95,7 @@ public class RawCombatant { [JsonProperty("enchps")] public string EncHps; + + [JsonProperty("Job")] + public string Job; }