From 17cc3b8490692ee3a225f052425deb43a45b98db Mon Sep 17 00:00:00 2001 From: danieldg Date: Tue, 3 Nov 2009 17:12:36 +0000 Subject: Create m_halfop git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11997 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/configreader.cpp | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) (limited to 'src/configreader.cpp') diff --git a/src/configreader.cpp b/src/configreader.cpp index 9e0aa2031..348554584 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -30,7 +30,6 @@ #include "xline.h" #include "exitcodes.h" #include "commands/cmd_whowas.h" -#include "modes/cmode_h.h" #include "configparser.h" ServerConfig::ServerConfig() @@ -749,9 +748,6 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid) ServerInstance->Exit(EXIT_STATUS_CONFIG); } - if (ConfValue("options")->getBool("allowhalfop")) - ServerInstance->Modes->AddMode(new ModeChannelHalfOp); - return; } @@ -768,18 +764,6 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid) void ServerConfig::ApplyModules(User* user) { - bool AllowHalfOp = ConfValue("options")->getBool("allowhalfop"); - ModeHandler* mh = ServerInstance->Modes->FindMode('h', MODETYPE_CHANNEL); - if (AllowHalfOp && !mh) { - ServerInstance->Logs->Log("CONFIG", DEFAULT, "Enabling halfop mode."); - mh = new ModeChannelHalfOp; - ServerInstance->Modes->AddMode(mh); - } else if (!AllowHalfOp && mh) { - ServerInstance->Logs->Log("CONFIG", DEFAULT, "Disabling halfop mode."); - ServerInstance->Modes->DelMode(mh); - delete mh; - } - Module* whowas = ServerInstance->Modules->Find("cmd_whowas.so"); if (whowas) WhowasRequest(NULL, whowas, WhowasRequest::WHOWAS_PRUNE).Send(); @@ -802,6 +786,9 @@ void ServerConfig::ApplyModules(User* user) } } + if (ConfValue("options")->getBool("allowhalfop") && removed_modules.erase("m_halfop.so") == 0) + added_modules.push_back("m_halfop.so"); + for (std::set::iterator removing = removed_modules.begin(); removing != removed_modules.end(); removing++) { // Don't remove cmd_*.so, just remove m_*.so -- cgit v1.3.1-10-gc9f91