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;
}