- /** Create a new command.
- * @param Instance Pointer to creator class
- * @param cmd Command name. This must be UPPER CASE.
- * @param flags User mode required to execute the command. May ONLY be one mode - it's a string to give warnings if people mix params up.
- * For oper only commands, set this to 'o', otherwise use 0.
- * @param minpara Minimum parameters required for the command.
- * @param maxpara Maximum number of parameters this command may have - extra parameters will be tossed into one last space-seperated param.
- * @param before_reg If this is set to true, the command will
- * be allowed before the user is 'registered' (has sent USER,
- * NICK, optionally PASS, and been resolved).
- */
- Command(InspIRCd* Instance, const std::string &cmd, const char *flags, int minpara, bool before_reg = false, int penalty = 1) : ServerInstance(Instance), command(cmd), flags_needed(flags ? *flags : 0), min_params(minpara), max_params(0), disabled(false), works_before_reg(before_reg), Penalty(penalty)
- {
- use_count = 0;
- total_bytes = 0;
- source = "<core>";
- syntax = "";
- translation.clear();
- }
-
- Command(InspIRCd* Instance, const std::string &cmd, const char *flags, int minpara, int maxpara, bool before_reg = false, int penalty = 1) : ServerInstance(Instance), command(cmd), flags_needed(flags ? *flags : 0), min_params(minpara), max_params(maxpara), disabled(false), works_before_reg(before_reg), Penalty(penalty)
- {
- use_count = 0;
- total_bytes = 0;
- source = "<core>";
- syntax = "";
- translation.clear();
- }
+ public:
+ /** Unregisters this command from the command parser. */
+ ~Command() CXX11_OVERRIDE;
+
+ /** The user modes required to be able to execute this command. */
+ unsigned char flags_needed;
+
+ /** Whether the command will not be forwarded by the linking module even if it comes via ENCAP. */
+ bool force_manual_route;
+
+ /** The number of seconds worth of penalty that executing this command gives. */
+ unsigned int Penalty;
+
+ /** The number of times this command has been executed. */
+ unsigned long use_count;
+
+ /** If non-empty then the syntax of the parameter for this command. */
+ std::string syntax;
+
+ /** Whether the command can be issued before registering. */
+ bool works_before_reg;