插件的 API 包
当你需要从 MCDR 中导入些东西时,除了直接从 MCDR 的内部实现中导入外,你还可以从 mcdreforged.api
中进行导入
mcdreforged.api
是供插件开发者导入的包。如果你仅从 api 包进行导入目标类,就可以保证插件导入目标类的导入路径与目标类的实际路径解耦。如果以后 MCDR 重构了目标类,亦或是移动了目标类的位置,那么仅从 api 包中导入目标类的插件就能丝毫不受影响
all
模块路径: mcdreforged.api.all
from mcdreforged.api.all import *
这是导入插件开发所需的所有内容的最简单的方法,是懒人的救命稻草
你也可以使用如下所示,不使用 *
的更安全的操作
import mcdreforged.api.all as mcdr
# access stuffs with mcdr.Something
继续阅读以了解实际导入的内容
command
模块路径: mcdreforged.api.command
command
包包含了建立命令树或创建自己的命令的必要条件,包括命令树节点类、命令异常和一些命令实用工具
例如,若你希望使用 Literal
和 IllegalArgument
来构建你命令树并处理 on_error
异常,则可以这样做:
from mcdreforged.api.command import Literal, IllegalArgument
当然,如果你嫌麻烦,那么也可以:
from mcdreforged.api.command import *
类参考:指令相关
decorator
模块路径: mcdreforged.api.decorator
decorator
包包含了一些对插件开发有用的函数装饰器
类参考:装饰器
event
模块路径: mcdreforged.api.event
event
包包含用于创建自定义事件的类和 MCDR 内置事件的类
你可能已经读过 ServerInterface
类中的 dispatch_event()
方法。它只接受一个 PluginEvent
实例作为第一个参数。所以,如果你想分发你的自定义事件,为了简单起见,请创建一个 LiteralEvent
或一个继承自 PluginEvent
的自定义事件类
exception
模块路径: mcdreforged.api.exception
MCDR 运行时会使用一些自定义的异常,例如在调用 ServerInterface
的方法时。这是导入它们的方法
rcon
模块路径: mcdreforged.api.rcon
rcon
包仅包含一个类—— RconConnection
。这是一个简单的 rcon 客户端,用于连接到任何支持 rcon 协议的 Minecraft 服务端
类参考:Rcon
rtext
模块路径: mcdreforged.api.rtext
建议先阅读 Minecraft Wiki 中的 原始JSON文本格式 页面
这是一个用于Minecraft的高级文本组件库
这部分受 Pandaria98 制作的 MCD stext API 的启发,在此表达感谢
类参考:RText
types
模块路径: mcdreforged.api.types
谁不希望在编写插件时,有一个检查器来帮助你减少愚蠢的错误呢?如果你想指定类型以让 IDE 知道你在写什么,这里有一个包可以让你导入一些常用的类
from mcdreforged.api.types import PluginServerInterface, Info
def on_info(server: PluginServerInterface, info: Info):
# Now auto completion for server and info parameters should be available for IDE
pass
utils
一些实用工具集
模块路径: mcdreforged.api.utils
类参考:实用工具