X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fcommands.h;h=3b5b499c11d8cf8d3f3c83e2a6c9060f88720e22;hb=4a57d129fbbe9858f2a8c4d14cef7e0d78f08329;hp=0eb90efb8cb331624530bbb7a1930431d2ff88fc;hpb=cd712c40e1b352c05e7ae0f72e0a5e84cdf64323;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/commands.h b/src/modules/m_spanningtree/commands.h index 0eb90efb8..3b5b499c1 100644 --- a/src/modules/m_spanningtree/commands.h +++ b/src/modules/m_spanningtree/commands.h @@ -1,18 +1,26 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2010 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits + * Copyright (C) 2010 Daniel De Graaf * - * This program is free but copyrighted software; see - * the file COPYING for details. + * This file is part of InspIRCd. InspIRCd is free software: you can + * redistribute it and/or modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation, version 2. * - * --------------------------------------------------- + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#ifndef __COMMANDS_H__ -#define __COMMANDS_H__ + +#ifndef M_SPANNINGTREE_COMMANDS_H +#define M_SPANNINGTREE_COMMANDS_H + +#include "main.h" /** Handle /RCONNECT */ @@ -38,23 +46,110 @@ class CommandRSQuit : public Command class CommandSVSJoin : public Command { public: - CommandSVSJoin(Module* Creator) : Command(Creator, "SVSJOIN", 2) { flags_needed = 'o'; } + CommandSVSJoin(Module* Creator) : Command(Creator, "SVSJOIN", 2) { flags_needed = FLAG_SERVERONLY; } CmdResult Handle (const std::vector& parameters, User *user); RouteDescriptor GetRouting(User* user, const std::vector& parameters); }; class CommandSVSPart : public Command { public: - CommandSVSPart(Module* Creator) : Command(Creator, "SVSPART", 2) { flags_needed = 'o'; } + CommandSVSPart(Module* Creator) : Command(Creator, "SVSPART", 2) { flags_needed = FLAG_SERVERONLY; } CmdResult Handle (const std::vector& parameters, User *user); RouteDescriptor GetRouting(User* user, const std::vector& parameters); }; class CommandSVSNick : public Command { public: - CommandSVSNick(Module* Creator) : Command(Creator, "SVSNICK", 2) { flags_needed = 'o'; } + CommandSVSNick(Module* Creator) : Command(Creator, "SVSNICK", 3) { flags_needed = FLAG_SERVERONLY; } CmdResult Handle (const std::vector& parameters, User *user); RouteDescriptor GetRouting(User* user, const std::vector& parameters); }; +class CommandMetadata : public Command +{ + public: + CommandMetadata(Module* Creator) : Command(Creator, "METADATA", 2) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; +class CommandUID : public Command +{ + public: + CommandUID(Module* Creator) : Command(Creator, "UID", 10) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; +class CommandOpertype : public Command +{ + public: + CommandOpertype(Module* Creator) : Command(Creator, "OPERTYPE", 1) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; +class CommandFJoin : public Command +{ + public: + CommandFJoin(Module* Creator) : Command(Creator, "FJOIN", 3) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } + /** Remove all modes from a channel, including statusmodes (+qaovh etc), simplemodes, parameter modes. + * This does not update the timestamp of the target channel, this must be done seperately. + */ + void RemoveStatus(User* source, parameterlist ¶ms); +}; +class CommandFMode : public Command +{ + public: + CommandFMode(Module* Creator) : Command(Creator, "FMODE", 3) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; +class CommandFTopic : public Command +{ + public: + CommandFTopic(Module* Creator) : Command(Creator, "FTOPIC", 4) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; +class CommandFHost : public Command +{ + public: + CommandFHost(Module* Creator) : Command(Creator, "FHOST", 1) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; +class CommandFIdent : public Command +{ + public: + CommandFIdent(Module* Creator) : Command(Creator, "FIDENT", 1) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; +class CommandFName : public Command +{ + public: + CommandFName(Module* Creator) : Command(Creator, "FNAME", 1) { flags_needed = FLAG_SERVERONLY; } + CmdResult Handle (const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; + +class SpanningTreeCommands +{ + public: + CommandRConnect rconnect; + CommandRSQuit rsquit; + CommandSVSJoin svsjoin; + CommandSVSPart svspart; + CommandSVSNick svsnick; + CommandMetadata metadata; + CommandUID uid; + CommandOpertype opertype; + CommandFJoin fjoin; + CommandFMode fmode; + CommandFTopic ftopic; + CommandFHost fhost; + CommandFIdent fident; + CommandFName fname; + SpanningTreeCommands(ModuleSpanningTree* module); +}; #endif