aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/TradeHandler.cpp
diff options
context:
space:
mode:
authorMykhailo Redko <ovitnez@gmail.com>2024-01-24 22:09:01 +0200
committerGitHub <noreply@github.com>2024-01-24 21:09:01 +0100
commit420cbd7396ca59497328d372ed028d976f23b150 (patch)
tree1c638ed0bd4c0cf0f9dfc68b9dfa3862e56fba11 /src/server/game/Handlers/TradeHandler.cpp
parent75016bf4da8656b049e6050e745cd50793e05780 (diff)
Core/PacketIO: Implemented CMSG_BUSY_TRADE and CMSG_IGNORE_TRADE (#29570)
Closes #29308
Diffstat (limited to 'src/server/game/Handlers/TradeHandler.cpp')
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp
index 048c2930108..4d8588bf7be 100644
--- a/src/server/game/Handlers/TradeHandler.cpp
+++ b/src/server/game/Handlers/TradeHandler.cpp
@@ -62,14 +62,12 @@ void WorldSession::SendTradeStatus(TradeStatusInfo const& info)
void WorldSession::HandleIgnoreTradeOpcode(WorldPacket& /*recvPacket*/)
{
- TC_LOG_DEBUG("network", "WORLD: Ignore Trade {}", _player->GetGUID().ToString());
- // recvPacket.print_storage();
+ _player->TradeCancel(true, TRADE_STATUS_IGNORE_YOU);
}
void WorldSession::HandleBusyTradeOpcode(WorldPacket& /*recvPacket*/)
{
- TC_LOG_DEBUG("network", "WORLD: Busy Trade {}", _player->GetGUID().ToString());
- // recvPacket.print_storage();
+ _player->TradeCancel(true, TRADE_STATUS_BUSY);
}
void WorldSession::SendUpdateTrade(bool trader_data /*= true*/)
@@ -570,13 +568,13 @@ void WorldSession::HandleBeginTradeOpcode(WorldPacket& /*recvPacket*/)
SendTradeStatus(info);
}
-void WorldSession::SendCancelTrade()
+void WorldSession::SendCancelTrade(TradeStatus status)
{
if (PlayerRecentlyLoggedOut() || PlayerLogout())
return;
TradeStatusInfo info;
- info.Status = TRADE_STATUS_TRADE_CANCELED;
+ info.Status = status;
SendTradeStatus(info);
}
@@ -676,13 +674,6 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
return;
}
- if (pOther->GetSocial()->HasIgnore(GetPlayer()->GetGUID()))
- {
- info.Status = TRADE_STATUS_IGNORE_YOU;
- SendTradeStatus(info);
- return;
- }
-
if (pOther->GetTeam() != _player->GetTeam() &&
(!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_TRADE) &&
!GetPlayer()->GetSession()->HasPermission(rbac::RBAC_PERM_ALLOW_TWO_SIDE_TRADE)))