-
- m1 = new AChannel_R(ServerInstance);
- m2 = new AChannel_M(ServerInstance);
- m3 = new AUser_R(ServerInstance);
- ServerInstance->AddMode(m1, 'R');
- ServerInstance->AddMode(m2, 'M');
- ServerInstance->AddMode(m3, 'R');
+
+ if (!ServerInstance->Modes->AddMode(&m1) || !ServerInstance->Modes->AddMode(&m2) ||
+ !ServerInstance->Modes->AddMode(&m3) || !ServerInstance->Modes->AddMode(&m4) ||
+ !ServerInstance->Modes->AddMode(&m5))
+ throw ModuleException("Some other module has claimed our modes!");
+
+ Extensible::Register(&accountname);
+ Implementation eventlist[] = { I_OnWhois, I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserPreJoin, I_OnCheckBan,
+ I_OnSyncUser, I_OnUserQuit, I_OnCleanup, I_OnDecodeMetaData, I_On005Numeric, I_OnUserPostNick };
+
+ ServerInstance->Modules->Attach(eventlist, this, 10);
+ }
+
+ void On005Numeric(std::string &t)
+ {
+ ServerInstance->AddExtBanChar('R');