diff options
-rw-r--r-- | src/server/game/Chat/Channels/ChannelMgr.cpp | 19 | ||||
-rw-r--r-- | src/server/game/Chat/Channels/ChannelMgr.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Handlers/ChannelHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/World/World.cpp | 9 |
5 files changed, 2 insertions, 33 deletions
diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp index 84b43888866..8903e7e3d94 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.cpp +++ b/src/server/game/Chat/Channels/ChannelMgr.cpp @@ -239,25 +239,6 @@ Channel* ChannelMgr::GetChannel(uint32 channelId, std::string const& name, Playe return result; } -void ChannelMgr::LeftChannel(std::string const& name) -{ - std::wstring channelName; - if (!Utf8toWStr(name, channelName)) - return; - - wstrToLower(channelName); - auto itr = _customChannels.find(channelName); - if (itr == _customChannels.end()) - return; - - Channel* channel = itr->second; - if (!channel->GetNumPlayers()) - { - _customChannels.erase(itr); - delete channel; - } -} - void ChannelMgr::LeftChannel(uint32 channelId, AreaTableEntry const* zoneEntry) { auto itr = _channels.find(CreateBuiltinChannelGuid(channelId, zoneEntry)); diff --git a/src/server/game/Chat/Channels/ChannelMgr.h b/src/server/game/Chat/Channels/ChannelMgr.h index 325969d5dae..b389cc718ae 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.h +++ b/src/server/game/Chat/Channels/ChannelMgr.h @@ -46,7 +46,6 @@ class TC_GAME_API ChannelMgr Channel* CreateCustomChannel(std::string const& name); Channel* GetCustomChannel(std::string const& name) const; Channel* GetChannel(uint32 channelId, std::string const& name, Player* player, bool notify = true, AreaTableEntry const* zoneEntry = nullptr) const; - void LeftChannel(std::string const& name); void LeftChannel(uint32 channelId, AreaTableEntry const* zoneEntry); private: diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 0906e47c203..c53bb8a693c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -4843,12 +4843,8 @@ void Player::CleanupChannels() // delete channel if empty if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetTeam())) - { if (ch->IsConstant()) cMgr->LeftChannel(ch->GetChannelId(), ch->GetZoneEntry()); - else - cMgr->LeftChannel(ch->GetName()); - } } TC_LOG_DEBUG("chat.system", "Player::CleanupChannels: Channels of player '%s' (%s) cleaned up.", GetName().c_str(), GetGUID().ToString().c_str()); } diff --git a/src/server/game/Handlers/ChannelHandler.cpp b/src/server/game/Handlers/ChannelHandler.cpp index 9cd28f709b5..161b5ea784d 100644 --- a/src/server/game/Handlers/ChannelHandler.cpp +++ b/src/server/game/Handlers/ChannelHandler.cpp @@ -103,8 +103,6 @@ void WorldSession::HandleLeaveChannel(WorldPackets::Channel::LeaveChannel& packe if (packet.ZoneChannelID) cMgr->LeftChannel(packet.ZoneChannelID, zone); - else - cMgr->LeftChannel(packet.ChannelName); } } diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 2f976f02a25..9562b82cde9 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -3174,14 +3174,9 @@ void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode, const std: m_ShutdownMask = options; m_ExitCode = exitcode; - ///- If the shutdown time is 0, set m_stopEvent (except if shutdown is 'idle' with remaining sessions) + ///- If the shutdown time is 0, evaluate shutdown on next tick (no message) if (time == 0) - { - if (!(options & SHUTDOWN_MASK_IDLE) || GetActiveAndQueuedSessionCount() == 0) - m_stopEvent = true; // exist code already set - else - m_ShutdownTimer = 1; //So that the session count is re-evaluated at next world tick - } + m_ShutdownTimer = 1; ///- Else set the shutdown timer and warn users else { |