* @return The number of users left on the channel. If this is zero
* when the method returns, you MUST delete the Channel immediately!
*/
- long ServerKickUser(User* user, const char* reason, bool triggerevents, const char* servername = NULL);
+ long ServerKickUser(User* user, const char* reason, const char* servername = NULL);
/** Part a user from this channel with the given reason.
* If the reason field is NULL, no reason will be sent.
return this->GetUserCounter();
}
-long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents, const char* servername)
+long Channel::ServerKickUser(User* user, const char* reason, const char* servername)
{
bool silent = false;
if (servername == NULL || *ServerInstance->Config->HideWhoisServer)
servername = ServerInstance->Config->ServerName;
- if (triggerevents)
- {
- FOREACH_MOD(I_OnUserKick,OnUserKick(NULL, user, this, reason, silent));
- }
+ FOREACH_MOD(I_OnUserKick,OnUserKick(NULL, user, this, reason, silent));
UCListIter i = user->chans.find(this);
if (i != user->chans.end())
char kickmessage[MAXBUF];
snprintf(kickmessage, MAXBUF, "Channel flood triggered (limit is %d lines in %d secs)", f->lines, f->secs);
- if (!dest->ServerKickUser(user, kickmessage, true))
+ if (!dest->ServerKickUser(user, kickmessage))
{
delete dest;
}
*/
if (IS_LOCAL(dest))
{
- if (!channel->ServerKickUser(dest, reason, true, servername))
+ if (!channel->ServerKickUser(dest, reason, servername))
delete channel;
Channel* n = ServerInstance->FindChan(parameters[1]);
void ModuleSpanningTree::OnUserKick(User* source, User* user, Channel* chan, const std::string &reason, bool &silent)
{
+ if (loopCall)
+ return;
if ((source) && (IS_LOCAL(source)))
{
std::deque<std::string> params;
User* user = this->ServerInstance->FindNick(nick);
if (user)
{
- if (!chan->ServerKickUser(user, params[2].c_str(), false, pf->GetName().c_str()))
+ if (!chan->ServerKickUser(user, params[2].c_str(), pf->GetName().c_str()))
/* Yikes, the channels gone! */
delete chan;
}