//public async Task SendMessage(String message) //{ // TODO add asynchronous message sending //} public async Task MessageReceived(SocketMessage msg) { var author = msg.Author.Username; var text = msg.Content; if (author != Client.CurrentUser.Username) // Don't process our own messages { if (TaggedIn(msg, Client.CurrentUser.Username)) { if (text.Contains(" say ")) { var response = text.Substring(text.IndexOf("say") + 4); await msg.Channel.SendMessageAsync(response); } else if (text.Contains(" markov ")) { var ss = text.Substring(text.IndexOf("markov") + 7); if (Int32.TryParse(ss, out int i)) { var response = Generator.Generate(i); await msg.Channel.SendMessageAsync(response); } } else if (text.Contains(" nick ")) { var ss = text.Substring(text.IndexOf("nick") + 5); // We'll need a check to make sure no one else was tagged foreach (var usr in msg.MentionedUsers) { await(usr as IGuildUser).ModifyAsync(x => x.Nickname = ss); } } else { var line = Lines.VoiceLines.RandomElement <string>(); var response = line.Replace("[player]", msg.Author.Mention); await msg.Channel.SendMessageAsync(response); } } else if (text.StartsWith("delete")) { var character = text.Substring(7); var response = character + ".chr deleted"; await msg.Channel.SendMessageAsync(response); } else if (msg.Channel.Name.StartsWith("markov-")) { Generator.AddToChain(text); // Record the message } } }
public void ParseCommand(string cmd) { if (cmd.StartsWith("markov")) { var rest = cmd.Substring(7); if (Int32.TryParse(rest, out int length)) { Console.WriteLine(Generator.Generate(length)); } else { Console.WriteLine("Error: Invalid length"); Console.WriteLine("Resol: Ignoring invalid markov request"); Console.WriteLine(Environment.NewLine); } } else if (cmd.StartsWith("avatar")) { var rest = cmd.Substring(7); if (File.Exists(rest)) { Manager.Emotion = rest; Manager.UpdateAvatar().GetAwaiter().GetResult(); Console.WriteLine("Avatar Updated: " + rest); } else { Console.WriteLine("Error: Avatar file does not exist"); Console.WriteLine("Resol: Ignoring invalid avatar update request"); Console.WriteLine(Environment.NewLine); } } else if (cmd.StartsWith("cleanse")) { // Honestly I'm not sure what you want to do with cleanse Console.WriteLine("_Warn: CLEANSE Request not yet implemented"); Console.WriteLine("Resol: Ignoring invalid request"); Console.WriteLine(Environment.NewLine); } else if (cmd.StartsWith("load")) { var rest = cmd.Substring(5); if (File.Exists(rest)) { var jsonfrom = File.ReadAllText(rest); var from = JsonConvert.DeserializeObject <Dictionary <string, Link> >(jsonfrom); Generator.AddToChain(from); } else { Console.WriteLine("Error: Target file does not exist"); Console.WriteLine("Resol: Ignoring invalid load request"); Console.WriteLine(Environment.NewLine); } } else { Console.WriteLine("Error: Unknown request"); Console.WriteLine("Resol: Ignoring unknown request"); Console.WriteLine(Environment.NewLine); } }