Automatically register and unregister mode watchers

This commit is contained in:
Attila Molnar 2014-01-06 13:37:06 +01:00
parent 5a366d8945
commit ade1500382
5 changed files with 2 additions and 44 deletions

View File

@ -154,11 +154,6 @@ class ModuleLusers : public Module
{
}
void init()
{
ServerInstance->Modes->AddModeWatcher(&mw);
}
void OnPostConnect(User* user)
{
counters.UpdateMaxUsers();
@ -172,11 +167,6 @@ class ModuleLusers : public Module
counters.invisible--;
}
~ModuleLusers()
{
ServerInstance->Modes->DelModeWatcher(&mw);
}
Version GetVersion()
{
return Version("LUSERS", VF_VENDOR | VF_CORE);

View File

@ -145,10 +145,12 @@ bool ParamChannelModeHandler::ParamValidate(std::string& parameter)
ModeWatcher::ModeWatcher(Module* Creator, const std::string& modename, ModeType type)
: mode(modename), m_type(type), creator(Creator)
{
ServerInstance->Modes->AddModeWatcher(this);
}
ModeWatcher::~ModeWatcher()
{
ServerInstance->Modes->DelModeWatcher(this);
}
ModeType ModeWatcher::GetModeType()

View File

@ -229,11 +229,6 @@ class ModuleBanRedirect : public Module
{
}
void init() CXX11_OVERRIDE
{
ServerInstance->Modes->AddModeWatcher(&re);
}
void OnCleanup(int target_type, void* item) CXX11_OVERRIDE
{
if(target_type == TYPE_CHANNEL)
@ -334,13 +329,6 @@ class ModuleBanRedirect : public Module
return MOD_RES_PASSTHRU;
}
~ModuleBanRedirect()
{
/* XXX is this the best place to do this? */
if (!ServerInstance->Modes->DelModeWatcher(&re))
ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Failed to delete modewatcher!");
}
Version GetVersion() CXX11_OVERRIDE
{
return Version("Allows an extended ban (+b) syntax redirecting banned users to another channel", VF_COMMON|VF_VENDOR);

View File

@ -58,17 +58,11 @@ class ModuleOperPrefixMode : public Module
ModuleOperPrefixMode()
: opm(this), hideoperwatcher(this)
, hideopermode(this, "hideoper")
{
}
void init() CXX11_OVERRIDE
{
/* To give clients a chance to learn about the new prefix we don't give +y to opers
* right now. That means if the module was loaded after opers have joined channels
* they need to rejoin them in order to get the oper prefix.
*/
ServerInstance->Modes->AddModeWatcher(&hideoperwatcher);
}
ModResult OnUserPreJoin(LocalUser* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven) CXX11_OVERRIDE
@ -98,12 +92,6 @@ class ModuleOperPrefixMode : public Module
SetOperPrefix(user, true);
}
~ModuleOperPrefixMode()
{
ServerInstance->Modes->DelModeWatcher(&hideoperwatcher);
}
Version GetVersion() CXX11_OVERRIDE
{
return Version("Gives opers cmode +y which provides a staff prefix.", VF_VENDOR);

View File

@ -148,16 +148,6 @@ class ModuleTimedBans : public Module
{
}
void init() CXX11_OVERRIDE
{
ServerInstance->Modes->AddModeWatcher(&banwatcher);
}
~ModuleTimedBans()
{
ServerInstance->Modes->DelModeWatcher(&banwatcher);
}
void OnBackgroundTimer(time_t curtime) CXX11_OVERRIDE
{
timedbans expired;