LocalIntExt unjoined;
ModuleDelayJoin() : djm(this), unjoined("delayjoin", this)
{
- if (!ServerInstance->Modes->AddMode(&djm))
- throw ModuleException("Could not add new modes!");
+ }
+
+ void init()
+ {
+ ServerInstance->Modules->AddService(djm);
+ ServerInstance->Modules->AddService(unjoined);
Implementation eventlist[] = { I_OnUserJoin, I_OnUserPart, I_OnUserKick, I_OnBuildNeighborList, I_OnNamesListItem, I_OnText, I_OnRawMode };
- ServerInstance->Modules->Attach(eventlist, this, 7);
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
~ModuleDelayJoin();
Version GetVersion();
if (!user || !channel || param.empty())
return MOD_RES_PASSTHRU;
+ ModeHandler* mh = ServerInstance->Modes->FindMode(mode, MODETYPE_CHANNEL);
+ // If not a prefix mode then we got nothing to do here
+ if (!mh || !mh->GetPrefixRank())
+ return MOD_RES_PASSTHRU;
+
User* dest;
if (IS_LOCAL(user))
dest = ServerInstance->FindNickOnly(param);