#include "inspircd.h"
-/* $ModDesc: Forces users to join the specified channel(s) on connect */
-
class ModuleConnJoin : public Module
{
public:
- void init()
+ void init() CXX11_OVERRIDE
{
Implementation eventlist[] = { I_OnPostConnect };
- ServerInstance->Modules->Attach(eventlist, this, 1);
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
void Prioritize()
ServerInstance->Modules->SetPriority(this, I_OnPostConnect, PRIORITY_LAST);
}
- Version GetVersion()
+ Version GetVersion() CXX11_OVERRIDE
{
return Version("Forces users to join the specified channel(s) on connect", VF_VENDOR);
}
- void OnPostConnect(User* user)
+ void OnPostConnect(User* user) CXX11_OVERRIDE
{
- if (!IS_LOCAL(user))
+ LocalUser* localuser = IS_LOCAL(user);
+ if (!localuser)
return;
std::string chanlist = ServerInstance->Config->ConfValue("autojoin")->getString("channel");
- chanlist = user->GetClass()->config->getString("autojoin", chanlist);
+ chanlist = localuser->GetClass()->config->getString("autojoin", chanlist);
irc::commasepstream chans(chanlist);
std::string chan;
while (chans.GetToken(chan))
{
- if (ServerInstance->IsChannel(chan.c_str(), ServerInstance->Config->Limits.ChanMax))
- Channel::JoinUser(user, chan.c_str(), false, "", false, ServerInstance->Time());
+ if (ServerInstance->IsChannel(chan))
+ Channel::JoinUser(localuser, chan);
}
}
};
-
MODULE_INIT(ModuleConnJoin)