# 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 ```sh cargo r -r --example conway ``` In a separate terminal, start the packet inspector. ```sh 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](https://docs.rs/regex/latest/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)$`. ```sh 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. ```sh 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 ```sh docker run -e EULA=TRUE -e ONLINE_MODE=false -d -p 25565:25565 --name mc itzg/minecraft-server ``` View server logs ```sh docker logs -f mc ``` Server Rcon ```sh docker exec -i mc rcon-cli ``` In a separate terminal, start the packet inspector. ```sh 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 ```