/* Originally written by Om, January 2009
*/
-class BanRedirectEntry : public classbase
+class BanRedirectEntry
{
public:
std::string targetchan;
{
public:
SimpleExtItem<BanRedirectList> extItem;
- BanRedirect(Module* parent) : ModeWatcher('b', MODETYPE_CHANNEL),
+ BanRedirect(Module* parent) : ModeWatcher(parent, 'b', MODETYPE_CHANNEL),
extItem("banredirect", parent)
{
}
OnRehash(NULL);
- Extensible::Register(&re.extItem);
- Implementation list[] = { I_OnRehash, I_OnUserPreJoin, I_OnChannelDelete, I_OnCleanup };
- ServerInstance->Modules->Attach(list, this, 4);
+ ServerInstance->Extensions.Register(&re.extItem);
+ Implementation list[] = { I_OnRehash, I_OnUserPreJoin, I_OnChannelDelete };
+ ServerInstance->Modules->Attach(list, this, 3);
}
virtual void OnChannelDelete(Channel* chan)
* Maybe we should have a GetFullIPHost() or something to match GetFullHost() and GetFullRealHost?
*/
- if (ExceptionModule)
+ ModResult result;
+ FIRST_MOD_RESULT(OnCheckChannelBan, result, (user, chan));
+ if (result == MOD_RES_ALLOW)
{
- ListModeRequest n(this, ExceptionModule, user, chan);
- /* Users with ban exceptions are allowed to join without being redirected */
- if (n.Send())
- return MOD_RES_PASSTHRU;
+ // they have a ban exception
+ return MOD_RES_PASSTHRU;
}
std::string ipmask(user->nick);
virtual ~ModuleBanRedirect()
{
- ServerInstance->Modes->DelModeWatcher(&re);
}
virtual Version GetVersion()
{
- return Version("Allows an extended ban (+b) syntax redirecting banned users to another channel", VF_COMMON|VF_VENDOR, API_VERSION);
+ return Version("Allows an extended ban (+b) syntax redirecting banned users to another channel", VF_COMMON|VF_VENDOR);
}
void Prioritize()