diff options
author | Adam <Adam@anope.org> | 2013-01-03 11:41:32 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-01-03 12:34:01 -0500 |
commit | 098157dca8a4aecc18294cbc31cbe5ee95b35a94 (patch) | |
tree | 654f00f21e151ba9007ca8eb044a78fef1bd6e39 /modules/pseudoclients/operserv.cpp | |
parent | 827469600e8cf98fea7aec09ceaa77a097300b72 (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.cpp | 10 |
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> ¶ms) anope_override |