diff options
Diffstat (limited to 'src/server/game/Handlers/TradeHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/TradeHandler.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp index 62a2c74a2ba..85c49b6f46f 100644 --- a/src/server/game/Handlers/TradeHandler.cpp +++ b/src/server/game/Handlers/TradeHandler.cpp @@ -42,10 +42,12 @@ void WorldSession::SendTradeStatus(WorldPackets::Trade::TradeStatus& info) void WorldSession::HandleIgnoreTradeOpcode(WorldPackets::Trade::IgnoreTrade& /*ignoreTrade*/) { + _player->TradeCancel(true, TRADE_STATUS_IGNORE_YOU); } void WorldSession::HandleBusyTradeOpcode(WorldPackets::Trade::BusyTrade& /*busyTrade*/) { + _player->TradeCancel(true, TRADE_STATUS_BUSY); } void WorldSession::SendUpdateTrade(bool trader_data /*= true*/) @@ -559,13 +561,13 @@ void WorldSession::HandleBeginTradeOpcode(WorldPackets::Trade::BeginTrade& /*beg SendTradeStatus(info); } -void WorldSession::SendCancelTrade() +void WorldSession::SendCancelTrade(TradeStatus status) { if (PlayerRecentlyLoggedOut() || PlayerLogout()) return; WorldPackets::Trade::TradeStatus info; - info.Status = TRADE_STATUS_CANCELLED; + info.Status = status; SendTradeStatus(info); } @@ -661,13 +663,6 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPackets::Trade::InitiateTrade& return; } - if (pOther->GetSocial()->HasIgnore(GetPlayer()->GetGUID(), GetPlayer()->GetSession()->GetAccountGUID())) - { - info.Status = TRADE_STATUS_PLAYER_IGNORED; - SendTradeStatus(info); - return; - } - if ((pOther->GetTeam() != _player->GetTeam() || pOther->HasPlayerFlagEx(PLAYER_FLAGS_EX_MERCENARY_MODE) || _player->HasPlayerFlagEx(PLAYER_FLAGS_EX_MERCENARY_MODE)) && |