Split status elements out of UserInfo and made user update event based.
Issue user disconnected and kick/ban as events and restructure table.
Fixed excessive sending of user update packets.
Made the channel event log code similar to the normal event handling code.
Events system overhaul.
Removed event flags attribute.
Use interface instead of abstract classes as base for Sock Chat S2C packets.
Removed AddEvent aliases.
Removed Splatoon 1 dev domain hardcode.
I'm stupid.
Updated Takozone API to use
Added Satori routes to Awaki.
Updated to short property syntax.
Use attribute based route registration.
Added Satori redirects table and read endpoint.
Also deduplicate forum category redirect regex.
Added Niiso to internal bots list.
Updated ImageSharp to v3.1.4.
Split connection classes.
Turns out neither of those two repos were public!
Split various components into sublibraries to avoid things depending on things they should not depend on.
Apply S2C and C2S naming scheme for easy packet direction identification.
Packet packing micro optimisation.
Connection handling rewrite.
Use server start timestamp for welcome MOTD message and MOTD file last write for the other one.
Added base class for packets with timestamp.
Removed IServerPacket interface.
Extracted all log packets into their own ones.
Rewrote user and channel collections.