]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_callerid.cpp
Convert WriteNumeric() calls to pass the parameters of the numeric as method parameters
[user/henk/code/inspircd.git] / src / modules / m_callerid.cpp
index 5c6d14a908555034f6198a4907952cc6137d8101..149767f1821cd58ebff5a72b20ceb0828c787d60 100644 (file)
@@ -89,7 +89,12 @@ struct CallerIDExtInfo : public ExtensionItem
                if (format == FORMAT_NETWORK)
                        return;
 
+               void* old = get_raw(container);
+               if (old)
+                       this->free(old);
                callerid_data* dat = new callerid_data;
+               set_raw(container, dat);
+
                irc::commasepstream s(value);
                std::string tok;
                if (s.GetToken(tok))
@@ -98,7 +103,7 @@ struct CallerIDExtInfo : public ExtensionItem
                while (s.GetToken(tok))
                {
                        User *u = ServerInstance->FindNick(tok);
-                       if ((u) && (u->registered == REG_ALL) && (!u->quitting) && (!IS_SERVER(u)))
+                       if ((u) && (u->registered == REG_ALL) && (!u->quitting))
                        {
                                if (dat->accepting.insert(u).second)
                                {
@@ -107,10 +112,6 @@ struct CallerIDExtInfo : public ExtensionItem
                                }
                        }
                }
-
-               void* old = set_raw(container, dat);
-               if (old)
-                       this->free(old);
        }
 
        callerid_data* get(User* user, bool create)
@@ -170,7 +171,7 @@ class CommandAccept : public Command
                else
                        target = ServerInstance->FindNickOnly(tok);
 
-               if ((!target) || (target->registered != REG_ALL) || (target->quitting) || (IS_SERVER(target)))
+               if ((!target) || (target->registered != REG_ALL) || (target->quitting))
                        target = NULL;
 
                return std::make_pair(target, !remove);
@@ -224,7 +225,7 @@ public:
                ACCEPTAction action = GetTargetAndAction(tok, user);
                if (!action.first)
                {
-                       user->WriteNumeric(ERR_NOSUCHNICK, "%s :No such nick/channel", tok.c_str());
+                       user->WriteNumeric(Numerics::NoSuchNick(tok));
                        return CMD_FAILURE;
                }
 
@@ -270,7 +271,7 @@ public:
                        for (callerid_data::UserSet::iterator i = dat->accepting.begin(); i != dat->accepting.end(); ++i)
                                user->WriteNumeric(RPL_ACCEPTLIST, (*i)->nick);
                }
-               user->WriteNumeric(RPL_ENDOFACCEPT, ":End of ACCEPT list");
+               user->WriteNumeric(RPL_ENDOFACCEPT, "End of ACCEPT list");
        }
 
        bool AddAccept(User* user, User* whotoadd)
@@ -279,12 +280,12 @@ public:
                callerid_data* dat = extInfo.get(user, true);
                if (dat->accepting.size() >= maxaccepts)
                {
-                       user->WriteNumeric(ERR_ACCEPTFULL, ":Accept list is full (limit is %d)", maxaccepts);
+                       user->WriteNumeric(ERR_ACCEPTFULL, InspIRCd::Format("Accept list is full (limit is %d)", maxaccepts));
                        return false;
                }
                if (!dat->accepting.insert(whotoadd).second)
                {
-                       user->WriteNumeric(ERR_ACCEPTEXIST, "%s :is already on your accept list", whotoadd->nick.c_str());
+                       user->WriteNumeric(ERR_ACCEPTEXIST, whotoadd->nick, "is already on your accept list");
                        return false;
                }
 
@@ -302,12 +303,12 @@ public:
                callerid_data* dat = extInfo.get(user, false);
                if (!dat)
                {
-                       user->WriteNumeric(ERR_ACCEPTNOT, "%s :is not on your accept list", whotoremove->nick.c_str());
+                       user->WriteNumeric(ERR_ACCEPTNOT, whotoremove->nick, "is not on your accept list");
                        return false;
                }
                if (!dat->accepting.erase(whotoremove))
                {
-                       user->WriteNumeric(ERR_ACCEPTNOT, "%s :is not on your accept list", whotoremove->nick.c_str());
+                       user->WriteNumeric(ERR_ACCEPTNOT, whotoremove->nick, "is not on your accept list");
                        return false;
                }
 
@@ -394,10 +395,10 @@ public:
                {
                        time_t now = ServerInstance->Time();
                        /* +g and *not* accepted */
-                       user->WriteNumeric(ERR_TARGUMODEG, "%s :is in +g mode (server-side ignore).", dest->nick.c_str());
+                       user->WriteNumeric(ERR_TARGUMODEG, dest->nick, "is in +g mode (server-side ignore).");
                        if (now > (dat->lastnotify + (time_t)notify_cooldown))
                        {
-                               user->WriteNumeric(RPL_TARGNOTIFY, "%s :has been informed that you messaged them.", dest->nick.c_str());
+                               user->WriteNumeric(RPL_TARGNOTIFY, dest->nick, "has been informed that you messaged them.");
                                dest->SendText(":%s %03d %s %s %s@%s :is messaging you, and you have umode +g. Use /ACCEPT +%s to allow.",
                                                ServerInstance->Config->ServerName.c_str(), RPL_UMODEGMSG, dest->nick.c_str(), user->nick.c_str(), user->ident.c_str(), user->dhost.c_str(), user->nick.c_str());
                                dat->lastnotify = now;
@@ -426,6 +427,12 @@ public:
                tracknick = tag->getBool("tracknick");
                notify_cooldown = tag->getInt("cooldown", 60);
        }
+
+       void Prioritize() CXX11_OVERRIDE
+       {
+               // Want to be after modules like silence or services_account
+               ServerInstance->Modules->SetPriority(this, I_OnUserPreMessage, PRIORITY_LAST);
+       }
 };
 
 MODULE_INIT(ModuleCallerID)