Esempio n. 1
0
void Channel::_UpdateBanListInDB() const
{
    // save banlist
    if (m_IsSaved)
    {
        std::ostringstream banlist;
        BannedList::const_iterator iter;
        for (iter = banned.begin(); iter != banned.end(); ++iter)
            banlist << (*iter) << " ";
        std::string banListStr = banlist.str();
        if (_UpdateStringInDB("BannedList", banListStr))
            sLog.outDebug("Channel(%s) BannedList saved", m_name.c_str());
    }
}
Esempio n. 2
0
void Channel::Password(uint64 p, const char *pass)
{
	std::string plName;
    uint32 sec = 0;
    Player *plr = sObjectMgr.GetPlayer(p);
    if (plr)
        sec = plr->GetSession()->GetSecurity();

	ChatHandler chat(plr);

	if (!m_public && sec <= SEC_MODERATOR)
    {
        plName = plr->GetName();
        normalizePlayerName(plName);
        chat.PSendSysMessage(LANG_CHANNEL_NOT_PUBLIC);
        return;
    }

    if (!IsOn(p))
    {
        WorldPacket data;
        MakeNotMember(&data);
        SendToOne(&data, p);
    }
    else if (!players[p].IsModerator() && sec < SEC_GAMEMASTER)
    {
        WorldPacket data;
        MakeNotModerator(&data);
        SendToOne(&data, p);
    }
    else
    {
        m_password = pass;

        WorldPacket data;
        MakePasswordChanged(&data, p);
        SendToAll(&data);
        if (m_IsSaved && _UpdateStringInDB("m_password", m_password))
            sLog.outDebug("Channel(%s) password saved", m_name.c_str());
    }
}