summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-12-29 23:16:10 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-12-29 23:16:10 +0000
commit7665af27cd8317bd4fc017d78e3d1b89d6b0a823 (patch)
treeea4f8e4bf15dcf91ba0622ff0a8b036b0a91f8ef /src/core
parentdf107dac1f50e721493aaf0657f85cba5ef8b35f (diff)
Chnaged ChannelModeSet/Unset events to be able to block checks such as secureops and mlock, and made it so you can't set a mode already set or unset a mode already unset so the modestacker doesn't send modes it doesn't need to
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2719 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/core')
-rw-r--r--src/core/os_defcon.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/core/os_defcon.c b/src/core/os_defcon.c
index 804839bf8..e336ad6fa 100644
--- a/src/core/os_defcon.c
+++ b/src/core/os_defcon.c
@@ -180,17 +180,21 @@ class OSDEFCON : public Module
return EVENT_CONTINUE;
}
- void OnChannelModeSet(Channel *c, ChannelModeName Name)
+ EventReturn OnChannelModeSet(Channel *c, ChannelModeName Name)
{
ChannelMode *cm = ModeManager::FindChannelModeByName(Name);
if (CheckDefCon(DEFCON_FORCE_CHAN_MODES) && cm && DefConModesOff.HasFlag(Name))
{
- c->RemoveMode(NULL, Name);
+ c->RemoveMode(findbot(Config.s_OperServ), Name);
+
+ return EVENT_STOP;
}
+
+ return EVENT_CONTINUE;
}
- void OnChannelModeUnset(Channel *c, ChannelModeName Name)
+ EventReturn OnChannelModeUnset(Channel *c, ChannelModeName Name)
{
ChannelMode *cm = ModeManager::FindChannelModeByName(Name);
@@ -200,12 +204,16 @@ class OSDEFCON : public Module
if (GetDefConParam(Name, &param))
{
- c->SetMode(NULL, Name, param);
+ c->SetMode(findbot(Config.s_OperServ), Name, param);
}
else
- c->SetMode(NULL, Name);
+ c->SetMode(findbot(Config.s_OperServ), Name);
+
+ return EVENT_STOP;
}
+
+ return EVENT_CONTINUE;
}
EventReturn OnPreCommandRun(const char *service, User *u, const char *cmd, Command *c)