aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnton Popovichenko <walkline.ua@gmail.com>2023-03-11 13:59:10 +0100
committerGitHub <noreply@github.com>2023-03-11 13:59:10 +0100
commit9658d15b0c4189962e7600c34b70f9ceed2b3abe (patch)
treee208604c7ddff62b49e1c776308a28686fe62a8e /src
parent48f9a807f3b6f05d35d161c6272f76c7c657d895 (diff)
Core/Mail: Reorder mail attachment checks to be able to report nonempty bag error to client. (#28844)
Diffstat (limited to 'src')
-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 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);
}