]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_spanningtree/svsnick.cpp
Fix typo.
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / svsnick.cpp
1 /*       +------------------------------------+
2  *       | Inspire Internet Relay Chat Daemon |
3  *       +------------------------------------+
4  *
5  *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
6  * See: http://wiki.inspircd.org/Credits
7  *
8  * This program is free but copyrighted software; see
9  *            the file COPYING for details.
10  *
11  * ---------------------------------------------------
12  */
13
14 #include "inspircd.h"
15
16 #include "main.h"
17 #include "utils.h"
18 #include "commands.h"
19
20 CmdResult CommandSVSNick::Handle(const std::vector<std::string>& parameters, User *user)
21 {
22         User* u = ServerInstance->FindNick(parameters[0]);
23
24         if (u && IS_LOCAL(u))
25         {
26                 std::string nick = parameters[1];
27                 if (isdigit(nick[0]))
28                         nick = u->uuid;
29
30                 if (!u->ForceNickChange(nick.c_str()))
31                 {
32                         /* buh. UID them */
33                         if (!u->ForceNickChange(u->uuid.c_str()))
34                         {
35                                 ServerInstance->Users->QuitUser(u, "Nickname collision");
36                                 return CMD_SUCCESS;
37                         }
38                 }
39
40                 u->age = atoi(parameters[2].c_str());
41         }
42
43         return CMD_SUCCESS;
44 }
45
46 RouteDescriptor CommandSVSNick::GetRouting(User* user, const std::vector<std::string>& parameters)
47 {
48         User* u = ServerInstance->FindNick(parameters[0]);
49         if (u)
50                 return ROUTE_OPT_UCAST(u->server);
51         return ROUTE_LOCALONLY;
52 }