6,820 Commits over 3,103 Days - 0.09cph!
made protocol verification work again.
more general tidy up in Server/ServerConnection
RequestLeaderboardHandler
RequestJoinMatchmakingHandler
RequestCancelMatchmakingHandler
ChatHandler
GameCmdHandler
RequestMMFHandler
RequestCancelMMFHandler
AcceptMMFHandler
DeclineMMFHandler
refactored message handler stuff so there's only ever one client ID lookup done not one per message handler
refactored base shit out of ServerMsgHandler to a MsgHandler base class so I can use it for a ClientMsgHandler.
Namespace'd all the new server msg handlers to ServerSide
ClientMsgHandler
ClientConnectionIDHandler
JoinedMatchmakingHandler
ReceivedMMFDeclinedHandler
ReceivedMMFRequestHandler
refactored the rest of client messages out to handlers
merged networking refactor to main so we can spot any bugs sooner than later
fix attempt for server not cleaning up lost connection clients
fixed a NET_Receive crash caused by raknet ptr becoming null in read while loop after getting kicked
renamed PlayerDatabase functions
PlayerDatabase now saves again ;)
added auto mute for 20 seconds for chat spamming
can now send server messages to individual clients.
added mute server message.
super simple console command system, reflection and attribute tags build a dictionary of commands
server console commands: help, game.list, matchmaking.list, playerdatabase.stats, player.list, playerdatabase.resetelo, shutdown, stats
Kick (with reason) server console command.
ConsoleCommand now verifies argument types.
added ban command to ban (and kick if online) a player from the server for X hours with a reason.
added unban time to PlayerRecord
player auth process checks if they're banned and kicks them with a message stating how long they are banned for.
added unban console command.
server console now displays current player count on player disconnections.
player.list console command now shows player connected durations.
Player connect time is now stored in PlayerID.
added mute console command to mute a player for X minutes with a reason
added unmute command.
console no longer echo's command name when running.
fixed potential NRE in mute cmd for invalid player ID
server now uses cached cmds for each cmd it receives from a client, not a new instance.
added a command cache dictionary to Cmd.
menu player panel now shows correct player level on sever connect
Fixed bug with crowd spawning each match and nevr getting destroyed, causing each game you play to stack another crowd on top of the existing ones.
boot / networkmanager prefab and scene refactor
temp igniter attack sound
Finally found and fixed the random sound effect that plays at the start of matches and career creator.
cmd verification base work
move and attack commands now return false if they invalid actions
server now sets the cmd player ID on receive from client, based on their connection ID to prevent match player ID spoofing.
added GameInsance.GetPlayerIDFromConnection()
server verifies clients can only surrender themselves with CmdSurrender
server ends player's turn if they send an invald/cheat/unverifable game cmd, but only if it's their turn (so they can't send an invalid cmd to end opponent's turn)
CmdAttack and CmdMove verification now checks the units belong to the player sending the command
fixed longstanding AI NRE in certain situations
more instance/local game client reworking
more input work, wip software cursor/control
software cursor now has image states like hardware cursor.
setup new image defs.
more.