Info 和 Info 响应器

Info

class mcdreforged.info_reactor.info.Info(source: InfoSource, raw_content: str)[源代码]

一个 Info 信息对象包含了从服务器或控制台解析的结果

id: int

一个单调递增的唯一 ID

hour: int | None

来自被解析文本的时间信息 - 小时

min: int | None

来自被解析文本的时间信息 - 分钟

sec: int | None

来自被解析文本的时间信息 - 秒

raw_content: str

服务器标准输出中未解析的原始内容

它也是将要回显到标准输出的内容

content: str | None

解析完毕的信息文本

如果该信息是玩家的聊天信息,则其值为玩家的聊天内容。否则其值为除去时间/线程名等信息后的内容

source: InfoSource

一个 int(实际上是 InfoSource,一个 int 的子类),表示该信息的类型

若该信息是来自服务端的标准输出流,则为 0

若来自控制台输入,则为 1

InfoSource 以了解所有可能的取值

logging_level: str | None

该信息的 logging 级别,例如 "INFO" 或者 "WARN"

property player: str | None

玩家名称

若信息不是来自玩家的聊天信息,则为 None

property is_from_console: bool

信息源是否是 InfoSource.CONSOLE (1),即是信息否来自控制台

property is_from_server: bool

信息源是否是 InfoSource.SERVER (0),即是信息否来自服务端

property is_player: bool

信息是否来自于服务端中的玩家

property is_user: bool

信息是否来自于用户,即是否来自控制台或服务端中的玩家

get_server() ServerInterface[源代码]

返回 ServerInterface 实例

get_command_source() InfoCommandSource | None[源代码]

从此对象中提取出一个指令源对象

  • ConsoleCommandSource,如果该信息来自控制台

  • PlayerCommandSource,如果该信息来自服务端中的玩家

返回:

返回指令源实例。如果无法提取指令源,则返回 None

to_command_source() InfoCommandSource[源代码]

与方法 get_command_source() 一样,只不过它会在无法提取指令源时抛出一个 IllegalCallError

抛出:

IllegalCallError – 如果此无法从这个对象中提取指令源

should_send_to_server() bool[源代码]

如果从控制台输入此信息,则表示 MCDR 是否应将内容发送到服务器的标准输入流

cancel_send_to_server() None[源代码]

将该信息取消发送至服务端标准输入流

class mcdreforged.info_reactor.info.InfoSource(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[源代码]

基类:int, Enum

一个消息(Info)对象的来源

SERVER = 0

来自服务端的标准输出流

CONSOLE = 1

来自控制台的输入

Info 响应器

class mcdreforged.info_reactor.abstract_info_reactor.AbstractInfoReactor(mcdr_server: MCDReforgedServer)[源代码]

Info 响应器的抽象基类

mcdr_server: MCDReforgedServer

MCDR 服务端对象

react(info: Info)[源代码]

对一个 Info 对象做出响应

它将在任务执行者 (task executor) 线程被调用

参数:

info – 被响应的信息

on_server_start()[源代码]

在服务端启动时将被调用

on_server_stop()[源代码]

在服务端停止的时候将被调用