Additional check for Player destroyItemByItemId method.

Thanks to Enryu.
This commit is contained in:
MobiusDevelopment
2022-02-09 11:23:30 +00:00
parent 413c709bca
commit 384abd5695
25 changed files with 98 additions and 96 deletions

View File

@ -3542,13 +3542,13 @@ public class Player extends Playable
}
final Item item = _inventory.getItemByItemId(itemId);
if ((item == null) || (item.getCount() < count) || (_inventory.destroyItemByItemId(process, itemId, count, this, reference) == null))
final long quantity = (count < 0) && (item != null) ? item.getCount() : count;
if ((item == null) || (item.getCount() < quantity) || (quantity <= 0) || (_inventory.destroyItemByItemId(process, itemId, quantity, this, reference) == null))
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT_2);
}
return false;
}
@ -3574,11 +3574,11 @@ public class Player extends Playable
// Sends message to client if requested
if (sendMessage)
{
if (count > 1)
if (quantity > 1)
{
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_S1_S_DISAPPEARED);
sm.addItemName(itemId);
sm.addLong(count);
sm.addLong(quantity);
sendPacket(sm);
}
else