plugins.command module

Provides a way to utilize sub-commands for a server command.

class plugins.command.SubCommandManager(manager, command, prefix='', logger={}, translations={'Invalid Name': {'en': "Given plugin name '{plugin}' is invalid. Plugin names must be alphanumeric.", 'de': "Der Pluginname '{plugin}' ist ungültig. Pluginnamen müssen alphanumerisch sein.", 'fr': "Le nom du plugin '{plugin}' n'est pas valide puisqu'il n'est pas alphanumérique.", 'ru': "Название плагина '{plugin}' некорректно. Название плагина должно состоять только из букв и цифр.", 'es': "El nombre del plugin '{plugin}' es inválido. El nombre del plugin debe ser alphanumérico.", 'zh-cn': "给定的插件名称'{plugin}' 是无效的. 插件名称必须是字母数字."}, 'Loading': {'en': "Loading plugin '{plugin}'...", 'de': "Lade Plugin '{plugin}'...", 'fr': "Chargement du plugin '{plugin}'...", 'nl': "Plugin '{plugin}' aan het laden...", 'ru': "Загрузка плагина '{plugin}'...", 'es': "Cargando el plugin '{plugin}'...", 'zh-cn': "加载插件 '{plugin}'..."}, 'No Module': {'en': "Unable to load plugin '{plugin}'. Missing file ../{file}", 'de': "Plugin '{plugin}' konnte nicht geladen werden. Die Datei ../{file} existiert nicht.", 'fr': "Impossible de charger le plugin '{plugin}' puisque le fichier '../{file}' n'existe pas.", 'nl': "Kan plugin '{plugin}' niet laden. Bestand ../{file} ontbreekt.", 'ru': "Невозможно загрузить плагин '{plugin}'. Отсутствует файл ../{file}", 'es': "No se pudo cargar el plugin '{plugin}'. Archivo no encontrado ../{file}", 'zh-cn': "无法加载插件 '{plugin}'. 丢失文件 ../{file}"}, 'Built-in': {'en': "Cannot load plugin '{plugin}'. Plugin name cannot be name of a built-in module", 'de': "Plugin '{plugin}' konnte nicht geladen werden. Das Plugin darf nicht nach einem built-in Modul benannt sein.", 'fr': "Impossible de charger le plugin '{plugin}' puisqu'un module porte déjà ce nom.", 'nl': "Kan plugin '{plugin}' niet laden. Plugin naam kan niet dezelfde naam als een build-in mudule hebben.", 'ru': "Невозможно загрузить плагин '{plugin}'. Название модуля не может быть названием внутреннего модуля.", 'es': "No se pudo cargar el plugin '{plugin}'. El nombre del plugin debe ser un módulo incorporado.", 'zh-cn': "无法加载插件 '{plugin}'. 插件名不能是内置模块的名称"}, 'Unloading': {'en': "Unloading plugin '{plugin}'...", 'de': "Entlade Plugin '{plugin}'...", 'fr': "Déchargement du plugin '{plugin}'...", 'nl': "Plugin '{plugin}' aan het uitladen...", 'ru': "Отключение плагина '{plugin}'...", 'es': "Descargando el plugin '{plugin}'...", 'zh-cn': "卸载插件 '{plugin}'..."}, 'Plugins': {'en': 'Loaded Plugins:', 'de': 'Geladene Plugins:', 'fr': 'Plugins présentement chargés:', 'nl': 'Ingeladen plugins:', 'ru': 'Загруженные плагины:', 'es': 'Plugins cargados:', 'zh-cn': '加载插件:'}, 'Credits': {'en': 'Credits:', 'de': 'Credits:', 'fr': 'Crédits:', 'nl': 'Kredieten:', 'ru': 'Авторы:', 'es': 'Créditos:', 'zh-cn': '学分:'}, 'Invalid Command': {'en': "'{subcommand}' is not a valid sub-command.", 'de': "'{subcommand}' ist kein gültiger Unterbefehl.", 'fr': "'{subcommand}' n'est pas une sous-commande valide.", 'nl': "'{subcommand}' is geen geldig sub-commando.", 'ru': "'{subcommand}' не является корректной подкомандой", 'es': "'{subcommand}' no es un sub-comando válido.", 'zh-cn': "'{subcommand}' 不是有效的子命令."}, 'No Command': {'en': "The 'sp' command must be followed by a sub-command.", 'de': "Der Befehl 'sp' muss von einem Unterbefehl gefolgt werden.", 'fr': "Vous devez fournir une sous-commande lors de l'utilisation de la commande 'sp'.", 'nl': "Het 'sp' commando moet opgevolgd worden door een sub-commando.", 'ru': "Команда 'sp' требует после себя подкоманду.", 'es': "El comando 'sp' debe ser seguido por un sub-comando.", 'zh-cn': "'sp' 命令后面必须有一个子命令."}, 'Invalid Arguments': {'en': "Invalid arguments for sub-command '{subcommand}': {command} {subcommand} ", 'de': "Ungültige Argumente für den Unterbefehl '{subcommand}': {command} {subcommand} ", 'fr': "Les arguments fournis pour la sous-commande '{subcommand}' ne sont pas valides: {command} {subcommand}", 'nl': "Ongeldige argumenten voor sub-commando '{subcommand}': {command} {subcommand} ", 'ru': "Некорректные аргументы подкоманды '{subcommand}': {command} {subcommand} ", 'es': "Argumentos inválidos para el sub-comando '{subcommand}': {command} {subcommand} ", 'zh-cn': "子命令的参数无效 '{subcommand}': {command} {subcommand} "}, 'Help': {'en': 'Help:nusage: ', 'de': 'Hilfe:nVerwendung: ', 'fr': 'Aide:nUtilisation: ', 'nl': 'Help:ngebruik: ', 'ru': 'Помощь:nИспользование: ', 'es': 'Ayuda:nuso: ', 'zh-cn': '帮助:n用法: '}, 'Already Loaded': {'en': "Unable to load plugin '{plugin}' as it is already loaded.", 'de': "Das Plugin '{plugin}' konnte nicht geladen werden, da es bereits geladen ist.", 'fr': "Impossible de charger le plugin '{plugin}' puisqu'il est déjà chargé.", 'nl': "Kan plugin '{plugin}' niet laden omdat het is al geladen is.", 'ru': "Невозможно загрузить плагин '{plugin}', так как он уже загружен.", 'es': "No se pudo cargar el plugin '{plugin}', ya está cargado.", 'zh-cn': "无法加载插件 '{plugin}' 因为它已经加载过了."}, 'Unable to Load': {'en': "Plugin '{plugin}' was unable to be loaded.", 'de': "Das Plugin '{plugin}' konnte nicht geladen werden.", 'fr': "Impossible de charger le plugin '{plugin}'.", 'nl': "Kon plugin '{plugin}' niet laden.", 'ru': "Плагин '{plugin}' не может быть загружен.", 'es': "No se pudo cargar el plugin '{plugin}'.", 'zh-cn': "插件 '{plugin}' 无法加载."}, 'Successful Load': {'en': "Successfully loaded plugin '{plugin}'.", 'de': "Das Plugin '{plugin}' wurde erfolgreich geladen.", 'fr': "Le plugin '{plugin}' a été chargé avec succès.", 'nl': "Plugin '{plugin}' werd met success ingeladen.", 'ru': "Успешная загрузка плагина '{plugin}'.", 'es': "El plugin '{plugin}' cargado con éxito.", 'zh-cn': "成功加载插件 '{plugin}'."}, 'Not Loaded': {'en': "Unable to unload plugin '{plugin}' as it is not currently loaded.", 'de': "Das Plugin '{plugin}' konnte nicht entladen werden, da es momentan nicht geladen ist.", 'fr': "Impossible de décharger le plugin '{plugin}' puisqu'il n'est pas présentement chargé.", 'nl': "Kan plugin '{plugin}' niet uitladen omdat het momenteel niet geladen is.", 'ru': "Невозможно отключить плагин '{plugin}', так как он не был загружен.", 'es': "No se pudo descargar el plugin '{plugin}' porque no está cargado actualmente.", 'zh-cn': "无法卸载插件 '{plugin}' 因为它当前没有被加载."}, 'Successful Unload': {'en': "Successfully unloaded plugin '{plugin}'.", 'de': "Das Plugin '{plugin}' wurde erfolgreich entladen.", 'fr': "Le plugin '{plugin}' a été déchargé avec succès.", 'nl': "Plugin '{plugin}' werd met success uitgeladen.", 'ru': "Успешное отключение плагина '{plugin}'.", 'es': "El plugin '{plugin}' fue descargado con éxito.", 'zh-cn': "成功卸载插件 '{plugin}'."}})[source]

