From 9658d15b0c4189962e7600c34b70f9ceed2b3abe Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Sat, 11 Mar 2023 13:59:10 +0100 Subject: Core/Mail: Reorder mail attachment checks to be able to report nonempty bag error to client. (#28844) --- src/server/game/Handlers/MailHandler.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/server/game/Handlers/MailHandler.cpp') 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); } -- cgit v1.2.3