Listen to error event on ws to prevent uncaught exceptions
Add new Java project
Update .gitignore
Start implementing a server using Netty
Copy uk.co.thinkofdeath.thinkmap.bukkit.web from ThinkMap

https://github.com/thinkofdeath/ThinkMap/tree/1eea96d13182e92328aaa0ffb3f08eff761bf410/bukkit/src/main/java/uk/co/thinkofdeath/thinkcraft/bukkit/web
Start working on a Bukkit plugin, based on ThinkMap
Set configuration defaults, port 24444
Serve stub HTML from plugin HTTP server
WebSocket binary echo server
Log incoming WS connection socket address
Add MC protocol decoder from Glowstone

https://github.com/SpaceManiac/Glowstone/blob/master/src/main/java/net/glowstone/net/protocol/GlowProtocol.java
Include only header reading/writing from GlowProtocol
Add MC protocol decoder from BungeeCord

https://github.com/SpigotMC/BungeeCord/tree/master/protocol
Revert "Add MC protocol decoder from BungeeCord" -- back to Glowstone

This reverts commit 7f001495eae9151e64dd29604d09c30a7a3d0dcf.
Add Varint21FrameDecoder ByteToMessageDecoder from BungeeCord
Use flow-networking ByteBufUtils to read protocol varints
Initiate outgoing connection to MC server
Send initial handshake packet
Read server response
Show disconnect reason if handshake fails