6,996 Commits over 2,802 Days - 0.10cph!
Add support for mocking the game server connection (see Dev.ts and BasicMockHandler.ts)
Only send team notifications to offline team members
Don't use IsAlive for websocket (rcon doesn't respond to pings anymore, yes IsAlive sends a ping)
Moved some notification code out of BasePlayer, send more info with the login one
Cleanup for pairing rate limiting
Subtract all of the new entities on this branch (moving to subbranch)
Revert tool cupboard and MenuUI changes
Rate limit pairing and alarms
Save player names so the teams UI can always show the correct name of dead players (instead of "DEAD")
WIP fix for players sometimes being removed from teams when they die
Update Fleck with some fixes for console spam, also add redundant checks in the RCon listener to make sure nothing slips by
Fix soft closing not being used as of the last commit
Call OnError for write errors too
Always call the SendBytes callback - pass a bool indicating if it worked or not
Fix WebSocketConnection.Close possibly being ignored when a socket read fails
Remove default console logging
Only call LogAction if that level is enabled
Allow LogAction to be null
Send a notification to players when they're offline and get killed by something
Moved the player token into the sqlite backed persistence (separate db so it doesn't get wiped)
Handle the case where the player's token is valid but they have been destroyed
Made those tokens int32 instead of uint32
Temporary IP ban people who flood the command server
Automatically cleanup expired bans and token buckets
Make the default command server port never overlap with the game or rcon
Change serverid to a replicated convar
Fix Command.Set not triggering convar replication (only worked when running a command before)
Add console commands to enable/disable notifications for a server
Update protos and auth mapping
Make player token required in protos
Throttle command dispatching
Add rate limiting for incoming commands
Player authentication is now mandatory
Another pooling fix
Update to new websocket lib
Fix some pooling issues
Add Pool.FreeDynamic to return objects to the pool using their runtime type (only required for polymorphic types)
Send MemoryBuffers instead to take advantage of the pooling
BinaryDataHandler uses Span<byte> instead because it refers to the internal receive buffer
Some MemoryBuffer improvements
Fix steamid parsing incorrectly in webrcon chat view
▍█▌▍▉▋ ▉▉ ▄ ▆▄▍▆ █▊ ▍▇▉▍▆ (█▌ ▌▉▇ █▄▋▄▉▋) ▉█▄▅ ▅▋ ▉▊▇▅▋▆ ▊▅▌ ▆▇▇▋▇'▆ █▊▇▄ ▊▇▊▄▊▌█▉▉▉▉ ▅▇▉ ▆▋ ▍▉▄▋▊▅ (█▉▅▋ █▇▅▉▅▌▋▄ ▉█ ▌▉▋ ▇▆▊▅▉▆▅▄ ▌█▊▆▌)
▉▉█▉ ▌▅▍▌█▅█ ▄ █▋█▆▍ ▌▌▇ ▋▋▉ ▍▄▌▆▄▊▉ ▌█▆▆▆ ▅▉▍▉ ▋▉▌▍▄▆▄ ▅█ ▊▋▌▊▋ ▌▅
More allocation reduction (send, etc)
Delegate allocation reduction, receiving data shouldn't allocate now
Fix large frames reading incorrectly, use ArraySegment for binary message sending (easier for pooling)
More allocation reduction, more subprotocol removal, large incoming messages (>4KB) are delayed for some reason right now
Fixed sending larger messages, return buffers to pool when done with them
First pass, only somewhat broken
Stripping out things (older protocol handlers, subprotocols, custom headers, cookies, flash socket policy)
▍▉▊▋▇█ ▋▌▊▄ ▋▍▇▋ ▇▍ ▉▍▍ ▄▍▅▇█ ▊▇▇▅▍▋█ ▌▉ ▇▄██▆▍███▌▇▊▌▆ ▊▊ ▆▋▄ ▆█▉▌ ▅▅▅▍▄▉ ▌▌▉▍▇▍ ▊▍ █▆▄█
▋█▍▅▇▇▌, ▆▋▊▍▊▄▉, ▊▉█ ▋▅▄ ▌▉▅▊▉█ ▋▍▇▋
Fix notification permission toggling generating a new steam ticket
Prevent duplicate player tokens from being generated