(*(ServerInstance->chanlist))[cname.c_str()] = this;
this->name.assign(cname, 0, ServerInstance->Config->Limits.ChanMax);
- this->created = ts ? ts : ServerInstance->Time();
- this->age = this->created;
+ this->age = ts ? ts : ServerInstance->Time();
maxbans = topicset = 0;
modes.reset();
strlcpy(cname, cn, Instance->Config->Limits.ChanMax);
Ptr = Instance->FindChan(cname);
+ bool created_by_local = false;
if (!Ptr)
{
else
{
privs = "@";
+ created_by_local = true;
}
if (IS_LOCAL(user) && override == false)
}
}
- /* As spotted by jilles, dont bother to set this on remote users */
- if (IS_LOCAL(user) && Ptr->GetUserCounter() == 0)
+ if (created_by_local)
+ {
+ /* As spotted by jilles, dont bother to set this on remote users */
Ptr->SetDefaultModes();
+ }
return Channel::ForceChan(Instance, Ptr, user, privs, bursting);
}
Channel* Channel::ForceChan(InspIRCd* Instance, Channel* Ptr, User* user, const std::string &privs, bool bursting)
-{
+{
std::string nick = user->nick;
bool silent = false;
prefixes.erase(n);
}
}
-