private static void AddMessageToRecent(BroadcastMessage message, byte channelID) { var messages = _recentMessages.First(x => x.Key == channelID).Value; if (messages.Count == 10) messages.RemoveAt(0); messages.Add(message); }
private static void HandleClientMessagePacket(Client client, ClientMessage packet) { client.Value.AddPoints(5); //AWARD 5 POINTS FOR ACTIVITY*** BroadcastMessage message = new BroadcastMessage(packet.Message, client.Value.Username, client.Value.ID); foreach (Client c in _server.Clients) { if (c != client && c.Value.Channel == client.Value.Channel) { message.Execute(c); } } AddMessageToRecent(message, client.Value.Channel); }
internal void HandleBroadcastMessage(BroadcastMessage message) { if (InvokeRequired) { Invoke(new MethodInvoker(() => HandleBroadcastMessage(message))); return; } UserInfo user = Users.Find(x => x.Name.ToLower() == message.Username.ToLower()); Color nameColor; Color textColor = user.Name.ToLower() == Username.ToLower() ? Color.DimGray : Color.Black; if (user == null) nameColor = Color.Blue; else if (user.Name.ToLower() == Username.ToLower()) nameColor = Color.ForestGreen; else nameColor = GetRankColor(user.Rank); AppendChat(nameColor, textColor, message.Username, message.Text, message.Time.ToLocalTime()); if (Options.ChatNotifications && !IsForegroundWindow) { NativeMethods.FlashWindow(this.Handle, true); notifyIcon.ShowBalloonTip(100, user.Name, message.Text, ToolTipIcon.Info); if (Options.AudioNotification) AudioPlayer.Play(); } }