- ModResult OnPreMode(User* source, User* dest, Channel* channel, const std::vector<std::string>& parameters)
+class DummyZ : public ModeHandler
+{
+ public:
+ DummyZ(Module* parent) : ModeHandler(parent, "namebase", 'Z', PARAM_ALWAYS, MODETYPE_CHANNEL)
+ {
+ list = true;
+ }
+
+ // Handle /MODE #chan Z
+ void DisplayList(User* user, Channel* chan)
+ {
+ if (IS_LOCAL(user))
+ ::DisplayList(static_cast<LocalUser*>(user), chan);
+ }
+};
+
+class ModuleNamedModes : public Module
+{
+ CommandProp cmd;
+ DummyZ dummyZ;
+ public:
+ ModuleNamedModes() : cmd(this), dummyZ(this)
+ {
+ }
+
+ Version GetVersion() CXX11_OVERRIDE
+ {
+ return Version("Provides the ability to manipulate modes via long names.",VF_VENDOR);
+ }
+
+ void Prioritize()
+ {
+ ServerInstance->Modules->SetPriority(this, I_OnPreMode, PRIORITY_FIRST);
+ }
+
+ ModResult OnPreMode(User* source, User* dest, Channel* channel, Modes::ChangeList& modes) CXX11_OVERRIDE