void Channel::Moderate(ObjectGuid p) { uint32 sec = 0; Player* plr = sObjectMgr.GetPlayer(p); if (plr) sec = plr->GetSession()->GetSecurity(); if (!IsOn(p)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, p); } else if (!m_players[p].IsModerator() && sec < SEC_GAMEMASTER) { WorldPacket data; MakeNotModerator(&data); SendToOne(&data, p); } else { m_moderate = !m_moderate; WorldPacket data; if (m_moderate) MakeModerationOn(&data, p); else MakeModerationOff(&data, p); SendToAll(&data); } }
void Channel::Moderate(Player* player) { ObjectGuid guid = player->GetObjectGuid(); if (!IsOn(guid)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, guid); return; } if (!m_players[guid].IsModerator() && player->GetSession()->GetSecurity() < SEC_GAMEMASTER) { WorldPacket data; MakeNotModerator(&data); SendToOne(&data, guid); return; } // toggle channel moderation m_moderate = !m_moderate; WorldPacket data; if (m_moderate) MakeModerationOn(&data, guid); else MakeModerationOff(&data, guid); SendToAll(&data); }
void Channel::Moderate(uint64 p) { uint32 sec = 0; Player *plr = objmgr.GetPlayer(p); if (plr) sec = plr->GetSession()->GetSecurity(); 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_moderate = !m_moderate; WorldPacket data; if (m_moderate) MakeModerationOn(&data, p); else MakeModerationOff(&data, p); SendToAll(&data); if (m_IsSaved && _UpdateIntInDB("m_announce", m_announce ? 1 : 0)) sLog.outDebug("Channel(%s) announce saved", m_name.c_str()); } }
void Channel::Moderate(uint64 p) { uint32 sec = 0; Player *plr = sObjectMgr.GetPlayer(p); if (plr) sec = plr->GetSession()->GetPermissions(); if (!IsOn(p)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, p); } else if (!players[p].IsModerator() && !(sec & PERM_GMT)) { WorldPacket data; MakeNotModerator(&data); SendToOne(&data, p); } else { m_moderate = !m_moderate; WorldPacket data; if (m_moderate) MakeModerationOn(&data, p); else MakeModerationOff(&data, p); SendToAll(&data); } }
void Channel::Moderate(uint64 p) { uint32 sec = 0; Player *plr = objmgr.GetPlayer(p); if(plr) sec = plr->GetSession()->GetSecurity(); 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_moderate = !m_moderate; WorldPacket data; if(m_moderate) MakeModerationOn(&data, p); else MakeModerationOff(&data, p); SendToAll(&data); if(m_IsSaved) { std::ostringstream ss; ss << "UPDATE channels SET m_moderate = '" << m_moderate << "' WHERE m_name = '"<<m_name.c_str()<<"' AND m_team = '"<<m_Team<<"'"; if(CharacterDatabase.PExecute( ss.str( ).c_str( ) )) { sLog.outDebug("Channel(%s) moderate saved", m_name.c_str()); } } } }