+ /** Removes a command.
+ */
+ void RemoveCommand(Command* x);
+
+ /** Translate a single item based on the TranslationType given.
+ * @param to The translation type to use for the process
+ * @param item The input string
+ * @param dest The output string. The translation result will be appended to this string
+ * @param custom_translator Used to translate the parameter if the translation type is TR_CUSTOM, if NULL, TR_CUSTOM will act like TR_TEXT
+ * @param paramnumber The index of the parameter we are translating.
+ */
+ static void TranslateSingleParam(TranslateType to, const std::string& item, std::string& dest, CommandBase* custom_translator = NULL, unsigned int paramnumber = 0);
+
+ /** Translate nicknames in a list of strings into UIDs, based on the TranslateTypes given.
+ * @param to The translation types to use for the process. If this list is too short, TR_TEXT is assumed for the rest.
+ * @param source The strings to translate
+ * @param prefix_final True if the final source argument should have a colon prepended (if it could contain a space)
+ * @param custom_translator Used to translate the parameter if the translation type is TR_CUSTOM, if NULL, TR_CUSTOM will act like TR_TEXT
+ * @return dest The output string
+ */
+ static std::string TranslateUIDs(const std::vector<TranslateType>& to, const CommandBase::Params& source, bool prefix_final = false, CommandBase* custom_translator = NULL);
+};