From fc38521dbd4538cd0e644265799a141d9b6ba815 Mon Sep 17 00:00:00 2001 From: AxeelAnder <1491773534@qq.com> Date: Sat, 20 Oct 2018 13:21:38 +0800 Subject: [PATCH] add NPCAddBuff bouncer --- TShockAPI/Bouncer.cs | 32 ++++++++++++++++++++++++++++++++ TShockAPI/GetDataHandlers.cs | 3 +-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs index 223de05b..b71c7de8 100644 --- a/TShockAPI/Bouncer.cs +++ b/TShockAPI/Bouncer.cs @@ -49,6 +49,7 @@ namespace TShockAPI GetDataHandlers.PlayerAnimation += OnPlayerAnimation; GetDataHandlers.NPCStrike += OnNPCStrike; GetDataHandlers.ItemDrop += OnItemDrop; + GetDataHandlers.NPCAddBuff += OnNPCAddBuff; GetDataHandlers.PlayerBuff += OnPlayerBuff; GetDataHandlers.ChestItemChange += OnChestItemChange; GetDataHandlers.NPCHome += OnUpdateNPCHome; @@ -453,6 +454,37 @@ namespace TShockAPI return; } } + + /// Handles NPCAddBuff events. + /// The object that triggered the event. + /// The packet arguments that the event has. + internal void OnNPCAddBuff(object sender, GetDataHandlers.NPCAddBuffEventArgs args) + { + short id = args.ID; + byte type = args.Type; + short time = args.Time; + + if (id >= Main.npc.Length) + { + args.Handled = true; + return; + } + + NPC npc = Main.npc[id]; + + if (npc == null) + { + args.Handled = true; + return; + } + + if (args.Player.IsBeingDisabled()) + { + args.Player.SendData(PacketTypes.NpcAddBuff, "", id); + args.Handled = true; + return; + } + } /// Handles Buff events. /// The object that triggered the event. diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index b3769e4e..6673dd64 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -2677,8 +2677,7 @@ namespace TShockAPI if (OnNPCAddBuff(args.Player, args.Data, id, type, time)) return true; - - args.Player.SendData(PacketTypes.NpcAddBuff, "", id); + return true; }