]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_spanningtree/commands.h
Specify routing for those commands
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / commands.h
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 #ifndef __COMMANDS_H__
15 #define __COMMANDS_H__
16
17 #include "main.h"
18
19 /** Handle /RCONNECT
20  */
21 class CommandRConnect : public Command
22 {
23         SpanningTreeUtilities* Utils;   /* Utility class */
24  public:
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);
28 };
29
30 class CommandRSQuit : public Command
31 {
32         SpanningTreeUtilities* Utils;   /* Utility class */
33  public:
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);
38 };
39
40 class CommandSVSJoin : public Command
41 {
42  public:
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);
46 };
47 class CommandSVSPart : public Command
48 {
49  public:
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);
53 };
54 class CommandSVSNick : public Command
55 {
56  public:
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);
60 };
61 class CommandMetadata : public Command
62 {
63  public:
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; }
67 };
68 class CommandUID : public Command
69 {
70  public:
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; }
74 };
75 class CommandOpertype : public Command
76 {
77  public:
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; }
81 };
82 class CommandFJoin : public Command
83 {
84  public:
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.
90          */
91         void RemoveStatus(User* source, parameterlist &params);
92 };
93 class CommandFMode : public Command
94 {
95  public:
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; }
99 };
100 class CommandFTopic : public Command
101 {
102  public:
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; }
106 };
107 class CommandFHost : public Command
108 {
109  public:
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; }
113 };
114 class CommandFIdent : public Command
115 {
116  public:
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; }
120 };
121 class CommandFName : public Command
122 {
123  public:
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; }
127 };
128
129 class SpanningTreeCommands
130 {
131  public:
132         CommandRConnect rconnect;
133         CommandRSQuit rsquit;
134         CommandSVSJoin svsjoin;
135         CommandSVSPart svspart;
136         CommandSVSNick svsnick;
137         CommandMetadata metadata;
138         CommandUID uid;
139         CommandOpertype opertype;
140         CommandFJoin fjoin;
141         CommandFMode fmode;
142         CommandFTopic ftopic;
143         CommandFHost fhost;
144         CommandFIdent fident;
145         CommandFName fname;
146         SpanningTreeCommands(ModuleSpanningTree* module);
147 };
148
149 #endif