public override void OnMessage(int msgId, Unpacker unpacker, int clientId) { if (!GameMsgUnpacker.Unpack(msgId, unpacker, out var msg, out var error)) { Console.Print(OutputLevel.DEBUG, "server", $"dropped gamemessage='{(GameMessages) msgId}' ({msgId}), failed on '{error}'"); return; } var player = Players[clientId]; if (!Server.ClientInGame(clientId)) { if (msg.MsgId == GameMessages.CL_STARTINFO) { OnMsgStartInfo(player, (GameMsg_ClStartInfo)msg); } } else { switch (msg.MsgId) { case GameMessages.CL_SAY: OnMsgSay(player, (GameMsg_ClSay)msg); break; case GameMessages.CL_SETTEAM: OnMsgSetTeam(player, (GameMsg_ClSetTeam)msg); break; case GameMessages.CL_SETSPECTATORMODE: OnMsgSetSpectatorMode(player, (GameMsg_ClSetSpectatorMode)msg); break; case GameMessages.CL_CHANGEINFO: break; case GameMessages.CL_KILL: break; case GameMessages.CL_EMOTICON: break; case GameMessages.CL_VOTE: break; case GameMessages.CL_CALLVOTE: break; case GameMessages.CL_ISDDNET: OnMsgIsDDNet(unpacker, player, (GameMsg_ClIsDDNet)msg); break; } } }
public override void OnMessage(GameMessage msg, UnPacker unPacker, int clientId) { if (!GameMsgUnpacker.UnpackMessage(msg, unPacker, out var message, out string failedOn)) { Console.Print(OutputLevel.Debug, "server", $"dropped message={msg} failed on={failedOn}"); return; } var player = Players[clientId]; if (Server.ClientInGame(clientId)) { switch (msg) { case GameMessage.ClientSay: OnMsgClientSay(player, (GameMsg_ClSay)message); break; case GameMessage.ClientSetTeam: OnMsgClientSetTeam(player, (GameMsg_ClSetTeam)message); break; case GameMessage.ClientSetSpectatorMode: OnMsgClientSetSpectatorMode(player, (GameMsg_ClSetSpectatorMode)message); break; case GameMessage.ClientKill: OnMsgClientKill(player, (GameMsg_ClKill)message); break; case GameMessage.ClientReadyChange: OnMsgClientReadyChange(player, (GameMsg_ClReadyChange)message); break; case GameMessage.ClientEmoticon: OnMsgClientEmoticon(player, (GameMsg_ClEmoticon)message); break; case GameMessage.ClientVote: OnMsgClientVote(player, (GameMsg_ClVote)message); break; case GameMessage.ClientCallVote: OnMsgClientCallVote(player, (GameMsg_ClCallVote)message); break; } } else if (msg == GameMessage.ClientStartInfo) { OnMsgClientStartInfo(player, (GameMsg_ClStartInfo)message); } }