]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_user/cmd_user.cpp
Merge pull request #984 from Renegade334/modules-exempt-uline
[user/henk/code/inspircd.git] / src / coremods / core_user / cmd_user.cpp
index cec11c104efd274f808e6371b4fde5b0b9c90e0e..d593d7f4b8f7974f6f2f341b5b1f8ff84b4b5d82 100644 (file)
 
 
 #include "inspircd.h"
+#include "core_user.h"
 
-/** Handle /USER.
- */
-class CommandUser : public SplitCommand
+CommandUser::CommandUser(Module* parent)
+       : SplitCommand(parent, "USER", 4, 4)
 {
- public:
-       /** Constructor for user.
-        */
-       CommandUser ( Module* parent) : SplitCommand(parent,"USER",4,4) { works_before_reg = true; Penalty = 0; syntax = "<username> <localhost> <remotehost> <GECOS>"; }
-       /** Handle command.
-        * @param parameters The parameters to the command
-        * @param user The user issuing the command
-        * @return A value from CmdResult to indicate command success or failure.
-        */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser *user);
-};
+       works_before_reg = true;
+       Penalty = 0;
+       syntax = "<username> <localhost> <remotehost> <GECOS>";
+}
 
 CmdResult CommandUser::HandleLocal(const std::vector<std::string>& parameters, LocalUser *user)
 {
@@ -69,18 +62,20 @@ CmdResult CommandUser::HandleLocal(const std::vector<std::string>& parameters, L
        }
 
        /* parameters 2 and 3 are local and remote hosts, and are ignored */
+       return CheckRegister(user);
+}
+
+CmdResult CommandUser::CheckRegister(LocalUser* user)
+{
+       // If the user is registered, return CMD_SUCCESS/CMD_FAILURE depending on what modules say, otherwise just
+       // return CMD_SUCCESS without doing anything, knowing the other handler will call us again
        if (user->registered == REG_NICKUSER)
        {
                ModResult MOD_RESULT;
-
-               /* user is registered now, bit 0 = USER command, bit 1 = sent a NICK command */
                FIRST_MOD_RESULT(OnUserRegister, MOD_RESULT, (user));
                if (MOD_RESULT == MOD_RES_DENY)
                        return CMD_FAILURE;
-
        }
 
        return CMD_SUCCESS;
 }
-
-COMMAND_INIT(CommandUser)