ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding)
{
// only a u-lined server may add or remove the +r mode.
- if (!IS_LOCAL(source) || ServerInstance->ULine(source->nick.c_str()) || ServerInstance->ULine(source->server))
+ if (!IS_LOCAL(source) || ServerInstance->ULine(source->server))
{
// Only change the mode if it's not redundant
if ((adding != channel->IsModeSet('r')))
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding)
{
- if (!IS_LOCAL(source) || ServerInstance->ULine(source->nick.c_str()) || ServerInstance->ULine(source->server))
+ if (!IS_LOCAL(source) || ServerInstance->ULine(source->server))
{
if ((adding != dest->IsModeSet('r')))
{
void init()
{
- ServerInstance->Modules->AddService(m1);
- ServerInstance->Modules->AddService(m2);
- ServerInstance->Modules->AddService(m3);
- ServerInstance->Modules->AddService(m4);
- ServerInstance->Modules->AddService(m5);
- ServerInstance->Modules->AddService(accountname);
+ ServiceProvider* providerlist[] = { &m1, &m2, &m3, &m4, &m5, &accountname };
+ ServerInstance->Modules->AddServices(providerlist, sizeof(providerlist)/sizeof(ServiceProvider*));
Implementation eventlist[] = { I_OnWhois, I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserPreJoin, I_OnCheckBan,
I_OnDecodeMetaData, I_On005Numeric, I_OnUserPostNick, I_OnSetConnectClass };
- ServerInstance->Modules->Attach(eventlist, this, 9);
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
void On005Numeric(std::string &t)