服务端处理器
- class mcdreforged.handler.abstract_server_handler.AbstractServerHandler[源代码]
服务端处理器的抽象基类
类继承树状图:
AbstractServerHandler ├── BasicHandler ├── AbstractMinecraftHandler │ ├── VanillaHandler │ │ ├── Beta18Handler │ │ └── ForgeHandler │ └── BukkitHandler │ ├── Bukkit14Handler │ ├── CatServerHandler │ └── ArclightHandler ├── BungeecordHandler │ └── WaterfallHandler └── VelocityHandler
- get_send_message_command(target: str, message: str | RTextBase, server_information: ServerInformation) str | None [源代码]
用于向一个目标发送一条消息的命令
- get_broadcast_message_command(message: str | RTextBase, server_information: ServerInformation) str | None [源代码]
用于将一条消息广播于服务器之中的命令
- pre_parse_server_stdout(text: str) str [源代码]
一个解析前的预处理器,将在任何解析操作前调用
用于在解析前删除文本中那些无用/影响解析的字符
- 参数:
text – 一行要被解析的服务器标准输出流字符串
- classmethod parse_console_command(text: str) Info [源代码]
解析控制台输入
- 参数:
text – 一行要被解析的控制台输入字符串
- 返回:
一个作为返回值的
Info
对象
- classmethod _get_server_stdout_raw_result(text: str) Info [源代码]
此方法会进行一次未处理的“解析”,并返回一个几乎未解析的
Info
对象将其作为解析流程的第一步,或者你也可以直接把它的返回值作为最终解析结果,如果你放弃解析这个文本
- classmethod get_content_parsing_formatter() str | Iterable[str] [源代码]
返回一个将在方法
_content_parse()
中作解析用途的 str 或者Iterable[str]
这些字符串会作为第一个参数传递给
parse.parse
,他们应该含有至少以下的属性:hour
min
sec
logging
content
首个成功的
parse.parse
调用的返回值会被用于填充Info
对象的数据返回值应当为一个固定值
- classmethod _content_parse(info: Info)[源代码]
一个常用的方法,用于从一个未解析的
Info
对象中解析一些基础元素期望解析出的元素包括:
info.logging
- 参数:
info – 一个将被处理的
Info
对象
- parse_server_stdout(text: str) Info [源代码]
解析的主操作。解析一条来自服务端标注输出流的字符串并输出一个解析后的信息
它可以在输入字符串格式不正确时,抛出你想要的异常
在这个默认实现中,它首先使用
_get_server_stdout_raw_result()
来获取一个未处理的Info
对象,然后使用_content_parse()
来向Info
对象填充一些基础信息,最后将其作为一个简单解析的信息返回如果服务端处理器有解析出更多信息的能力,你可以在借助
super()
调用本方法后进行更多的后续解析操作- 参数:
text – 一行要被解析的服务器标准输出流字符串
- 返回:
一个作为返回值的
Info
对象
- parse_player_joined(info: Info) str | None [源代码]
检查这条信息是否表示一条玩家加入信息
如果是,返回玩家的名字,否则返回 None
- 参数:
info – 将被检查的信息对象
- 返回:
玩家名或 None
- parse_player_left(info: Info) str | None [源代码]
检查这条信息是否表示一条玩家离开信息
如果是,返回玩家的名字,否则返回 None
- 参数:
info – 将被检查的信息对象
- 返回:
玩家名或 None
- parse_server_version(info: Info) str | None [源代码]
检查这条信息是否表示包含服务端版本信息
如果是,返回服务端的版本,否则返回 None
- 参数:
info – 将被检查的信息对象
- 返回:
服务端的版本或 None
- parse_server_address(info: Info) Tuple[str, int] | None [源代码]
检查这条信息是否表示包含服务端监听的地址
如果是,返回服务端监听的 ip 及端口,否则返回 None
- 参数:
info – 将被检查的信息对象
- 返回:
一个包含 ip 和端口的 tuple,或 None
- test_server_startup_done(info: Info) bool [源代码]
检查这条信息是否表示服务端已启动完成
- 参数:
info – 将被检查的信息对象
- 返回:
这条信息是否表示服务端已启动完成
- class mcdreforged.handler.impl.BasicHandler[源代码]
基础的朴素的处理器,提供最小的解析信息
当所有其他的专用服务端处理器失败后,它将被作为后备处理器使用
- class mcdreforged.handler.impl.AbstractMinecraftHandler[源代码]
一个抽象类,为 Minecraft Java 版服务端设计的服务端处理器
- class mcdreforged.handler.impl.Bukkit14Handler[源代码]
为 bukkit 和 spigot 的 1.14+ Minecraft 服务端设计的服务端处理器
- class mcdreforged.handler.impl.CatServerHandler[源代码]
为 CatServer Minecraft 服务端设计的服务端处理器
CatServer 使用原版的日志格式,但是玩家加入信息的格式类似于 spigot
并且玩家离开消息拥有一些颜色代码
- class mcdreforged.handler.impl.BungeecordHandler[源代码]
为 Bungeecord 服务端设计的服务端处理器