diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index c4f93afb..76fe0b8d 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -576,6 +576,33 @@ namespace TShockAPI return args.Handled; } + public class NPCStrikeEventArgs : HandledEventArgs + { + public byte ID { get; set; } + public byte Direction { get; set; } + public short Damage { get; set; } + public byte PVP { get; set; } + public byte Critical { get; set; } + } + public static HandlerList NPCStrike; + + private static bool OnNPCStrike(byte id, byte dir, short dmg, byte pvp, byte crit) + { + if (NPCStrike == null) + return false; + + var args = new NPCStrikeEventArgs + { + ID = id, + Direction = dir, + Damage = dmg, + PVP = pvp, + Critical = crit, + }; + NPCStrike.Invoke(null, args); + return args.Handled; + } + #endregion public static void InitGetDataHandler() { @@ -1993,6 +2020,9 @@ namespace TShockAPI var pvp = args.Data.ReadInt8(); var crit = args.Data.ReadInt8(); + if (OnNPCStrike(id, direction, dmg, pvp, crit)) + return true; + if (Main.npc[id] == null) return true;