X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fcommands.h;h=dd54b5b6bd2bad3117d6d9690be544751ad3fb5e;hb=e9e75e50bc25e67af22dd88b39b12217a553d5cb;hp=1bca635644d1f7d575994e25e2be87c20298d0db;hpb=9c2e2ef9d24c348f42261d32f424ad04865b19ef;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/commands.h b/src/modules/m_spanningtree/commands.h index 1bca63564..dd54b5b6b 100644 --- a/src/modules/m_spanningtree/commands.h +++ b/src/modules/m_spanningtree/commands.h @@ -83,16 +83,19 @@ class CommandOpertype : public Command CmdResult Handle (const std::vector& parameters, User *user); RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } }; +class TreeSocket; class CommandFJoin : public Command { + /** 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. + */ + static void RemoveStatus(Channel* c); + static void ApplyModeStack(User* srcuser, Channel* c, irc::modestacker& stack); + bool ProcessModeUUIDPair(const std::string& item, TreeSocket* src_socket, Channel* chan, irc::modestacker* modestack); 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 { @@ -104,7 +107,7 @@ class CommandFMode : public Command class CommandFTopic : public Command { public: - CommandFTopic(Module* Creator) : Command(Creator, "FTOPIC", 4) { flags_needed = FLAG_SERVERONLY; } + CommandFTopic(Module* Creator) : Command(Creator, "FTOPIC", 5) { flags_needed = FLAG_SERVERONLY; } CmdResult Handle (const std::vector& parameters, User *user); RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } }; @@ -130,6 +133,21 @@ class CommandFName : public Command RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } }; +class CommandIJoin : public SplitCommand +{ + public: + CommandIJoin(Module* Creator) : SplitCommand(Creator, "IJOIN", 1) { flags_needed = FLAG_SERVERONLY; } + CmdResult HandleRemote(const std::vector& parameters, RemoteUser* user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) { return ROUTE_BROADCAST; } +}; + +class CommandResync : public SplitCommand +{ + public: + CommandResync(Module* Creator) : SplitCommand(Creator, "RESYNC", 1) { flags_needed = FLAG_SERVERONLY; } + CmdResult HandleServer(const std::vector& parameters, FakeUser* user); +}; + class SpanningTreeCommands { public: @@ -142,6 +160,8 @@ class SpanningTreeCommands CommandUID uid; CommandOpertype opertype; CommandFJoin fjoin; + CommandIJoin ijoin; + CommandResync resync; CommandFMode fmode; CommandFTopic ftopic; CommandFHost fhost;