X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fmode.h;h=3ea4f6d0601e9c73974059347b5f7445b804ec6a;hb=67c12453047f009692da518774ed6e49ee0acb9a;hp=dcd8cc0040d3cd051d39a92683ac90c328aeb6b9;hpb=f3abcf2bcfe36d3389b74caa9eef8582901fbe15;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/mode.h b/include/mode.h index dcd8cc004..3ea4f6d06 100644 --- a/include/mode.h +++ b/include/mode.h @@ -232,6 +232,14 @@ class CoreExport ModeHandler : public Extensible */ virtual void DisplayList(User* user, Channel* channel); + /** In the event that the mode should be given a parameter, and no parameter was provided, this method is called. + * This allows you to give special information to the user, or handle this any way you like. + * @param user The user issuing the mode change + * @param dest For user mode changes, the target of the mode. For channel mode changes, NULL. + * @param channel For channel mode changes, the target of the mode. For user mode changes, NULL. + */ + virtual void OnParameterMissing(User* user, User* dest, Channel* channel); + /** * If your mode is a listmode, this method will be called to display an empty list (just the end of list numeric) * @param user The user issuing the command @@ -424,6 +432,10 @@ class CoreExport ModeParser : public classbase */ std::string LastParse; + unsigned int sent[256]; + + unsigned int seq; + public: /** The constructor initializes all the RFC basic modes by using ModeParserAddMode(). @@ -492,13 +504,12 @@ class CoreExport ModeParser : public classbase /** Process a set of mode changes from a server or user. * @param parameters The parameters of the mode change, in the format * they would be from a MODE command. - * @param pcnt The number of items in the parameters array * @param user The user setting or removing the modes. When the modes are set * by a server, an 'uninitialized' User is used, where *user::nick == NULL * and *user->server == NULL. * @param servermode True if a server is setting the mode. */ - void Process(const char* const* parameters, int pcnt, User *user, bool servermode); + void Process(const std::vector& parameters, User *user, bool servermode); /** Find the mode handler for a given mode and type. * @param modeletter mode letter to search for