public static string GetReactionImage(string description) { string url = ""; var adaptor = new ReactionImagesTableAdapter(); var reactionImages = adaptor.GetData(); List<TonyDBDataSet.ReactionImagesRow> images; if (!string.IsNullOrEmpty(description)) { images = reactionImages.Where(i => i.Description.ToLower().Contains(description)).ToList(); } else { images = reactionImages.ToList(); } if (images.Count > 0) { url = images.GetRandom().ImageUrl; } return url; }
private static async void HandleMessage(DiscordClient client) { client.MessageReceived += async (s, e) => { var recievedMessage = e.Message.Text; if (!(e.Message.User.Name.ToLower().Equals("milliabot") || e.Message.User.Name.ToLower().Equals("robo-millia"))) { // Handle the recieved message if (recievedMessage.ToLower().Equals("!help") || recievedMessage.ToLower().Equals("help")) { await e.Channel.SendMessage( "Sample commands: !nobully !idk !reaction !addreaction !hitbox !addhitbox"); } else if (recievedMessage.ToLower().Equals("nyan")) await e.Channel.SendMessage("nyan~☆"); else if (recievedMessage.ToLower().Equals("!nobully")) await e.Channel.SendMessage( "http://36.media.tumblr.com/b9a0de59acdde512065cd345f6b14593/tumblr_nmvjvaqlq31r66h7yo1_500.jpg"); else if (recievedMessage.ToLower().Equals("!bully")) await e.Channel.SendMessage( "https://data.desustorage.org/a/image/1436/16/1436163143100.jpg"); else if (recievedMessage.ToLower().Equals("!herewego")) await e.Channel.SendMessage( "http://suptg.thisisnotatrueending.com/archive/32329424/images/1400964390429.jpg"); else if (recievedMessage.ToLower().Equals("!everyday")) await e.Channel.SendMessage( "http://40.media.tumblr.com/5fef7876e1bfe7c744a7c5d8969ea5ba/tumblr_moly86fGRT1swsp86o2_r1_500.jpg"); else if (recievedMessage.ToLower().Equals("!idk")) await e.Channel.SendMessage( "http://s.quickmeme.com/img/45/45cb7c3f84254c6aea385e88ab44149887e56bbb86ba7f7ad62ace9a91a521ef.jpg"); else if (recievedMessage.ToLower().Equals("!autism")) await e.Channel.SendMessage( "http://i.imgur.com/bv3ruu8.jpg"); else if (recievedMessage.ToLower().Equals("!awoo")) await e.Channel.SendMessage( "http://i.imgur.com/oPVnqGU.png"); else if ((recievedMessage.ToLower().Contains("milliabot") || recievedMessage.Replace("-", "").ToLower().Contains("robomillia")) && recievedMessage.EndsWith("?")) await e.Channel.SendMessage( MilliaUtils.GetEightBallResponse()); else if (recievedMessage.ToLower().Contains("!reaction")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count == 1) { await e.Channel.SendMessage("Format is !reaction description(optional)"); } if (commandList.Count > 1) { var description = commandList.Skip(1).Aggregate((i, j) => i + " " + j).ToLower(); var url = ReactionUtils.GetReactionImage(description); if (string.IsNullOrEmpty(url)) url = "No images found"; await e.Channel.SendMessage( url); } else { var url = ReactionUtils.GetReactionImage(null); if (string.IsNullOrEmpty(url)) url = "No images found"; await e.Channel.SendMessage( url); } } else if (recievedMessage.ToLower().Contains("!addreaction")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count > 1) { var adaptor = new ReactionImagesTableAdapter(); if (commandList.Count > 2) { var description = commandList.Skip(2).Aggregate((i, j) => i + " " + j); adaptor.Insert(commandList[1], description); } else adaptor.Insert(commandList[1], null); } else { await e.Channel.SendMessage("Format is !addreaction url description"); } } else if (recievedMessage.ToLower().Contains("!hitbox")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count > 2) { var moveName = commandList.Skip(2).Aggregate((i, j) => i + " " + j).ToLower(); var url = MilliaUtils.GetHitboxImageUrl(commandList[1].ToLower(), moveName); await e.Channel.SendMessage( url); } else { await e.Channel.SendMessage("Format is !hitbox charactername movename"); } } else if (recievedMessage.ToLower().Contains("!addhitbox")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count > 3) { var moveName = commandList.Skip(3).Aggregate((i, j) => i + " " + j).ToLower(); var result = MilliaUtils.AddHitboxImage(commandList[1], commandList[2].ToLower(), moveName.ToLower()); await e.Channel.SendMessage(result); } else { await e.Channel.SendMessage("Format is !addhitbox url (character name) (move name)"); } } else if (recievedMessage.ToLower().Contains("!addcharacter")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count > 1) { var charName = commandList.Skip(1).Aggregate((i, j) => i + " " + j); var characterAdaptor = new CharactersTableAdapter(); var existingCharacter = characterAdaptor.GetData().FirstOrDefault(c => c.Name.ToLower().Equals(charName)); if (existingCharacter == null) { characterAdaptor.Insert(charName, ""); if (characterAdaptor.GetData().FirstOrDefault(c => c.Name.Equals(charName)) != null) { await e.Channel.SendMessage(charName + " added"); } else { await e.Channel.SendMessage("Failed to add character"); } } else { await e.Channel.SendMessage(charName + " already exists"); } } else { await e.Channel.SendMessage("Format is !addcharacter (character name)"); } } else if (recievedMessage.ToLower().Contains("!playsong")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count > 1) { var songName = commandList.Skip(1).Aggregate((i, j) => i + " " + j); string file = "../assets/" + songName + ".mp3"; var voiceChannel = OttawaAnimeCrewServer.VoiceChannels.FirstOrDefault(v => v.Name.Equals("Jam Session")); var VoiceClient = await voiceChannel.JoinAudio(); await MusicService.PlayMusic(VoiceClient, file); } else { await e.Channel.SendMessage("Format is !playsong (songname)"); } } else if (recievedMessage.ToLower().Contains("!addsong")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count > 1) { var youtubeUrl = commandList.Skip(1).Aggregate((i, j) => i + " " + j); var channelName = "Koromo's Room"; var koromos_room = "twitch_chat"; // Change for servers var voiceClient = await VoiceChannel.JoinAudio(); if (!IsPlayingMusic) { IsPlayingMusic = true; Playlist.Add(youtubeUrl); await MusicService.ExecutePlaylist(voiceClient, Playlist, MusicChatChannel); IsPlayingMusic = false; } else { Playlist.Add(youtubeUrl); await e.Channel.SendMessage("added to playlist"); } } else { await e.Channel.SendMessage("Format is !downloadsong (Youtube URL)"); } } else if (recievedMessage.ToLower().Equals("!skip")) { IsSkipSong = true; await e.Channel.SendMessage("Song skipped"); } else if (recievedMessage.ToLower().Contains("!matchvideo")) { var commandList = recievedMessage.ToLower().Split(' ').ToList(); if (commandList.Count > 1) { string char1 = commandList[1]; string char2 = ""; if (commandList.Count > 2) char2 = commandList[2]; var link = WebServices.GetMatchVideo(char1, char2); await e.Channel.SendMessage(link); } else { await e.Channel.SendMessage("Format is !matchvideo (char1) (char2)"); } } else if (recievedMessage.ToLower().StartsWith("!unbansonify")) { var commandList = recievedMessage.ToLower().Split(' ').ToList(); if (commandList.Count > 1) { var inputLine = commandList.Skip(1).Aggregate((i, j) => i + " " + j); var correctedSentence = MilliaUtils.GetAutoCorrectedSentence(inputLine); await e.Channel.SendMessage(correctedSentence); } } else if (recievedMessage.ToLower().StartsWith("!add")) { var commandList = recievedMessage.Split(' ').ToList(); if (commandList.Count > 1) { var command = commandList[0].Replace("!add", ""); var adaptor = new CommandsTableAdapter(); var link = commandList.Skip(1).Aggregate((i, j) => i + " " + j); adaptor.Insert(command, link); } else { await e.Channel.SendMessage("Format is !add (URL)"); } } // Must be last else if (recievedMessage.StartsWith("!")) { var commandList = recievedMessage.Split(' ').ToList(); var value = MilliaUtils.GetCommandLink(commandList[0].Replace("!", "")); if (!String.IsNullOrEmpty(value)) await e.Channel.SendMessage(value); } } client.GetChannel(1); }; }