]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_spanningtree/commands.h
Tidy up source files:
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / commands.h
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  *   Copyright (C) 2010 Daniel De Graaf <danieldg@inspircd.org>
5  *
6  * This file is part of InspIRCd.  InspIRCd is free software: you can
7  * redistribute it and/or modify it under the terms of the GNU General Public
8  * License as published by the Free Software Foundation, version 2.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19
20 #pragma once
21
22 #include "main.h"
23
24 /** Handle /RCONNECT
25  */
26 class CommandRConnect : public Command
27 {
28         SpanningTreeUtilities* Utils;   /* Utility class */
29  public:
30         CommandRConnect (Module* Callback, SpanningTreeUtilities* Util);
31         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
32                 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
33 };
34
35 class CommandRSQuit : public Command
36 {
37         SpanningTreeUtilities* Utils;   /* Utility class */
38  public:
39         CommandRSQuit(Module* Callback, SpanningTreeUtilities* Util);
40         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
41                 RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
42         void NoticeUser(User* user, const std::string &msg);
43 };
44
45 class CommandSVSJoin : public Command
46 {
47  public:
48         CommandSVSJoin(Module* Creator) : Command(Creator, "SVSJOIN", 2) { flags_needed = FLAG_SERVERONLY; }
49         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
50         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
51 };
52 class CommandSVSPart : public Command
53 {
54  public:
55         CommandSVSPart(Module* Creator) : Command(Creator, "SVSPART", 2) { flags_needed = FLAG_SERVERONLY; }
56         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
57         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
58 };
59 class CommandSVSNick : public Command
60 {
61  public:
62         CommandSVSNick(Module* Creator) : Command(Creator, "SVSNICK", 3) { flags_needed = FLAG_SERVERONLY; }
63         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
64         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
65 };
66 class CommandMetadata : public Command
67 {
68  public:
69         CommandMetadata(Module* Creator) : Command(Creator, "METADATA", 2) { flags_needed = FLAG_SERVERONLY; }
70         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
71         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
72 };
73 class CommandUID : public Command
74 {
75  public:
76         CommandUID(Module* Creator) : Command(Creator, "UID", 10) { flags_needed = FLAG_SERVERONLY; }
77         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
78         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
79 };
80 class CommandOpertype : public Command
81 {
82  public:
83         CommandOpertype(Module* Creator) : Command(Creator, "OPERTYPE", 1) { flags_needed = FLAG_SERVERONLY; }
84         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
85         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
86 };
87 class CommandFJoin : public Command
88 {
89  public:
90         CommandFJoin(Module* Creator) : Command(Creator, "FJOIN", 3) { flags_needed = FLAG_SERVERONLY; }
91         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
92         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
93         /** Remove all modes from a channel, including statusmodes (+qaovh etc), simplemodes, parameter modes.
94          * This does not update the timestamp of the target channel, this must be done seperately.
95          */
96         void RemoveStatus(User* source, parameterlist &params);
97 };
98 class CommandFMode : public Command
99 {
100  public:
101         CommandFMode(Module* Creator) : Command(Creator, "FMODE", 3) { flags_needed = FLAG_SERVERONLY; }
102         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
103         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
104 };
105 class CommandFTopic : public Command
106 {
107  public:
108         CommandFTopic(Module* Creator) : Command(Creator, "FTOPIC", 4) { flags_needed = FLAG_SERVERONLY; }
109         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
110         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
111 };
112 class CommandFHost : public Command
113 {
114  public:
115         CommandFHost(Module* Creator) : Command(Creator, "FHOST", 1) { flags_needed = FLAG_SERVERONLY; }
116         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
117         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
118 };
119 class CommandFIdent : public Command
120 {
121  public:
122         CommandFIdent(Module* Creator) : Command(Creator, "FIDENT", 1) { flags_needed = FLAG_SERVERONLY; }
123         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
124         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
125 };
126 class CommandFName : public Command
127 {
128  public:
129         CommandFName(Module* Creator) : Command(Creator, "FNAME", 1) { flags_needed = FLAG_SERVERONLY; }
130         CmdResult Handle (const std::vector<std::string>& parameters, User *user);
131         RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) { return ROUTE_BROADCAST; }
132 };
133
134 class SpanningTreeCommands
135 {
136  public:
137         CommandRConnect rconnect;
138         CommandRSQuit rsquit;
139         CommandSVSJoin svsjoin;
140         CommandSVSPart svspart;
141         CommandSVSNick svsnick;
142         CommandMetadata metadata;
143         CommandUID uid;
144         CommandOpertype opertype;
145         CommandFJoin fjoin;
146         CommandFMode fmode;
147         CommandFTopic ftopic;
148         CommandFHost fhost;
149         CommandFIdent fident;
150         CommandFName fname;
151         SpanningTreeCommands(ModuleSpanningTree* module);
152 };