diff options
| author | Adam <Adam@anope.org> | 2011-05-06 18:02:53 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2011-05-16 04:10:18 -0400 |
| commit | fd4b52ec385167794eaadb18ee635bef757728ee (patch) | |
| tree | 49d3e835b072a10887309d8d9155982a5aa61ed0 /src/channels.cpp | |
| parent | b59602abf85d522bb2f188be70b6cb7c9556a856 (diff) | |
Added os_forbid
Diffstat (limited to 'src/channels.cpp')
| -rw-r--r-- | src/channels.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 1c852aae2..66066ce37 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -14,8 +14,6 @@ channel_map ChannelList; -static const Anope::string ChannelFlagString[] = { "CH_PERSIST", "CH_SYNCING", "CH_LOGCHAN", "" }; - /** Default constructor * @param name The channel name * @param ts The time the channel was created @@ -191,7 +189,7 @@ void Channel::DeleteUser(User *user) return; /* Additionally, do not delete this channel if ChanServ/a BotServ bot is inhabiting it */ - if (this->ci && this->ci->HasFlag(CI_INHABIT)) + if (this->HasFlag(CH_INHABIT)) return; /* check for BSMinUsers and part the BotServ bot from the channel @@ -791,6 +789,8 @@ void Channel::KickInternal(const Anope::string &source, const Anope::string &nic if (target->FindChannel(this)) { FOREACH_MOD(I_OnUserKicked, OnUserKicked(this, target, source, reason)); + if (bi) + this->SetFlag(CH_INHABIT); this->DeleteUser(target); } else @@ -798,7 +798,10 @@ void Channel::KickInternal(const Anope::string &source, const Anope::string &nic /* Bots get rejoined */ if (bi) + { bi->Join(this, &Config->BotModeList); + this->UnsetFlag(CH_INHABIT); + } } /** Kick a user from the channel @@ -1110,9 +1113,6 @@ void chan_set_correct_modes(User *user, Channel *c, int give_modes) if (!c || !(ci = c->ci)) return; - if (ci->HasFlag(CI_FORBIDDEN) || c->name[0] == '+') - return; - Log(LOG_DEBUG) << "Setting correct user modes for " << user->nick << " on " << c->name << " (" << (give_modes ? "" : "not ") << "giving modes)"; if (give_modes && (!user->Account() || user->Account()->HasFlag(NI_AUTOOP))) |
