Thorough integration testing framework
We've had a number of regressions introduced by new features which were not caught by any form of automated testing. For example, #247 comes to mind.
To fix this, we should implement an integration test suite which:
- runs the server executable with different configs each time
- connects bots to the server (blocked on `feather-protocol)
- ensures that interaction between bots and game state are correct
I want to work on this and #219. My plan currently is to make a rust implementation of the minecraft client api (send and receive packets, store chunk and entity data) and then use this for integration testing and eventually benchmarking. Is there anything in particular I need to consider? What parts of feather can be reused for this (I am unfamiliar with the project structure)?
@ChemicalXandco you might want to talk to Miro on Discord, he is in the process of creating a tool that automatically compares vanilla Minecraft to Feather.