ModeHandler::~ModeHandler()
{
- ServerInstance->Modes->DelMode(this);
+ if (ServerInstance)
+ ServerInstance->Modes->DelMode(this);
}
bool ModeHandler::IsListMode()
{
if (!ServerInstance->Modes->AddMode(&be))
throw ModuleException("Could not add new modes!");
- ServerInstance->Modules->PublishInterface("ChannelBanList", this);
be.DoImplements(this);
Implementation list[] = { I_OnRehash, I_On005Numeric, I_OnExtBanCheck, I_OnCheckChannelBan };
Version GetVersion()
{
- return Version("Provides support for the +e channel mode", VF_COMMON | VF_VENDOR, API_VERSION);
- }
-
- ~ModuleBanException()
- {
- ServerInstance->Modules->UnpublishInterface("ChannelBanList", this);
+ return Version("Provides support for the +e channel mode", VF_COMMON | VF_VENDOR);
}
};
{
if (!ServerInstance->Modes->AddMode(&ie))
throw ModuleException("Could not add new modes!");
- ServerInstance->Modules->PublishInterface("ChannelBanList", this);
ie.DoImplements(this);
Implementation eventlist[] = { I_On005Numeric, I_OnCheckInvite };
modelist* list = ie.extItem.get(chan);
if (list)
{
- std::string mask = std::string(user->nick) + "!" + user->ident + "@" + user->GetIPString();
for (modelist::iterator it = list->begin(); it != list->end(); it++)
{
if (chan->CheckBan(user, it->mask))
}
}
}
- // or if there wasn't a list, there can't be anyone on it, so we don't need to do anything.
}
return MOD_RES_PASSTHRU;
Version GetVersion()
{
- return Version("Provides support for the +I channel mode", VF_VENDOR | VF_COMMON, API_VERSION);
- }
-
- ~ModuleInviteException()
- {
- ServerInstance->Modules->UnpublishInterface("ChannelBanList", this);
+ return Version("Provides support for the +I channel mode", VF_VENDOR | VF_COMMON);
}
};
return Version("Provides the ability to manipulate modes via long names.",VF_VENDOR);
}
+ void Prioritize()
+ {
+ ServerInstance->Modules->SetPriority(this, I_OnPreMode, PRIORITY_FIRST);
+ }
+
void On005Numeric(std::string& line)
{
std::string::size_type pos = line.find(" CHANMODES=");
this->SendError("Exiting with status " + ConvToStr(status) + " (" + std::string(ExitCodes[status]) + ")");
this->Cleanup();
delete this;
+ ServerInstance = NULL;
}
exit (status);
}