]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_delayjoin.cpp
m_spanningtree Remove duplicate code for sending channel messages from RouteCommand()
[user/henk/code/inspircd.git] / src / modules / m_delayjoin.cpp
index bf699cf7e54f1d6e7f453c1c4505c59152eb5c98..444cbbc395db258153b04a03ad0f4a150591365c 100644 (file)
@@ -20,8 +20,6 @@
  */
 
 
-/* $ModDesc: Allows for delay-join channels (+D) where users don't appear to join until they speak */
-
 #include "inspircd.h"
 #include <stdarg.h>
 
@@ -46,28 +44,26 @@ class ModuleDelayJoin : public Module
        {
        }
 
-       void init()
+       void init() CXX11_OVERRIDE
        {
                ServerInstance->Modules->AddService(djm);
                ServerInstance->Modules->AddService(unjoined);
-               Implementation eventlist[] = { I_OnUserJoin, I_OnUserPart, I_OnUserKick, I_OnBuildNeighborList, I_OnNamesListItem, I_OnText, I_OnRawMode };
-               ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
        }
-       Version GetVersion();
-       void OnNamesListItem(User* issuer, Membership*, std::string &prefixes, std::string &nick);
-       void OnUserJoin(Membership*, bool, bool, CUList&);
+       Version GetVersion() CXX11_OVERRIDE;
+       void OnNamesListItem(User* issuer, Membership*, std::string &prefixes, std::string &nick) CXX11_OVERRIDE;
+       void OnUserJoin(Membership*, bool, bool, CUList&) CXX11_OVERRIDE;
        void CleanUser(User* user);
-       void OnUserPart(Membership*, std::string &partmessage, CUList&);
-       void OnUserKick(User* source, Membership*, const std::string &reason, CUList&);
-       void OnBuildNeighborList(User* source, UserChanList &include, std::map<User*,bool> &exception);
-       void OnText(User* user, void* dest, int target_type, const std::string &text, char status, CUList &exempt_list);
-       ModResult OnRawMode(User* user, Channel* channel, const char mode, const std::string &param, bool adding, int pcnt);
+       void OnUserPart(Membership*, std::string &partmessage, CUList&) CXX11_OVERRIDE;
+       void OnUserKick(User* source, Membership*, const std::string &reason, CUList&) CXX11_OVERRIDE;
+       void OnBuildNeighborList(User* source, UserChanList &include, std::map<User*,bool> &exception) CXX11_OVERRIDE;
+       void OnText(User* user, void* dest, int target_type, const std::string &text, char status, CUList &exempt_list) CXX11_OVERRIDE;
+       ModResult OnRawMode(User* user, Channel* channel, const char mode, const std::string &param, bool adding, int pcnt) CXX11_OVERRIDE;
 };
 
 ModeAction DelayJoinMode::OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
 {
        /* no change */
-       if (channel->IsModeSet('D') == adding)
+       if (channel->IsModeSet(this) == adding)
                return MODEACTION_DENY;
 
        if (!adding)
@@ -80,7 +76,7 @@ ModeAction DelayJoinMode::OnModeChange(User* source, User* dest, Channel* channe
                for (UserMembCIter n = names->begin(); n != names->end(); ++n)
                        creator->OnText(n->first, channel, TYPE_CHANNEL, "", 0, empty);
        }
-       channel->SetMode('D', adding);
+       channel->SetMode(this, adding);
        return MODEACTION_ALLOW;
 }
 
@@ -113,7 +109,7 @@ static void populate(CUList& except, Membership* memb)
 
 void ModuleDelayJoin::OnUserJoin(Membership* memb, bool sync, bool created, CUList& except)
 {
-       if (memb->chan->IsModeSet('D'))
+       if (memb->chan->IsModeSet(djm))
        {
                unjoined.set(memb, 1);
                populate(except, memb);