Esempio n. 1
0
void Chat::removeUserFromAllChannels(const Player& player)
{
	for (auto& it : normalChannels) {
		it.second.removeUser(player);
	}

	for (auto& it : partyChannels) {
		it.second.removeUser(player);
	}

	for (auto& it : guildChannels) {
		it.second.removeUser(player);
	}

	auto it = privateChannels.begin();
	while (it != privateChannels.end()) {
		PrivateChatChannel* channel = &it->second;
		channel->removeInvite(player.getGUID());
		channel->removeUser(player);
		if (channel->getOwner() == player.getGUID()) {
			channel->closeChannel();
			it = privateChannels.erase(it);
		} else {
			++it;
		}
	}
}
Esempio n. 2
0
bool Chat::deleteChannel(Party* party)
{
  PartyChannelMap::iterator it = m_partyChannels.find(party);
  if(it == m_partyChannels.end())
    return false;

  PrivateChatChannel* cc = it->second;
  cc->closeChannel();
  m_partyChannels.erase(it);
  delete cc;
  return true;
}