1 /* +------------------------------------+
2 * | Inspire Internet Relay Chat Daemon |
3 * +------------------------------------+
5 * InspIRCd: (C) 2002-2010 InspIRCd Development Team
6 * See: http://wiki.inspircd.org/Credits
8 * This program is free but copyrighted software; see
9 * the file COPYING for details.
11 * ---------------------------------------------------
14 #ifndef __COMMANDS_H__
15 #define __COMMANDS_H__
21 class CommandRConnect : public Command
23 SpanningTreeUtilities* Utils; /* Utility class */
25 CommandRConnect (Module* Callback, SpanningTreeUtilities* Util);
26 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
27 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
30 class CommandRSQuit : public Command
32 SpanningTreeUtilities* Utils; /* Utility class */
34 CommandRSQuit(Module* Callback, SpanningTreeUtilities* Util);
35 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
36 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
37 void NoticeUser(User* user, const std::string &msg);
40 class CommandSVSJoin : public Command
43 CommandSVSJoin(Module* Creator) : Command(Creator, "SVSJOIN", 2) { flags_needed = FLAG_SERVERONLY; }
44 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
45 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
47 class CommandSVSPart : public Command
50 CommandSVSPart(Module* Creator) : Command(Creator, "SVSPART", 2) { flags_needed = FLAG_SERVERONLY; }
51 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
52 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
54 class CommandSVSNick : public Command
57 CommandSVSNick(Module* Creator) : Command(Creator, "SVSNICK", 2) { flags_needed = FLAG_SERVERONLY; }
58 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
59 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
61 class CommandMetadata : public Command
64 CommandMetadata(Module* Creator) : Command(Creator, "METADATA", 2) { flags_needed = FLAG_SERVERONLY; }
65 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
66 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
68 class CommandUID : public Command
71 CommandUID(Module* Creator) : Command(Creator, "UID", 10) { flags_needed = FLAG_SERVERONLY; }
72 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
73 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
75 class CommandOpertype : public Command
78 CommandOpertype(Module* Creator) : Command(Creator, "OPERTYPE", 1) { flags_needed = FLAG_SERVERONLY; }
79 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
80 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
82 class CommandFJoin : public Command
85 CommandFJoin(Module* Creator) : Command(Creator, "FJOIN", 3) { flags_needed = FLAG_SERVERONLY; }
86 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
87 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
88 /** Remove all modes from a channel, including statusmodes (+qaovh etc), simplemodes, parameter modes.
89 * This does not update the timestamp of the target channel, this must be done seperately.
91 void RemoveStatus(User* source, parameterlist ¶ms);
93 class CommandFMode : public Command
96 CommandFMode(Module* Creator) : Command(Creator, "FMODE", 3) { flags_needed = FLAG_SERVERONLY; }
97 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
98 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
100 class CommandFTopic : public Command
103 CommandFTopic(Module* Creator) : Command(Creator, "FTOPIC", 4) { flags_needed = FLAG_SERVERONLY; }
104 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
105 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
107 class CommandFHost : public Command
110 CommandFHost(Module* Creator) : Command(Creator, "FHOST", 1) { flags_needed = FLAG_SERVERONLY; }
111 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
112 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
114 class CommandFIdent : public Command
117 CommandFIdent(Module* Creator) : Command(Creator, "FIDENT", 1) { flags_needed = FLAG_SERVERONLY; }
118 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
119 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
121 class CommandFName : public Command
124 CommandFName(Module* Creator) : Command(Creator, "FNAME", 1) { flags_needed = FLAG_SERVERONLY; }
125 CmdResult Handle (const std::vector<std::string>& parameters, User *user);
126 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
129 class SpanningTreeCommands
132 CommandRConnect rconnect;
133 CommandRSQuit rsquit;
134 CommandSVSJoin svsjoin;
135 CommandSVSPart svspart;
136 CommandSVSNick svsnick;
137 CommandMetadata metadata;
139 CommandOpertype opertype;
142 CommandFTopic ftopic;
144 CommandFIdent fident;
146 SpanningTreeCommands(ModuleSpanningTree* module);