class ServProtectMode : public ModeHandler
{
public:
- ServProtectMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'k', 0, 0, false, MODETYPE_USER, true) { }
+ ServProtectMode(Module* Creator) : ModeHandler(Creator, 'k', PARAM_NONE, MODETYPE_USER) { oper = true; }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding)
{
*/
return MODEACTION_DENY;
}
-
- bool NeedsOper() { return true; }
};
class ModuleServProtectMode : public Module
{
-
ServProtectMode bm;
public:
- ModuleServProtectMode(InspIRCd* Me)
- : Module(Me), bm(Me, this)
+ ModuleServProtectMode()
+ : bm(this)
{
if (!ServerInstance->Modes->AddMode(&bm))
throw ModuleException("Could not add new modes!");
}
- virtual ~ModuleServProtectMode()
+ ~ModuleServProtectMode()
{
ServerInstance->Modes->DelMode(&bm);
}
- virtual Version GetVersion()
+ Version GetVersion()
{
- return Version("$Id$", VF_COMMON | VF_VENDOR, API_VERSION);
+ return Version("Provides support for Austhex style +k / UnrealIRCD +S services mode", VF_COMMON | VF_VENDOR, API_VERSION);
}
- virtual void OnWhois(User* src, User* dst)
+ void OnWhois(User* src, User* dst)
{
if (dst->IsModeSet('k'))
{
}
}
- virtual ModResult OnRawMode(User* user, Channel* chan, const char mode, const std::string ¶m, bool adding, int pcnt)
+ ModResult OnRawMode(User* user, Channel* chan, const char mode, const std::string ¶m, bool adding, int pcnt)
{
/* Check that the mode is not a server mode, it is being removed, the user making the change is local, there is a parameter,
* and the user making the change is not a uline
return MOD_RES_PASSTHRU;
}
- virtual ModResult OnKill(User* src, User* dst, const std::string &reason)
+ ModResult OnKill(User* src, User* dst, const std::string &reason)
{
if (src == NULL)
return MOD_RES_PASSTHRU;
return MOD_RES_PASSTHRU;
}
- virtual ModResult OnUserPreKick(User *src, User *dst, Channel *c, const std::string &reason)
+ ModResult OnUserPreKick(User *src, Membership* memb, const std::string &reason)
{
- if (dst->IsModeSet('k'))
+ if (memb->user->IsModeSet('k'))
{
- src->WriteNumeric(484, "%s %s :You are not permitted to kick services", src->nick.c_str(), c->name.c_str());
+ src->WriteNumeric(484, "%s %s :You are not permitted to kick services",
+ src->nick.c_str(), memb->chan->name.c_str());
return MOD_RES_DENY;
}
return MOD_RES_PASSTHRU;
}
- virtual ModResult OnWhoisLine(User* src, User* dst, int &numeric, std::string &text)
+ ModResult OnWhoisLine(User* src, User* dst, int &numeric, std::string &text)
{
return ((src != dst) && (numeric == 319) && dst->IsModeSet('k')) ? MOD_RES_DENY : MOD_RES_PASSTHRU;
}