public void Update(GameTime gameTime) { GameInstance.Tick(gameTime); TickGameStartCountdown(gameTime); Timers.Update(gameTime); ProcessMessages(); //Send all the wideband messages (if someone is listening) if (Connections.ActiveConnections.Count > 0) { if (MessageProcessor.MessageQueue.Count > 0) { var msg = NetworkServer.CreateMessage(); MessageProcessor.WriteMessages(msg); NetworkServer.SendMessage(msg, Connections.ActiveConnections, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, Channels.GameplayData); } //As well as narrowband ones foreach (var plr in Players) { if (MessageProcessor.HasPrivateMessages(plr) && plr.Connection != null && plr.Connection.Status == Lidgren.Network.NetConnectionStatus.Connected) { var msg = NetworkServer.CreateMessage(); MessageProcessor.WritePrivateMessages(plr, msg); plr.Connection.SendMessage(msg, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, Channels.GameplayData); } } } //Just clear the queue since no one is listening MessageProcessor.ClearQueue(); MessageProcessor.ClearPrivateQueues(); FlushMessages(); }