Fix inaccurate summary and add TSPlayer for ItemDropEventArgs

This commit is contained in:
Zt Wang 2017-02-13 16:41:38 +08:00
parent e3a8112b5b
commit 1c8d49870e

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