插件相关

元数据

class mcdreforged.plugin.meta.metadata.Metadata(data: dict | None, *, plugin: AbstractPlugin | None = None)[源代码]

一个 MCDR 插件的元数据

id: str

插件的 ID。应该与正则表达式 [a-z][a-z0-9_]{0,63} 匹配

在 v2.11.0 版本发生变更: 不再允许以非字母字符开头的插件 ID

name: str

插件的名字

description: str | Dict[str, str] | None

插件的描述

它可以是一个正常的 str,或者一个代表从语言到描述映射关系的 Dict[str, str]

author: List[str] | None

插件的作者

插件的网址,如指向 github 仓库的链接

version: Version

插件的版本,格式为一种约束弱化版的语义化版本格式

dependencies: Dict[str, VersionRequirement]

一个储存了插件依赖的 dict

:

被依赖的插件的 ID

:

被依赖插件的版本要求

entrypoint: str

插件的入口点

入口点应当是是可以 import 的

get_description(lang: str | None = None) str | None[源代码]

以 str 类型返回一个翻译后的插件描述

参数:

lang – 可选参数,翻译的目标语言。若未指定,使用 MCDR 的语言

返回:

翻译后的插件描述

get_description_rtext() RTextBase[源代码]

RText 类型返回一个翻译后的插件描述,

在 v2.1.2 版本加入.

class mcdreforged.plugin.meta.version.Version(version_str: str, *, allow_wildcard: bool = True)[源代码]

一个储存类似语义化版本的版本字符串

例子:

  • "1.2.3"

  • "1.0.*"

  • "1.2.3-pre4+build.5"

__init__(version_str: str, *, allow_wildcard: bool = True)[源代码]
参数:

version_str – 被解析的版本字符串

关键字参数:

allow_wildcard – 是否允许通配符 ("*", "x", "X")。默认值: True

class mcdreforged.plugin.meta.version.VersionRequirement(requirements: str)[源代码]

一个版本要求测试器

它可以测试一个给定的 Version 是否满足其所储存的版本要求

__init__(requirements: str)[源代码]
参数:

requirements – 版本要求字符串,含若干个通过空格字符连接的版本谓词。例子: ">=1.0.x", "^2.9", ">=1.2.0 <1.4.3"

插件事件

class mcdreforged.plugin.plugin_event.PluginEvent(event_id: str)[源代码]

插件事件的抽象基类

插件事件拥有一个 id 属性,作为其标识符

id: str

插件事件的 ID

class mcdreforged.plugin.plugin_event.LiteralEvent(event_id: str)[源代码]

基类:PluginEvent

PluginEvent 的简单且最小实现

构造一个 LiteralEvent 对象所需的所有信息仅有事件 ID

__init__(event_id: str)[源代码]

创建一个 LiteralEvent

参数:

event_id – 插件事件的 ID

class mcdreforged.plugin.plugin_event.MCDREvent(event_id: str, default_method_name: str)[源代码]

基类:PluginEvent

MCDR 使用的插件事件

一般来说,只有 MCDR 才被允许构造 MCDREvent

class mcdreforged.plugin.plugin_event.MCDRPluginEvents[源代码]

MCDR 中使用的,所有可能的 MCDREvent 对象的集合

GENERAL_INFO = MCDREvent[id='mcdr.general_info', default_method_name='on_info']
USER_INFO = MCDREvent[id='mcdr.user_info', default_method_name='on_user_info']
SERVER_START = MCDREvent[id='mcdr.server_start', default_method_name='on_server_start']
SERVER_STARTUP = MCDREvent[id='mcdr.server_startup', default_method_name='on_server_startup']
SERVER_STOP = MCDREvent[id='mcdr.server_stop', default_method_name='on_server_stop']
MCDR_START = MCDREvent[id='mcdr.mcdr_start', default_method_name='on_mcdr_start']
MCDR_STOP = MCDREvent[id='mcdr.mcdr_stop', default_method_name='on_mcdr_stop']
PLAYER_JOINED = MCDREvent[id='mcdr.player_joined', default_method_name='on_player_joined']
PLAYER_LEFT = MCDREvent[id='mcdr.player_left', default_method_name='on_player_left']
PLUGIN_LOADED = MCDREvent[id='mcdr.plugin_loaded', default_method_name='on_load']
PLUGIN_UNLOADED = MCDREvent[id='mcdr.plugin_unloaded', default_method_name='on_unload']