From what I gathered, wrappers mimic the game server in question, receiving packets from client and sending them to the server (and vice versa). It acts like a bridge between the client and server, allowing data to flow and modifying/reading it as it travels through it.
Am I right in how wrappers work? What is the general gist of them? How would one go about writing one?
I plan to write one for Starbound in Java, using https://github.com/StarryPy/StarryPy as a reference to the packets.