Bases: core.AutoUnload, list

Class used for executing sub-commands for the given console command.

__init__(manager, command, prefix='', logger={}, translations={'Invalid Name': {'en': "Given plugin name '{plugin}' is invalid. Plugin names must be alphanumeric.", 'de': "Der Pluginname '{plugin}' ist ungültig. Pluginnamen müssen alphanumerisch sein.", 'fr': "Le nom du plugin '{plugin}' n'est pas valide puisqu'il n'est pas alphanumérique.", 'ru': "Название плагина '{plugin}' некорректно. Название плагина должно состоять только из букв и цифр.", 'es': "El nombre del plugin '{plugin}' es inválido. El nombre del plugin debe ser alphanumérico.", 'zh-cn': "给定的插件名称'{plugin}' 是无效的. 插件名称必须是字母数字."}, 'Loading': {'en': "Loading plugin '{plugin}'...", 'de': "Lade Plugin '{plugin}'...", 'fr': "Chargement du plugin '{plugin}'...", 'nl': "Plugin '{plugin}' aan het laden...", 'ru': "Загрузка плагина '{plugin}'...", 'es': "Cargando el plugin '{plugin}'...", 'zh-cn': "加载插件 '{plugin}'..."}, 'No Module': {'en': "Unable to load plugin '{plugin}'. Missing file ../{file}", 'de': "Plugin '{plugin}' konnte nicht geladen werden. Die Datei ../{file} existiert nicht.", 'fr': "Impossible de charger le plugin '{plugin}' puisque le fichier '../{file}' n'existe pas.", 'nl': "Kan plugin '{plugin}' niet laden. Bestand ../{file} ontbreekt.", 'ru': "Невозможно загрузить плагин '{plugin}'. Отсутствует файл ../{file}", 'es': "No se pudo cargar el plugin '{plugin}'. Archivo no encontrado ../{file}", 'zh-cn': "无法加载插件 '{plugin}'. 丢失文件 ../{file}"}, 'Built-in': {'en': "Cannot load plugin '{plugin}'. Plugin name cannot be name of a built-in module", 'de': "Plugin '{plugin}' konnte nicht geladen werden. Das Plugin darf nicht nach einem built-in Modul benannt sein.", 'fr': "Impossible de charger le plugin '{plugin}' puisqu'un module porte déjà ce nom.", 'nl': "Kan plugin '{plugin}' niet laden. Plugin naam kan niet dezelfde naam als een build-in mudule hebben.", 'ru': "Невозможно загрузить плагин '{plugin}'. Название модуля не может быть названием внутреннего модуля.", 'es': "No se pudo cargar el plugin '{plugin}'. El nombre del plugin debe ser un módulo incorporado.", 'zh-cn': "无法加载插件 '{plugin}'. 插件名不能是内置模块的名称"}, 'Unloading': {'en': "Unloading plugin '{plugin}'...", 'de': "Entlade Plugin '{plugin}'...", 'fr': "Déchargement du plugin '{plugin}'...", 'nl': "Plugin '{plugin}' aan het uitladen...", 'ru': "Отключение плагина '{plugin}'...", 'es': "Descargando el plugin '{plugin}'...", 'zh-cn': "卸载插件 '{plugin}'..."}, 'Plugins': {'en': 'Loaded Plugins:', 'de': 'Geladene Plugins:', 'fr': 'Plugins présentement chargés:', 'nl': 'Ingeladen plugins:', 'ru': 'Загруженные плагины:', 'es': 'Plugins cargados:', 'zh-cn': '加载插件:'}, 'Credits': {'en': 'Credits:', 'de': 'Credits:', 'fr': 'Crédits:', 'nl': 'Kredieten:', 'ru': 'Авторы:', 'es': 'Créditos:', 'zh-cn': '学分:'}, 'Invalid Command': {'en': "'{subcommand}' is not a valid sub-command.", 'de': "'{subcommand}' ist kein gültiger Unterbefehl.", 'fr': "'{subcommand}' n'est pas une sous-commande valide.", 'nl': "'{subcommand}' is geen geldig sub-commando.", 'ru': "'{subcommand}' не является корректной подкомандой", 'es': "'{subcommand}' no es un sub-comando válido.", 'zh-cn': "'{subcommand}' 不是有效的子命令."}, 'No Command': {'en': "The 'sp' command must be followed by a sub-command.", 'de': "Der Befehl 'sp' muss von einem Unterbefehl gefolgt werden.", 'fr': "Vous devez fournir une sous-commande lors de l'utilisation de la commande 'sp'.", 'nl': "Het 'sp' commando moet opgevolgd worden door een sub-commando.", 'ru': "Команда 'sp' требует после себя подкоманду.", 'es': "El comando 'sp' debe ser seguido por un sub-comando.", 'zh-cn': "'sp' 命令后面必须有一个子命令."}, 'Invalid Arguments': {'en': "Invalid arguments for sub-command '{subcommand}': {command} {subcommand} ", 'de': "Ungültige Argumente für den Unterbefehl '{subcommand}': {command} {subcommand} ", 'fr': "Les arguments fournis pour la sous-commande '{subcommand}' ne sont pas valides: {command} {subcommand}", 'nl': "Ongeldige argumenten voor sub-commando '{subcommand}': {command} {subcommand} ", 'ru': "Некорректные аргументы подкоманды '{subcommand}': {command} {subcommand} ", 'es': "Argumentos inválidos para el sub-comando '{subcommand}': {command} {subcommand} ", 'zh-cn': "子命令的参数无效 '{subcommand}': {command} {subcommand} "}, 'Help': {'en': 'Help:\nusage: ', 'de': 'Hilfe:\nVerwendung: ', 'fr': 'Aide:\nUtilisation: ', 'nl': 'Help:\ngebruik: ', 'ru': 'Помощь:\nИспользование: ', 'es': 'Ayuda:\nuso: ', 'zh-cn': '帮助:\n用法: '}, 'Already Loaded': {'en': "Unable to load plugin '{plugin}' as it is already loaded.", 'de': "Das Plugin '{plugin}' konnte nicht geladen werden, da es bereits geladen ist.", 'fr': "Impossible de charger le plugin '{plugin}' puisqu'il est déjà chargé.", 'nl': "Kan plugin '{plugin}' niet laden omdat het is al geladen is.", 'ru': "Невозможно загрузить плагин '{plugin}', так как он уже загружен.", 'es': "No se pudo cargar el plugin '{plugin}', ya está cargado.", 'zh-cn': "无法加载插件 '{plugin}' 因为它已经加载过了."}, 'Unable to Load': {'en': "Plugin '{plugin}' was unable to be loaded.", 'de': "Das Plugin '{plugin}' konnte nicht geladen werden.", 'fr': "Impossible de charger le plugin '{plugin}'.", 'nl': "Kon plugin '{plugin}' niet laden.", 'ru': "Плагин '{plugin}' не может быть загружен.", 'es': "No se pudo cargar el plugin '{plugin}'.", 'zh-cn': "插件 '{plugin}' 无法加载."}, 'Successful Load': {'en': "Successfully loaded plugin '{plugin}'.", 'de': "Das Plugin '{plugin}' wurde erfolgreich geladen.", 'fr': "Le plugin '{plugin}' a été chargé avec succès.", 'nl': "Plugin '{plugin}' werd met success ingeladen.", 'ru': "Успешная загрузка плагина '{plugin}'.", 'es': "El plugin '{plugin}' cargado con éxito.", 'zh-cn': "成功加载插件 '{plugin}'."}, 'Not Loaded': {'en': "Unable to unload plugin '{plugin}' as it is not currently loaded.", 'de': "Das Plugin '{plugin}' konnte nicht entladen werden, da es momentan nicht geladen ist.", 'fr': "Impossible de décharger le plugin '{plugin}' puisqu'il n'est pas présentement chargé.", 'nl': "Kan plugin '{plugin}' niet uitladen omdat het momenteel niet geladen is.", 'ru': "Невозможно отключить плагин '{plugin}', так как он не был загружен.", 'es': "No se pudo descargar el plugin '{plugin}' porque no está cargado actualmente.", 'zh-cn': "无法卸载插件 '{plugin}' 因为它当前没有被加载."}, 'Successful Unload': {'en': "Successfully unloaded plugin '{plugin}'.", 'de': "Das Plugin '{plugin}' wurde erfolgreich entladen.", 'fr': "Le plugin '{plugin}' a été déchargé avec succès.", 'nl': "Plugin '{plugin}' werd met success uitgeladen.", 'ru': "Успешное отключение плагина '{plugin}'.", 'es': "El plugin '{plugin}' fue descargado con éxito.", 'zh-cn': "成功卸载插件 '{plugin}'."}})[source]

