+ /** Reload a core command.
+ * This will only reload commands implemented by the core,
+ * to reload a modular command, you must reload that module.
+ * @param cmd The command to reload. This will cause the shared
+ * object which implements this command to be closed, and then reloaded.
+ * @return True if the command was reloaded, false if it could not be found
+ * or another error occured
+ */
+ bool ReloadCommand(const char* cmd);
+
+ /** Default constructor.
+ * @param Instance The creator of this class
+ */
+ CommandParser(InspIRCd* Instance);
+
+ /** Calls the handler for a given command.
+ * @param commandname The command to find. This should be in uppercase.
+ * @param parameters Parameter list as an array of array of char (that's not a typo).
+ * @param pcnt The number of items in the parameters list
+ * @param user The user to call the handler on behalf of
+ * @return This method will return CMD_SUCCESS if the command handler was found and called,
+ * and the command completeld successfully. It will return CMD_FAILURE if the command handler was found
+ * and called, but the command did not complete successfully, and it will return CMD_INVALID if the
+ * command simply did not exist at all or the wrong number of parameters were given, or the user
+ * was not privilaged enough to execute the command.
+ */
+ CmdResult CallHandler(const std::string &commandname,const char** parameters, int pcnt, userrec *user);
+
+ command_t* GetHandler(const std::string &commandname);
+
+ /** This function returns true if a command is valid with the given number of parameters and user.
+ * @param commandname The command name to check
+ * @param pcnt The parameter count
+ * @param user The user to check against
+ * @return If the user given has permission to execute the command, and the parameter count is
+ * equal to or greater than the minimum number of parameters to the given command, then this
+ * function will return true, otherwise it will return false.
+ */