diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 3e63f0bd..7de2ea00 100644
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -78,7 +78,9 @@ namespace TShockAPI
TileEdit.Invoke(null, args);
return args.Handled;
}
-
+ ///
+ /// TogglePvp - called when a player toggles pvp
+ ///
public class TogglePvpEventArgs : HandledEventArgs
{
public int id { get; set; }
@@ -99,6 +101,64 @@ namespace TShockAPI
TogglePvp.Invoke(null, args);
return args.Handled;
}
+
+ ///
+ /// PlayerSlot - called at a PlayerSlot event
+ ///
+ public class PlayerSlotEventArgs : HandledEventArgs
+ {
+ public int plr { get; set; }
+ public int slot { get; set; }
+ public int stack { get; set; }
+ public short prefix { get; set; }
+ public int type { get; set; }
+ }
+
+ public static HandlerList PlayerSlot;
+
+ public static bool OnPlayerSlot(int _plr, int _slot, int _stack, short _prefix, int _type)
+ {
+ if (PlayerSlot == null)
+ return false;
+
+ var args = new PlayerSlotEventArgs
+ {
+ plr = _plr,
+ slot = _slot,
+ stack = _stack,
+ prefix = _prefix,
+ type = _type
+ };
+ PlayerSlot.Invoke(null, args);
+ return args.Handled;
+ }
+
+ ///
+ /// PlayerHP - called at a PlayerHP event
+ ///
+ public class PlayerHPEventArgs : HandledEventArgs
+ {
+ public int plr { get; set; }
+ public int cur { get; set; }
+ public int max { get; set; }
+ }
+
+ public static HandlerList PlayerHP;
+
+ public static bool OnPlayerHP(int _plr, int _cur, int _max)
+ {
+ if (PlayerHP == null)
+ return false;
+
+ var args = new PlayerHPEventArgs
+ {
+ plr = _plr,
+ cur = _cur,
+ max = _max,
+ };
+ PlayerHP.Invoke(null, args);
+ return args.Handled;
+ }
#endregion
public static void InitGetDataHandler()
{
@@ -175,6 +235,9 @@ namespace TShockAPI
short prefix = args.Data.ReadInt8();
int type = args.Data.ReadInt16();
+ if (OnPlayerSlot(plr, slot, stack, prefix, type))
+ return true;
+
if (plr != args.Player.Index)
{
return true;
@@ -203,6 +266,9 @@ namespace TShockAPI
int cur = args.Data.ReadInt16();
int max = args.Data.ReadInt16();
+ if (OnPlayerHP(plr, cur, max))
+ return true;
+
if (args.Player.FirstMaxHP == 0)
args.Player.FirstMaxHP = max;