diff options
Diffstat (limited to 'src/regchannel.cpp')
-rw-r--r-- | src/regchannel.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/regchannel.cpp b/src/regchannel.cpp index d214eb6bd..8ee823e33 100644 --- a/src/regchannel.cpp +++ b/src/regchannel.cpp @@ -603,6 +603,12 @@ bool ChannelInfo::CheckKick(User *user) * as this will likely lead to kick/rejoin floods. ~ Viper */ if (user->server->IsULined()) return false; + + if (!do_kick && user->IsProtected()) + return false; + + if (ircd->chansqline && SQLineManager::Check(this->c)) + do_kick = true; if (!is_oper(user) && (this->HasFlag(CI_SUSPENDED) || this->HasFlag(CI_FORBIDDEN))) { @@ -612,9 +618,6 @@ bool ChannelInfo::CheckKick(User *user) do_kick = true; } - if (!do_kick && user->IsProtected()) - return false; - if (!do_kick && ModeManager::FindChannelModeByName(CMODE_EXCEPT) && is_excepted(this, user) == 1) return false; |