]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_filter.cpp
Replace large if/else blocks for target.type with switches (#1668).
[user/henk/code/inspircd.git] / src / modules / m_filter.cpp
index 8e51fd6835922b497a61513186747bcb49efb7d8..e7aab2eeb9dad4ba6d0d2f48073bcc6d9da3c850 100644 (file)
@@ -372,25 +372,32 @@ ModResult ModuleFilter::OnUserPreMessage(User* user, const MessageTarget& msgtar
        {
                bool is_selfmsg = false;
                std::string target;
-               if (msgtarget.type == MessageTarget::TYPE_USER)
+               switch (msgtarget.type)
                {
-                       User* t = msgtarget.Get<User>();
-                       // Check if the target nick is exempted, if yes, ignore this message
-                       if (exemptednicks.count(t->nick))
-                               return MOD_RES_PASSTHRU;
+                       case MessageTarget::TYPE_USER:
+                       {
+                               User* t = msgtarget.Get<User>();
+                               // Check if the target nick is exempted, if yes, ignore this message
+                               if (exemptednicks.count(t->nick))
+                                       return MOD_RES_PASSTHRU;
 
-                       if (user == t)
-                               is_selfmsg = true;
+                               if (user == t)
+                                       is_selfmsg = true;
 
-                       target = t->nick;
-               }
-               else if (msgtarget.type == MessageTarget::TYPE_CHANNEL)
-               {
-                       Channel* t = msgtarget.Get<Channel>();
-                       if (exemptedchans.count(t->name))
-                               return MOD_RES_PASSTHRU;
+                               target = t->nick;
+                               break;
+                       }
+                       case MessageTarget::TYPE_CHANNEL:
+                       {
+                               Channel* t = msgtarget.Get<Channel>();
+                               if (exemptedchans.count(t->name))
+                                       return MOD_RES_PASSTHRU;
 
-                       target = t->name;
+                               target = t->name;
+                               break;
+                       }
+                       case MessageTarget::TYPE_SERVER:
+                               break;
                }
 
                if (is_selfmsg && warnonselfmsg)