X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_chanprotect.cpp;h=caef4961f2dec09a33735aa0fbe9b078af9a4b80;hb=1bfa48143c04504181d1b194af151fae2dac1eb1;hp=abfd9827853056faaea51c6d248b5ffb40b219e6;hpb=2fabf1ccd1897c55b58757d8ed722a025f93554f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_chanprotect.cpp b/src/modules/m_chanprotect.cpp index abfd98278..caef4961f 100644 --- a/src/modules/m_chanprotect.cpp +++ b/src/modules/m_chanprotect.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * InspIRCd: (C) 2002-2010 InspIRCd Development Team * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see @@ -44,31 +44,6 @@ class FounderProtectBase { } - ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string ¶meter) - { - User* x = ServerInstance->FindNick(parameter); - if (x) - { - Membership* memb = channel->GetUser(x); - if (!memb) - { - return std::make_pair(false, parameter); - } - else - { - if (memb->hasMode(mode)) - { - return std::make_pair(true, x->nick); - } - else - { - return std::make_pair(false, parameter); - } - } - } - return std::make_pair(false, parameter); - } - void RemoveMode(Channel* channel, irc::modestacker* stack) { const UserMembList* cl = channel->GetUsers(); @@ -125,7 +100,7 @@ class ChanFounder : public ModeHandler, public FounderProtectBase { public: ChanFounder(Module* Creator) - : ModeHandler(Creator, 'q', PARAM_ALWAYS, MODETYPE_CHANNEL), + : ModeHandler(Creator, "founder", 'q', PARAM_ALWAYS, MODETYPE_CHANNEL), FounderProtectBase('q', "founder", 386, 387) { ModeHandler::list = true; @@ -143,11 +118,6 @@ class ChanFounder : public ModeHandler, public FounderProtectBase return FOUNDER_VALUE; } - ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string ¶meter) - { - return FounderProtectBase::ModeSet(source, dest, channel, parameter); - } - void RemoveMode(Channel* channel, irc::modestacker* stack) { FounderProtectBase::RemoveMode(channel, stack); @@ -177,10 +147,6 @@ class ChanFounder : public ModeHandler, public FounderProtectBase ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) { - User* theuser = ServerInstance->FindNick(parameter); - - if (!theuser) - return MODEACTION_DENY; return MODEACTION_ALLOW; } @@ -196,7 +162,7 @@ class ChanProtect : public ModeHandler, public FounderProtectBase { public: ChanProtect(Module* Creator) - : ModeHandler(Creator, 'a', PARAM_ALWAYS, MODETYPE_CHANNEL), + : ModeHandler(Creator, "admin", 'a', PARAM_ALWAYS, MODETYPE_CHANNEL), FounderProtectBase('a',"protected user", 388, 389) { ModeHandler::list = true; @@ -215,11 +181,6 @@ class ChanProtect : public ModeHandler, public FounderProtectBase return PROTECT_VALUE; } - ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string ¶meter) - { - return FounderProtectBase::ModeSet(source, dest, channel, parameter); - } - void RemoveMode(Channel* channel, irc::modestacker* stack) { FounderProtectBase::RemoveMode(channel, stack); @@ -253,11 +214,6 @@ class ChanProtect : public ModeHandler, public FounderProtectBase ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) { - User* theuser = ServerInstance->FindNick(parameter); - - if (!theuser) - return MODEACTION_DENY; - return MODEACTION_ALLOW; } @@ -274,15 +230,17 @@ class ModuleChanProtect : public Module ChanFounder cf; public: ModuleChanProtect() : cp(this), cf(this) + { + } + + void init() { /* Load config stuff */ LoadSettings(); settings.booting = false; - if (!ServerInstance->Modes->AddMode(&cp) || !ServerInstance->Modes->AddMode(&cf)) - { - throw ModuleException("Could not add new modes!"); - } + ServerInstance->Modules->AddService(cf); + ServerInstance->Modules->AddService(cp); Implementation eventlist[] = { I_OnUserPreJoin }; ServerInstance->Modules->Attach(eventlist, this, 1); @@ -303,14 +261,14 @@ class ModuleChanProtect : public Module if ((APrefix && QPrefix) && APrefix == QPrefix) throw ModuleException("What the smeg, why are both your +q and +a prefixes the same character?"); - if (ServerInstance->Modes->FindPrefix(APrefix) && ServerInstance->Modes->FindPrefix(APrefix) != &cp) - throw ModuleException("Looks like the +a prefix you picked for m_chanprotect is already in use. Pick another."); - - if (ServerInstance->Modes->FindPrefix(QPrefix) && ServerInstance->Modes->FindPrefix(QPrefix) != &cf) - throw ModuleException("Looks like the +q prefix you picked for m_chanprotect is already in use. Pick another."); - if (settings.booting) { + if (APrefix && ServerInstance->Modes->FindPrefix(APrefix) && ServerInstance->Modes->FindPrefix(APrefix) != &cp) + throw ModuleException("Looks like the +a prefix you picked for m_chanprotect is already in use. Pick another."); + + if (QPrefix && ServerInstance->Modes->FindPrefix(QPrefix) && ServerInstance->Modes->FindPrefix(QPrefix) != &cf) + throw ModuleException("Looks like the +q prefix you picked for m_chanprotect is already in use. Pick another."); + cp.setPrefix(APrefix); cf.setPrefix(QPrefix); } @@ -331,7 +289,7 @@ class ModuleChanProtect : public Module Version GetVersion() { - return Version("Founder and Protect modes (+qa)", VF_COMMON | VF_VENDOR); + return Version("Founder and Protect modes (+qa)", VF_VENDOR); } };