#include "../client.h" #include "../worldserver.h" extern WorldServer worldserver; #include "../../common/profanity_manager.h" void command_profanity(Client *c, const Seperator *sep) { std::string arg1(sep->arg[1]); while (true) { if (arg1.compare("list") == 0) { // do nothing } else if (arg1.compare("clear") == 0) { EQ::ProfanityManager::DeleteProfanityList(&database); auto pack = new ServerPacket(ServerOP_RefreshCensorship); worldserver.SendPacket(pack); safe_delete(pack); } else if (arg1.compare("add") == 0) { if (!EQ::ProfanityManager::AddProfanity(&database, sep->arg[2])) { c->Message(Chat::Red, "Could not add '%s' to the profanity list.", sep->arg[2]); } auto pack = new ServerPacket(ServerOP_RefreshCensorship); worldserver.SendPacket(pack); safe_delete(pack); } else if (arg1.compare("del") == 0) { if (!EQ::ProfanityManager::RemoveProfanity(&database, sep->arg[2])) { c->Message(Chat::Red, "Could not delete '%s' from the profanity list.", sep->arg[2]); } auto pack = new ServerPacket(ServerOP_RefreshCensorship); worldserver.SendPacket(pack); safe_delete(pack); } else if (arg1.compare("reload") == 0) { if (!EQ::ProfanityManager::UpdateProfanityList(&database)) { c->Message(Chat::Red, "Could not reload the profanity list."); } auto pack = new ServerPacket(ServerOP_RefreshCensorship); worldserver.SendPacket(pack); safe_delete(pack); } else { break; } std::string popup; const auto &list = EQ::ProfanityManager::GetProfanityList(); for (const auto &iter : list) { popup.append(iter); popup.append("
"); } if (list.empty()) { popup.append("** Censorship Inactive **
"); } else { popup.append("** End of List **
"); } c->SendPopupToClient("Profanity List", popup.c_str()); return; } c->Message(Chat::White, "Usage: #profanity [list] - shows profanity list"); c->Message(Chat::White, "Usage: #profanity [clear] - deletes all entries"); c->Message(Chat::White, "Usage: #profanity [add] [] - adds entry"); c->Message(Chat::White, "Usage: #profanity [del] [] - deletes entry"); c->Message(Chat::White, "Usage: #profanity [reload] - reloads profanity list"); }