]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands/cmd_invite.cpp
Rename <connect:nouserdns> to <connect:resolvehostnames>.
[user/henk/code/inspircd.git] / src / commands / cmd_invite.cpp
index c69e6bd1be19fa2f99bf00d53401edb699fc92a6..2ed05c550033c8344cd430c4ad408a7df8f2ebee 100644 (file)
@@ -40,6 +40,10 @@ class CommandInvite : public Command
         * @return A value from CmdResult to indicate command success or failure.
         */
        CmdResult Handle(const std::vector<std::string>& parameters, User *user);
+       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
+       {
+               return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST);
+       }
 };
 
 /** Handle /INVITE
@@ -61,7 +65,7 @@ CmdResult CommandInvite::Handle (const std::vector<std::string>& parameters, Use
                if (parameters.size() == 3)
                {
                        if (IS_LOCAL(user))
-                               timeout = ServerInstance->Time() + ServerInstance->Duration(parameters[2]);
+                               timeout = ServerInstance->Time() + InspIRCd::Duration(parameters[1]);
                        else
                                timeout = ConvToInt(parameters[2]);
                }
@@ -107,9 +111,14 @@ CmdResult CommandInvite::Handle (const std::vector<std::string>& parameters, Use
                }
 
                if (IS_LOCAL(u))
-                       IS_LOCAL(u)->InviteTo(c->name.c_str(), timeout);
-               u->WriteFrom(user,"INVITE %s :%s",u->nick.c_str(),c->name.c_str());
-               user->WriteNumeric(RPL_INVITING, "%s %s %s",user->nick.c_str(),u->nick.c_str(),c->name.c_str());
+               {
+                       Invitation::Create(c, IS_LOCAL(u), timeout);
+                       u->WriteFrom(user,"INVITE %s :%s",u->nick.c_str(),c->name.c_str());
+               }
+
+               if (IS_LOCAL(user))
+                       user->WriteNumeric(RPL_INVITING, "%s %s %s",user->nick.c_str(),u->nick.c_str(),c->name.c_str());
+
                if (ServerInstance->Config->AnnounceInvites != ServerConfig::INVITE_ANNOUNCE_NONE)
                {
                        char prefix;
@@ -134,7 +143,7 @@ CmdResult CommandInvite::Handle (const std::vector<std::string>& parameters, Use
                        }
                        c->WriteAllExceptSender(user, true, prefix, "NOTICE %s :*** %s invited %s into the channel", c->name.c_str(), user->nick.c_str(), u->nick.c_str());
                }
-               FOREACH_MOD(I_OnUserInvite,OnUserInvite(user,u,c,timeout));
+               FOREACH_MOD(OnUserInvite, (user,u,c,timeout));
        }
        else if (IS_LOCAL(user))
        {