diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-04-29 23:05:09 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-04-29 23:05:09 +0000 |
commit | 8aa7fbe0eacc7c0aec682029ef479ca55832a534 (patch) | |
tree | 00d84ac20cb23aa96e3782b98a8b29b4d99971ed /src | |
parent | 7fc9b4f943c944cc54be86b4228c74d85f5336c3 (diff) |
Properly track users who join channels using an exception
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2920 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/regchannel.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/regchannel.cpp b/src/regchannel.cpp index 582266956..97251b977 100644 --- a/src/regchannel.cpp +++ b/src/regchannel.cpp @@ -581,11 +581,8 @@ bool ChannelInfo::CheckKick(User *user) if (is_ulined(user->server->name)) return false; - if (this->HasFlag(CI_SUSPENDED) || this->HasFlag(CI_FORBIDDEN)) + if (!is_oper(user) && (this->HasFlag(CI_SUSPENDED) || this->HasFlag(CI_FORBIDDEN))) { - if (is_oper(user)) - return 0; - get_idealban(this, user, mask, sizeof(mask)); reason = this->forbidreason ? this->forbidreason : getstring(user, CHAN_MAY_NOT_BE_USED); set_modes = true; @@ -598,7 +595,7 @@ bool ChannelInfo::CheckKick(User *user) nc = NULL; if (!do_kick && ModeManager::FindChannelModeByName(CMODE_EXCEPT) && is_excepted(this, user) == 1) - return true; + return false; for (unsigned j = 0; j < this->GetAkickCount(); ++j) { |