* fix(Docker): improve build and compose files
- Adapted `Dockerfile` so the PWD will point to the `/config` folder in the image
- Modified the `docker-compose.yml` to follow the Dockerfile logic
- Added a LABEL to the docker image so it points to the source code
* refactor(Dockerfile): comment WORKDIR /config instruction
* feat(Dockerfile): move back to `/pumpkin` as root folder
* add pumpkin error handling for commands
* cleanup clear command
* fix so that all Container implementations follow the same order as the trait
* cleanup give command
* remove unnecessary function
* remove unnecessary function
* fix give command
* fix clear command
* fixup item placement logic
* cleanup clear command a little
* add cleaner registry parsing
* start adding recipes
* add tags, and some crafting things
* Fix echest command
* add partly working crafting interface
* add generated assets
* fix container commands and clippy lints
* fix issues with resolving recursive item tags for crafting
* add flatten3x3 function
* add shapeless crafting
* add tests to and fix recipe flattening function
* refactor recipe system a bit
* add rayon to speed up initial loading of recipes
* almost working after rebase
* add deserialization for new crafting type "transmute"
* make crafting work again
* make shapeless recipes not require all permutations
* fixed visual bug with when taking out ingredients for crafting
* add support for new tags system
* According to the wiki we need to use 0x2F for set held item, this fixes the bug where if you have something in your 1st slot you would be able to place it with any other slot selected
* Added new packets
Added packets to pumpkin-protocol for damage and re-spawning.
* Made damage_type registry value accessible
* Added damage and fall damage
* fixed phasing bug
* fix issues caused by merge
* spawn player on ground
make the player spawn on the highest block instead of in the air.
* dont default player to flying
* mode last_pos to living_entity
* fix using entity instead of living_entity
* fixed fall damage not working properly when switching gamemodes
* Add query options to config
Added packet data types
Correctly parse a handshake packet
Add tokio to pumpkin protocol for `AsyncReadExt` convenience functions
* Add repr(u8) so that PacketType is a byte
* Respond to handshake correctly
* Allow for proper decoding of status packets and properly handle errors in decoding
* Implement challange tokens and verify with token and address
* Encode Basic status packet
Switch to CString since its better to and null errors higher up the code
* Encode Full status packet
* Add forgotten fields to full status packet
* Correctly respond to query clients when requesting full status
* Return actual address and port of server
Respect config options
Remove uncessary debug derives
* Remove packet type as it is redundant/unnecssary
* Implement basic status request
Refactor code for better error handling
* Update README
* Show players correctly in full status packet
* Store all packets in structs instead of enums
Break up en/decoding for each packet
Reduce client tracking
Get rid of QueryClients struct
Stop storing of magic value and check during decoding
Added tests for all decoding and encoding
Fix all sugestions from @StripedMonkey