Initializes the sub-command manager.

Parameters:
  • manager (PluginManager) – A plugin manager.
  • command (str) – Command to register.
  • prefix (str) – Prefix used for printing messages to the console.
  • logger (Logger) – A logger that is used for printing messages to the console.
  • translations (LangStrings) –

    Translations used for printing messages to the console. The translations have to define the following messages:

    • Loading
    • Invalid Name
    • Already Loaded
    • No Module
    • Built-in
    • Unable to Load
    • Successful Load
    • Unloading
    • Not Loaded
    • Successful Unload
    • Plugins
client_sub_command(commands, permission=None)[source]

Add a client sub-command.

load_plugin(plugin_name)[source]

Load a plugin by name.

Parameters:plugin_name (str) – Name of the plugin to load.
Returns:Return the loaded plugin. Return None on failure.
Return type:Plugin
log_message(message)[source]

Log a message. The prefix will be added automatically.

Parameters:message (str) – Message to log.
print_plugins()[source]

List all currently loaded plugins.

reload_plugin(plugin_name)[source]

Reload a plugin by name.

Parameters:plugin_name (str) – Name of the plugin to reload.
Returns:Return the loaded plugin. Return None on failure.
Return type:Plugin
say_sub_command(commands, permission=None)[source]

Add a say sub-command.

server_sub_command(commands)[source]

Add a server sub-command.

unload_plugin(plugin_name)[source]

Unload a plugin by name.

Parameters:plugin_name (str) – Name of the plugin to unload.
command

Return the server command registered to the class.

Return type:str
prefix

Return the prefix to use in log messages.

Return type:str