plugins.command module

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

class plugins.command.SubCommandManager(*args, **kwargs)[source]

Bases: AutoUnload, list

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

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

property command

Return the server command registered to the class.

Return type:

str

property prefix

Return the prefix to use in log messages.

Return type:

str