Merge pull request #1394 from mistzzt/fix-itemdrop

Fix inaccurate document and add TSPlayer property for ItemDropEventArgs
This commit is contained in:
Lucas Nicodemus 2017-02-13 07:14:06 -07:00 committed by GitHub
commit e2d52a4cb6

View file

@ -921,7 +921,12 @@ namespace TShockAPI
public class ItemDropEventArgs : HandledEventArgs public class ItemDropEventArgs : HandledEventArgs
{ {
/// <summary> /// <summary>
/// The Terraria playerID of the player /// The player who sent message
/// </summary>
public TSPlayer Player { get; set; }
/// <summary>
/// ID of the item.
/// If below 400 and NetID(Type) is 0 Then Set Null. If ItemID is 400 Then New Item
/// </summary> /// </summary>
public short ID { get; set; } public short ID { get; set; }
/// <summary> /// <summary>
@ -954,13 +959,14 @@ namespace TShockAPI
/// </summary> /// </summary>
public static HandlerList<ItemDropEventArgs> ItemDrop; public static HandlerList<ItemDropEventArgs> ItemDrop;
private static bool OnItemDrop(short id, Vector2 pos, Vector2 vel, short stacks, byte prefix, bool noDelay, short type) private static bool OnItemDrop(TSPlayer player, short id, Vector2 pos, Vector2 vel, short stacks, byte prefix, bool noDelay, short type)
{ {
if (ItemDrop == null) if (ItemDrop == null)
return false; return false;
var args = new ItemDropEventArgs var args = new ItemDropEventArgs
{ {
Player = player,
ID = id, ID = id,
Position = pos, Position = pos,
Velocity = vel, Velocity = vel,
@ -3456,7 +3462,7 @@ namespace TShockAPI
var noDelay = args.Data.ReadInt8() == 1; var noDelay = args.Data.ReadInt8() == 1;
var type = args.Data.ReadInt16(); var type = args.Data.ReadInt16();
if (OnItemDrop(id, pos, vel, stacks, prefix, noDelay, type)) if (OnItemDrop(args.Player, id, pos, vel, stacks, prefix, noDelay, type))
return true; return true;
// player is attempting to crash clients // player is attempting to crash clients