From 7665af27cd8317bd4fc017d78e3d1b89d6b0a823 Mon Sep 17 00:00:00 2001 From: Adam- Date: Tue, 29 Dec 2009 23:16:10 +0000 Subject: 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 --- src/core/os_defcon.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/core') 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, ¶m)) { - 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) -- cgit