fix(Core/Mail): Reorder mail attachment checks (#15418)

* The check never hits as CanBeTraded() checks for empty bag too and we need to check it before as it uses a different error

* Cherry-pick : 9658d15b0c

Co-authored-by: Anton Popovichenko <walkline.ua@gmail.com>
This commit is contained in:
Kitzunu
2023-03-17 15:15:58 +01:00
committed by GitHub
parent 422db05290
commit 0f2f86171a

View File

@@ -237,6 +237,13 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
return;
}
// handle empty bag before CanBeTraded, since that func already has that check
if (item->IsNotEmptyBag())
{
player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS);
return;
}
if (!item->CanBeTraded(true))
{
player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_MAIL_BOUND_ITEM);
@@ -261,12 +268,6 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
return;
}
if (item->IsNotEmptyBag())
{
player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS);
return;
}
if (!sScriptMgr->CanSendMail(player, receiverGuid, mailbox, subject, body, money, COD, item))
{
player->SendMailResult(0, MAIL_SEND, MAIL_ERR_INTERNAL_ERROR);