diff options
author | Anton Popovichenko <walkline.ua@gmail.com> | 2023-03-11 13:59:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-11 13:59:10 +0100 |
commit | 9658d15b0c4189962e7600c34b70f9ceed2b3abe (patch) | |
tree | e208604c7ddff62b49e1c776308a28686fe62a8e /src/server/game/Handlers/MailHandler.cpp | |
parent | 48f9a807f3b6f05d35d161c6272f76c7c657d895 (diff) |
Core/Mail: Reorder mail attachment checks to be able to report nonempty bag error to client. (#28844)
Diffstat (limited to 'src/server/game/Handlers/MailHandler.cpp')
-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 224e9643490..ce8fcd022c3 100644 --- a/src/server/game/Handlers/MailHandler.cpp +++ b/src/server/game/Handlers/MailHandler.cpp @@ -191,6 +191,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_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); @@ -215,12 +222,6 @@ void WorldSession::HandleSendMail(WorldPackets::Mail::SendMail& sendMail) return; } - if (item->IsNotEmptyBag()) - { - player->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS); - return; - } - items.push_back(item); } |