.. | ||
src | ||
Cargo.toml | ||
README.md |
What's This?
The packet inspector is a very simple Minecraft proxy for viewing the contents of packets as they are sent/received. It uses Valence's protocol facilities to print packet contents. This was made for three purposes:
- Check that packets between Valence and client are matching your expectations.
- Check that packets between vanilla server and client are parsed correctly by Valence.
- Understand how the protocol works between the vanilla server and client.
Usage
First, start a server
cargo r -r --example conway
In a separate terminal, start the packet inspector.
cargo r -r -p packet_inspector -- 127.0.0.1:25566 127.0.0.1:25565
The client must connect to localhost:25566
. You should see the packets in stdout
.
The third argument to the packet inspector is an optional regular expression compatible with the regex crate. Packets with names that match the regex are printed while those that don't are ignored. If the regex is not provided then the empty string is assumed and all packets are considered matching.
If you're only interested in packets Foo
, Bar
, and Baz
, you can use a regex such as ^(Foo|Bar|Baz)$
.
cargo r -r -p packet_inspector -- 127.0.0.1:25566 127.0.0.1:25565 '^(Foo|Bar|Baz)$'
Packets are printed to stdout
while errors are printed to stderr
. If you only want to see errors in your terminal,
direct stdout
elsewhere.
cargo r -r -p packet_inspector -- 127.0.0.1:25566 127.0.0.1:25565 > log.txt
Quick start with Vanilla Server via Docker
Start the server
docker run -e EULA=TRUE -e ONLINE_MODE=false -d -p 25565:25565 --name mc itzg/minecraft-server
View server logs
docker logs -f mc
Server Rcon
docker exec -i mc rcon-cli
In a separate terminal, start the packet inspector.
cargo r -r -p packet_inspector -- 127.0.0.1:25566 127.0.0.1:25565
Open Minecraft and connect to localhost:25566
.
Clean up
docker stop mc
docker rm mc