Channel::Channel(InspIRCd* Instance, const std::string &cname, time_t ts) : ServerInstance(Instance)
{
- chan_hash::iterator findchan = ServerInstance->chanlist->find(name);
+ chan_hash::iterator findchan = ServerInstance->chanlist->find(cname);
if (findchan != Instance->chanlist->end())
throw CoreException("Cannot create duplicate channel " + cname);
return this->GetUserCounter();
}
-long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents)
+long Channel::ServerKickUser(User* user, const char* reason, bool triggerevents, const char* servername)
{
bool silent = false;
}
}
+ if (servername == NULL)
+ servername = ServerInstance->Config->ServerName;
+
if (triggerevents)
{
FOREACH_MOD(I_OnUserKick,OnUserKick(NULL, user, this, reason, silent));
if (i != user->chans.end())
{
if (!silent)
- this->WriteChannelWithServ(ServerInstance->Config->ServerName, "KICK %s %s :%s", this->name, user->nick, reason);
+ this->WriteChannelWithServ(servername, "KICK %s %s :%s", this->name, user->nick, reason);
user->chans.erase(i);
this->RemoveAllPrefixes(user);