Info 相关
Info
- class mcdreforged.info_reactor.info.Info(source: InfoSource, raw_content: str, id: int = <factory>, hour: int | None = None, min: int | None = None, sec: int | None = None, content: str | None = None, player: str | None = None, logging_level: str | None = None, action_flag: InfoActionFlag = <InfoActionFlag.send_to_server|echo_to_console|process: 7>, _Info__control_data: _InfoControlData | None = None)[源代码]
一个
Info信息对象包含了从服务器或控制台解析的结果- source: InfoSource
一个 int(实际上是
InfoSource,一个 int 的子类),表示该信息的类型若该信息是来自服务端的标准输出流,则为
0若来自控制台输入,则为
1见
InfoSource以了解所有可能的取值
- action_flag: InfoActionFlag = 7
一个用于控制 MCDR 接下来将对这个 Info 对象执行的操作的 flag 变量
参见
- property is_from_console: bool
信息源是否是
InfoSource.CONSOLE(1),即是信息否来自控制台
- property is_from_server: bool
信息源是否是
InfoSource.SERVER(0),即是信息否来自服务端
- get_server() ServerInterface[源代码]
返回 ServerInterface 实例
- get_command_source() InfoCommandSource | None[源代码]
从此对象中提取出一个命令源对象
ConsoleCommandSource,如果该信息来自控制台PlayerCommandSource,如果该信息来自服务端中的玩家其他情况将返回 None
- 返回:
返回命令源实例。如果无法提取命令源,则返回 None
- to_command_source() InfoCommandSource[源代码]
与方法
get_command_source()一样,只不过它会在无法提取命令源时抛出一个IllegalCallError- 抛出:
IllegalCallError -- 如果此无法从这个对象中提取命令源
- class mcdreforged.info_reactor.info.InfoActionFlag(*values)[源代码]
基类:
Flag一个用于控制 MCDR 接下来将对这个 Info 对象执行的操作的 flag 变量
- send_to_server = 1
将控制台标准输入内容发送到服务器的标准输入
- echo_to_console = 2
将服务器输出内容回显到控制台标准输出
- process = 4
允许后续的 Info 响应器处理操作,如插件事件的分发
- classmethod default() InfoActionFlag[源代码]
默认的 flag set,允许后续所有操作
不要将服务器输出回显到控制台,静默执行后续操作
- classmethod discarded() InfoActionFlag[源代码]
立即丢弃该信息对象,不再进行后续处理
信息响应器
信息过滤器
- class mcdreforged.info_reactor.info_filter.InfoFilter[源代码]
- abstractmethod filter_server_info(info: Info) bool | None[源代码]
过滤一个来自服务端输出的信息对象,判断它是否应该被丢弃
若一个来自服务端输出的信息对象被丢弃,那它既不会被回显至控制台标准输出,也不会被后续的 MCDR 逻辑处理
不要影响无辜的信息对象,即不要丢弃那些可能含有重要信息的信息对象(如服务端启动/关闭的输出),否则 MCDR 可能无法正确地工作
该函数将在 MCDR 从服务器输出解析出
Info对象后立即调用要精确控制 MCDR 接下来应对该 info 对象执行哪些操作,可以在此函数中修改其
~属性。返回False实际上等同于:info.action_flag = InfoActionFlag.discarded()
参见
- 参数:
info -- 用于检查的信息对象
- 返回:
True:什么都不做;False:丢弃这个对象