minecraft-client-rs

![Crates.io Badge] ![docs.rs Badge] ![Travis Badge] ![License Badge]

A client for the Minecraft RCON protocol.

Library Usage

```rust // 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".tostring()) { 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:

```bash

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