aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Popovichenko <walkline.ua@gmail.com>2023-03-11 13:59:10 +0100
committerShauren <shauren.trinity@gmail.com>2023-08-23 18:48:33 +0200
commit7b48268e2cfc7fddeba8fe55721aaab4234cc152 (patch)
treeba81384cc7fac6db02dd0c3df2f1b758f6628e57
parent8898dfec53505022c24e6917c34ce45a20cf97dc (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.cpp13
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);
}