minecraft-client-rs 0.1.3

A client for the Minecraft RCON protocol.
Documentation
# minecraft-client-rs


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

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".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:

```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

- https://wiki.vg/Rcon

[Crates.io]: https://crates.io/crates/minecraft-client-rs
[Crates.io Badge]: https://img.shields.io/badge/crates.io-v0.1.0-orange
[docs.rs]: https://docs.rs/minecraft-client-rs/0.1.0/minecraft_client_rs/
[docs.rs Badge]: https://docs.rs/minecraft-client-rs/badge.svg?version=0.1.0
[Travis]: https://travis-ci.org/willroberts/minecraft-client-rs
[Travis Badge]: https://api.travis-ci.org/willroberts/minecraft-client-rs.svg?branch=main
[License]: https://www.gnu.org/licenses/gpl-3.0
[License Badge]: https://img.shields.io/badge/License-GPLv3-blue.svg