+ /** Minimum number of parameters command takes
+ */
+ const unsigned int min_params;
+
+ /** Maximum number of parameters command takes.
+ * This is used by the command parser to join extra parameters into one last param.
+ * If not set, no munging is done to this command.
+ */
+ const unsigned int max_params;
+
+ /** used by /stats m
+ */
+ long double use_count;
+
+ /** used by /stats m
+ */
+ long double total_bytes;
+
+ /** True if the command is disabled to non-opers
+ */
+ bool disabled;
+
+ /** True if the command can be issued before registering
+ */
+ bool works_before_reg;
+
+ /** Syntax string for the command, displayed if non-empty string.
+ * This takes place of the text in the 'not enough parameters' numeric.
+ */
+ std::string syntax;
+
+ /** Translation type list for possible parameters, used to tokenize
+ * parameters into UIDs and SIDs etc.
+ */
+ std::vector<TranslateType> translation;
+
+ /** How many seconds worth of penalty does this command have?
+ */
+ int Penalty;
+
+ /** 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(Module* me, const std::string &cmd, int minpara = 0, int maxpara = 0) :
+ ServiceProvider(me, cmd, SERVICE_COMMAND), flags_needed(0), min_params(minpara), max_params(maxpara),
+ use_count(0), total_bytes(0), disabled(false), works_before_reg(false), Penalty(1)
+ {
+ }