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