#minecraft-server #minecraft #server-status #protocols #server-client #light-weight

msp

使用 Rust 实现的快速、轻量级的 Minecraft 服务器协议客户端

1 个不稳定版本

0.1.2 2023 年 5 月 20 日
0.1.1 2023 年 5 月 20 日
0.1.0 2023 年 5 月 17 日

#164 in 值格式化

34 每月下载量

MIT 许可证

62KB
1K SLoC

Msp (alpha)

license version download

英语 | 中文

WIP:目前处于 alpha 阶段。它是功能性的,可以用于,但配置和功能 API 可能会在小版本发布之间发生变化。

一个在 Rust 中实现的 Minecraft 服务器协议客户端,提供快速响应、轻量级、稳定性、全面类型导出和错误反馈。它可以通过各种协议检索服务器状态,并返回强类型 JSON 数据。

适用版本

支持 Java 版本和基岩版服务器。适用版本范围如下。

  • Java 版本:适用于 1.4 及以上版本的服务器(协议版本号 >= 47)。
  • 基岩版:适用于现代基岩服务器(1.16.220 及以上)。

支持的协议

覆盖大多数版本的 Server Information Query Protocol,某些协议要求服务器启用相应的功能。

使用方法

  1. 要将它作为库集成到您的 Rust 项目中,请在根项目目录中运行它。
cargo add msp

或者,将此依赖项添加到您的 Cargo.toml 文件中

[dependencies]
msp = "0.1.0"

示例

以下是展示的一些基本示例。

  1. 使用 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(())
}
  1. 使用 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(())
}
  1. 使用 get_lan_server_status 来检索局域网在线主机
use msp::{get_lan_server_status, MspErr, SocketConf};

fn main() -> Result<(), MspErr> {
    get_lan_server_status(&SocketConf::default())?;

    Ok(())
}
  1. 使用 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