summaryrefslogtreecommitdiff
path: root/modules/pseudoclients/operserv.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-01-03 11:41:32 -0500
committerAdam <Adam@anope.org>2013-01-03 12:34:01 -0500
commit098157dca8a4aecc18294cbc31cbe5ee95b35a94 (patch)
tree654f00f21e151ba9007ca8eb044a78fef1bd6e39 /modules/pseudoclients/operserv.cpp
parent827469600e8cf98fea7aec09ceaa77a097300b72 (diff)
Don't delete users immediately when quit or killed, instead wait until message processing is done
Diffstat (limited to 'modules/pseudoclients/operserv.cpp')
-rw-r--r--modules/pseudoclients/operserv.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/modules/pseudoclients/operserv.cpp b/modules/pseudoclients/operserv.cpp
index 02ec216f4..7fd11b73d 100644
--- a/modules/pseudoclients/operserv.cpp
+++ b/modules/pseudoclients/operserv.cpp
@@ -237,9 +237,9 @@ class OperServCore : public Module
Log(u, "oper", OperServ) << "is no longer an IRC operator";
}
- void OnUserConnect(Reference<User> &u, bool &exempt) anope_override
+ void OnUserConnect(User *u, bool &exempt) anope_override
{
- if (u && !exempt)
+ if (!u->Quitting() && !exempt)
XLineManager::CheckAll(u);
}
@@ -249,11 +249,9 @@ class OperServCore : public Module
this->sqlines.CheckAllXLines(u);
}
- EventReturn OnCheckKick(User *u, ChannelInfo *ci, bool &kick) anope_override
+ EventReturn OnCheckKick(User *u, ChannelInfo *ci, Anope::string &mask, Anope::string &reason) anope_override
{
- if (this->sqlines.CheckChannel(ci->c))
- kick = true;
- return EVENT_CONTINUE;
+ return this->sqlines.CheckChannel(ci->c) ? EVENT_STOP : EVENT_CONTINUE;
}
EventReturn OnPreHelp(CommandSource &source, const std::vector<Anope::string> &params) anope_override