minecraft-client-rs

Crates.iominecraft-client-rs
lib.rsminecraft-client-rs
version0.1.3
sourcesrc
created_at2021-03-20 06:00:53.070233
updated_at2022-08-02 12:56:04.721022
descriptionA client for the Minecraft RCON protocol.
homepage
repository
max_upload_size
id371281
size56,597
Will (willroberts)

documentation

README

minecraft-client-rs

Crates.io Badge docs.rs Badge Travis Badge License Badge

A client for the Minecraft RCON protocol.

Library Usage

// Create a new client and connect to the server.
let mut client = Client::new("127.0.0.1:25575".to_string()).unwrap();

// Send some commands.
match client.authenticate("password".to_string()) {
	Ok(_) => { },
	Err(e) => { /* handle authentication error */ },
}
match client.send_command("seed".to_string()) {
	Ok(resp) => { println!("{}", resp.body); }, // "Seed: [1871644822592853811]"
	Err(e) => { /* handle error */ },
}

// Disconnect cleanly when finished.
client.close().unwrap();

Shell Utility

If you are looking for a tool rather than a library, try the shell command:

# Single command mode
$ cargo run -F cli -- -h 127.0.0.1:25575 -p minecraft seed
Seed: [5454567064266725003]

# Interactive mode
$ cargo run -F cli -- -h 127.0.0.1:25575 -p minecraft -i
Starting RCON shell. Use 'exit', 'quit', or Ctrl-C to exit.
> list
There are 0 of a max of 20 players online:
> seed
Seed: [5454567064266725003]

Limitations

Response bodies over 4KB will be truncated.

Starting a server for testing

$ docker pull itzg/minecraft-server
$ docker run --name=minecraft-server -p 25575:25575 -d -e EULA=TRUE itzg/minecraft-server

Running Tests

To run unit tests:

$ cargo test --lib

To run integration tests after starting the test server in Docker:

$ cargo test

Reference

Commit count: 0

cargo fmt