插件的 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 包包含了建立命令树或创建自己的命令的必要条件,包括命令树节点类、命令异常和一些命令实用工具

例如,若你希望使用 LiteralIllegalArgument 来构建你命令树并处理 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

类参考:实用工具