1 个不稳定版本
0.1.2 | 2023 年 5 月 20 日 |
---|---|
0.1.1 |
|
0.1.0 |
|
#164 in 值格式化
34 每月下载量
62KB
1K SLoC
Msp (alpha)
英语 | 中文
WIP:目前处于 alpha 阶段。它是功能性的,可以用于,但配置和功能 API 可能会在小版本发布之间发生变化。
一个在 Rust 中实现的 Minecraft 服务器协议客户端,提供快速响应、轻量级、稳定性、全面类型导出和错误反馈。它可以通过各种协议检索服务器状态,并返回强类型 JSON 数据。
适用版本
支持 Java 版本和基岩版服务器。适用版本范围如下。
- Java 版本:适用于 1.4 及以上版本的服务器(协议版本号 >= 47)。
- 基岩版:适用于现代基岩服务器(1.16.220 及以上)。
支持的协议
覆盖大多数版本的 Server Information Query Protocol,某些协议要求服务器启用相应的功能。
- 服务器列表 Ping 适用于大多数现代服务器(1.7+)。
- Netty 服务器 Ping 适用于 1.6 及以上版本的服务器。
- 旧版服务器 Ping 适用于旧版本的服务器(1.4 到 1.5)。
- Beta 旧版服务器 Ping 适用于古老版本的服务器(Beta 1.8 到 1.3)。
- 通过 LAN Ping LAN 服务器发现协议。
- Raknet 协议 适用于现代基岩服务器。
- Query 协议 适用于现代 Java 版本服务器(从 1.9pre4 版本开始可用)。
使用方法
- 要将它作为库集成到您的 Rust 项目中,请在根项目目录中运行它。
cargo add msp
或者,将此依赖项添加到您的 Cargo.toml
文件中
[dependencies]
msp = "0.1.0"
示例
以下是展示的一些基本示例。
- 使用
Conf::get_server_status
来检索服务器信息,返回Server
。注意,不支持旧版本
use msp::{Conf, MspErr, Server};
fn main() -> Result<(), MspErr> {
let server = Conf::create_with_port("www.example.com", 25565);
let info: Server = server.get_server_status()?;
println!("{}", info);
Ok(())
}
- 使用
Conf::create_with_port
创建指定端口的连接配置
use msp::{Conf, MspErr, Server};
fn main() -> Result<(), MspErr> {
let server = Conf::create_with_port("www.example.com", 25565);
let info: Server = server.get_server_status()?;
println!("{}", info);
Ok(())
}
- 使用
get_lan_server_status
来检索局域网在线主机
use msp::{get_lan_server_status, MspErr, SocketConf};
fn main() -> Result<(), MspErr> {
get_lan_server_status(&SocketConf::default())?;
Ok(())
}
- 使用
Conf::query_full
使用查询协议检索服务器信息
use msp::{Conf, MspErr};
fn main() -> Result<(), MspErr> {
let server = Conf::create_with_port("www.example.com", 25565);
println!("{}", server.query_full()?);
Ok(())
}
⚠️要使用此协议,需要在服务器端启用 enable-query
选项。此选项位于根目录下的 server.properties
文件中。设置如下
enable-query=true
query.port=25565 # Configure the port according to your specific situation
请确保保存更改并重启服务器以使配置生效。
许可证
MIT。
依赖
~0.6–1.4MB
~32K SLoC