protected override void OnClientRead(object sender, PacketArgs args) { var client = args.Client; if (client == null) return; if (!ClientTable.Contains(client)) // Don't waste our time reading from clients that aren't tracked in the client table client.OnReadPacket -= OnClientRead; else _readQueue.Enqueue(args); }
private void OnClientRead(object sender, PacketArgs args) { var client = args.Client; if (client == null) return; var packet = args.Packet; if (packet == null) return; if(packet is RequestAuthPacket) Client.WritePacket(new AuthenticateUserPacket{Username = _username}); else if (packet is GameStatePacket) UpdateGameState(packet as GameStatePacket); else if (packet is ServerDisconnectPacket) ScreenManager.CloseScreen(this); }
/// <summary> /// Called when a client receives a new packet /// </summary> /// <param name="sender"> </param> /// <param name="args"> </param> protected abstract void OnClientRead(object sender, PacketArgs args);