* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * InspIRCd: (C) 2002-2010 InspIRCd Development Team
* See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
Version ModuleDelayJoin::GetVersion()
{
- return Version("Allows for delay-join channels (+D) where users dont appear to join until they speak", VF_COMMON | VF_VENDOR);
+ return Version("Allows for delay-join channels (+D) where users dont appear to join until they speak", VF_VENDOR);
}
void ModuleDelayJoin::OnNamesListItem(User* issuer, Membership* memb, std::string &prefixes, std::string &nick)
/* Display the join to everyone else (the user who joined got it earlier) */
channel->WriteAllExceptSender(user, false, 0, "JOIN %s", channel->name.c_str());
- std::string n = ServerInstance->Modes->ModeString(user, channel);
- if (n.length() > 0)
- channel->WriteAllExceptSender(user, false, 0, "MODE %s +%s", channel->name.c_str(), n.c_str());
+ std::string ms = memb->modes;
+ for(unsigned int i=0; i < memb->modes.length(); i++)
+ ms.append(" ").append(user->nick);
+
+ if (ms.length() > 0)
+ channel->WriteAllExceptSender(user, false, 0, "MODE %s +%s", channel->name.c_str(), ms.c_str());
}
MODULE_INIT(ModuleDelayJoin)