Do not allow users to drop larger than max stacks if max stack check is enabled.

This commit is contained in:
Deathmax 2011-12-18 08:40:39 +08:00
parent c6e19c6658
commit 348685bb2a

View file

@ -118,6 +118,7 @@ namespace TShockAPI
{PacketTypes.TileGetSection, HandleGetSection},
{PacketTypes.UpdateNPCHome, UpdateNPCHome },
{PacketTypes.PlayerAddBuff, HandlePlayerBuff},
{PacketTypes.ItemDrop, HandleItemDrop}
};
}
@ -920,5 +921,25 @@ namespace TShockAPI
{
return !args.Player.Group.HasPermission(Permissions.ignoregriefdetection);
}
private static bool HandleItemDrop(GetDataHandlerArgs args)
{
var id = args.Data.ReadInt16();
var pos = new Vector2(args.Data.ReadSingle(), args.Data.ReadSingle());
var vel = new Vector2(args.Data.ReadSingle(), args.Data.ReadSingle());
var stacks = args.Data.ReadInt8();
var prefix = args.Data.ReadInt8();
var type = args.Data.ReadInt16();
if (TShock.Config.EnableItemStackChecks)
{
var item = new Item();
item.SetDefaults(type);
if (stacks > item.maxStack)
TShock.Utils.HandleCheater(args.Player, "Dropped illegal stack of item");
return true;
}
return false;
}
}
}