mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 02:59:01 -04:00
Merge pull request #163 from attilamolnar/insp20+silentjoinfix
[2.0] Don't send a MODE on join when the join was silenced by a module
This commit is contained in:
commit
c5beed4a5f
@ -400,11 +400,15 @@ Channel* Channel::ForceChan(Channel* Ptr, User* user, const std::string &privs,
|
||||
Ptr->WriteAllExcept(user, false, 0, except_list, "JOIN :%s", Ptr->name.c_str());
|
||||
|
||||
/* Theyre not the first ones in here, make sure everyone else sees the modes we gave the user */
|
||||
if ((Ptr->GetUserCounter() > 1) && (!memb->modes.empty()))
|
||||
{
|
||||
std::string ms = memb->modes;
|
||||
for(unsigned int i=0; i < memb->modes.length(); i++)
|
||||
ms.append(" ").append(user->nick);
|
||||
if ((Ptr->GetUserCounter() > 1) && (ms.length()))
|
||||
Ptr->WriteAllExceptSender(user, ServerInstance->Config->CycleHostsFromUser, 0, "MODE %s +%s", Ptr->name.c_str(), ms.c_str());
|
||||
|
||||
except_list.insert(user);
|
||||
Ptr->WriteAllExcept(user, !ServerInstance->Config->CycleHostsFromUser, 0, except_list, "MODE %s +%s", Ptr->name.c_str(), ms.c_str());
|
||||
}
|
||||
|
||||
if (IS_LOCAL(user))
|
||||
{
|
||||
@ -655,7 +659,7 @@ void Channel::WriteAllExcept(User* user, bool serversource, char status, CUList
|
||||
if (!text)
|
||||
return;
|
||||
|
||||
int offset = snprintf(textbuffer,MAXBUF,":%s ", user->GetFullHost().c_str());
|
||||
int offset = snprintf(textbuffer,MAXBUF,":%s ", serversource ? ServerInstance->Config->ServerName.c_str() : user->GetFullHost().c_str());
|
||||
|
||||
va_start(argsPtr, text);
|
||||
vsnprintf(textbuffer + offset, MAXBUF - offset, text, argsPtr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user