diff options
author | Anton Popovichenko <walkline.ua@gmail.com> | 2023-03-11 13:59:10 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-08-23 18:48:33 +0200 |
commit | 7b48268e2cfc7fddeba8fe55721aaab4234cc152 (patch) | |
tree | ba81384cc7fac6db02dd0c3df2f1b758f6628e57 | |
parent | 8898dfec53505022c24e6917c34ce45a20cf97dc (diff) |
Core/Mail: Reorder mail attachment checks to be able to report nonempty bag error to client. (#28844)
(cherry picked from commit 9658d15b0c4189962e7600c34b70f9ceed2b3abe)
-rw-r--r-- | src/server/game/Handlers/MailHandler.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp index 9d97c66e4a8..201342b4dfa 100644 --- a/src/server/game/Handlers/MailHandler.cpp +++ b/src/server/game/Handlers/MailHandler.cpp @@ -202,6 +202,13 @@ void WorldSession::HandleSendMail(WorldPackets::Mail::SendMail& sendMail) 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_DESTROY_NONEMPTY_BAG); + return; + } + if (!item->CanBeTraded(true)) { player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_MAIL_BOUND_ITEM); @@ -229,12 +236,6 @@ void WorldSession::HandleSendMail(WorldPackets::Mail::SendMail& sendMail) return; } - if (item->IsNotEmptyBag()) - { - player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_DESTROY_NONEMPTY_BAG); - return; - } - items.push_back(item); } |