/// <summary> /// Parses data when Discord sends a message. /// </summary> private void Socket_OnDataReceived(object sender, MessageEventArgs e) { var json = e.Data; if (json == null) { return; } if (json.Length <= 1) { return; } if (debug) { Console.WriteLine("\n" + json + "\n"); } if (!DiscordMessageFactory.TryParseDispatchMessage(json, out var msg)) { return; } LastSequenceNumber = msg.SequenceNumber; var chatmsg = msg.GetChatMessageData(); if (chatmsg != null && Channel_IDs.Contains(chatmsg.ChannelId)) { if (!chatmsg.Author.IsBot) { string msgout = chatmsg.Message; // Lazy add commands until I take time to design a command service properly //if (ExecuteCommand(chatmsg)) // return; msgout = chatParser.ConvertUserIdsToNames(msgout, chatmsg.UsersMentioned); msgout = chatParser.ShortenEmojisToName(msgout); msgout = $"<{chatmsg.Author.Username}> {msgout}"; NetHelpers.BroadcastChatMessageWithoutTCRFormattable( ("[c/7489d8:Discord] - " + msgout), -1); if (Channel_IDs.Count > 1) { messageQueue.QueueMessage( Channel_IDs.Where(x => x != chatmsg.ChannelId), $"**[Discord]** <{chatmsg.Author.Username}> {chatmsg.Message}"); } Console.ForegroundColor = ConsoleColor.Blue; Console.Write("[Discord] "); Console.ResetColor(); Console.Write(msgout); Console.WriteLine(); } } }