6,819 Commits over 2,586 Days - 0.11cph!
more input work, wip software cursor/control
more instance/local game client reworking
fixed longstanding AI NRE in certain situations
CmdAttack and CmdMove verification now checks the units belong to the player sending the command
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)
server verifies clients can only surrender themselves with CmdSurrender
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()
move and attack commands now return false if they invalid actions
cmd verification base work
Finally found and fixed the random sound effect that plays at the start of matches and career creator.
temp igniter attack sound
boot / networkmanager prefab and scene refactor
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.
menu player panel now shows correct player level on sever connect
server now uses cached cmds for each cmd it receives from a client, not a new instance.
added a command cache dictionary to Cmd.
added unmute command.
console no longer echo's command name when running.
fixed potential NRE in mute cmd for invalid player ID
added mute console command to mute a player for X minutes with a reason
player.list console command now shows player connected durations.
Player connect time is now stored in PlayerID.
added unban console command.
server console now displays current player count on player disconnections.
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.
Kick (with reason) server console command.
ConsoleCommand now verifies argument types.
server console commands: help, game.list, matchmaking.list, playerdatabase.stats, player.list, playerdatabase.resetelo, shutdown, stats
super simple console command system, reflection and attribute tags build a dictionary of commands
added auto mute for 20 seconds for chat spamming
can now send server messages to individual clients.
added mute server message.
PlayerDatabase now saves again ;)
renamed PlayerDatabase functions
fixed a NET_Receive crash caused by raknet ptr becoming null in read while loop after getting kicked
fix attempt for server not cleaning up lost connection clients
merged networking refactor to main so we can spot any bugs sooner than later
refactored the rest of client messages out to handlers
ClientMsgHandler
ClientConnectionIDHandler
JoinedMatchmakingHandler
ReceivedMMFDeclinedHandler
ReceivedMMFRequestHandler
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
refactored message handler stuff so there's only ever one client ID lookup done not one per message handler
RequestMMFHandler
RequestCancelMMFHandler
AcceptMMFHandler
DeclineMMFHandler
ChatHandler
GameCmdHandler
RequestJoinMatchmakingHandler
RequestCancelMatchmakingHandler
RequestLeaderboardHandler
made protocol verification work again.
more general tidy up in Server/ServerConnection
ClithAuthHandler.
PlayerID.SetSteamInfo().
Protocol.ReadAndVerify().