public void ProcessMessage(Message msg, ref Room rm) { var up = msg.Content.Remove(0, 1); ulong upInt = 0; if (!ulong.TryParse(up, out upInt) || upInt == 0) { rm.PostReplyLight(msg, string.Format(errorPhrases.PickRandom(), msg.Author.Name)); return; } var nBytes = new byte[8]; Extensions.RNG.GetBytes(nBytes); var n = (BitConverter.ToUInt64(nBytes, 0) % upInt) + 1; if (n % 25 == 0) { rm.PostReplyLight(msg, "http://imgs.xkcd.com/comics/random_number.png"); return; } if (upInt == 100) { rm.PostReplyLight(msg, n == 1 ? "**CRITICAL SUCCESS**" : n == 100 ? "**CRITICAL FAILURE**" : n.ToString()); } else { rm.PostReplyLight(msg, n); } }
public void ProcessMessage(Message msg, ref Room rm) { if (!quotaReached || (quotaReached && (DateTime.UtcNow - lastTry).TotalHours > 1)) { var message = GetMessageNewMethod(msg); rm.PostReplyLight(msg, message); } }
public void ProcessMessage(Message msg, ref Room rm) { var users = rm.CurrentUsers; var userX = users.PickRandom().Name; var userY = users.PickRandom().Name; while (userX == userY) { userY = users.PickRandom().Name; } if (userX == rm.Me.Name) { userX = "me"; } if (userY == rm.Me.Name) { userY = "me"; } var message = string.Format(phrases.PickRandom(), userX, userY); rm.PostReplyLight(msg, message); }
public void ProcessMessage(Message msg, ref Room rm) => rm.PostReplyLight(msg, pics.PickRandom());
private void PrintCommandListReply(Message m, Room r) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < router.Commands.Count; i++) { sb.AppendFormat("{0}. ({1}) {2}\n", i + 1, router.CommandStates[router.Commands[i]] ? "Enabled" : "Disabled", router.Commands[i].Usage); } r.PostReplyLight(m, sb.ToString()); }
public void ProcessMessage(Message msg, ref Room rm) { string response = ""; string[] commandParts = msg.Content.ToLowerInvariant().Replace("comic", "").Trim().Split(' '); if (commandParts.Length == 0) { string selectedComic = knownComics.Values.PickRandom(); response = GetComic(selectedComic); } else if (commandParts[0].ToLowerInvariant().Trim() == "add") { if (commandParts.Length < 3) { response = "Not enough args"; } else { knownComics.Add(commandParts[1].Trim(), commandParts[2].Trim()); response = "Ok."; } } else if (commandParts[0].ToLowerInvariant().Trim() == "remove") { if (commandParts.Length < 2) { response = "Not enough args"; } else if (!knownComics.ContainsKey(commandParts[1].Trim())) { response = "Not found."; } else { knownComics.Remove(commandParts[1].Trim()); response = "Done."; } } else if (commandParts[0].ToLowerInvariant().Trim() == "list") { response = string.Join(", ", knownComics.Keys); } else { if (!knownComics.ContainsKey(commandParts[0])) { response = "Unknown comic"; } else { response = GetComic(knownComics[commandParts[0]]); if (response == null) { response = "Comic was unsupported, and has been terminated as such."; knownComics.Remove(commandParts[0]); } } } rm.PostReplyLight(msg, response); }
public void ProcessMessage(Message msg, ref Room rm) { if ((DateTime.UtcNow - lastFetch).TotalHours > 1) { var html = new WebClient().DownloadString("http://xkcd.com/"); var strId = latestComicIdParser.Match(html).Value; if (!int.TryParse(strId, out latestComicId)) { latestComicId = 1599; } lastFetch = DateTime.UtcNow; } int comicNumber = Extensions.PickRandom(Enumerable.Range(1, latestComicId)); if (commandParser.IsMatch(msg.Content)) { try { comicNumber = int.Parse(commandParser.Match(msg.Content).Value); } catch { /* Laziest way to do this ever. Why validate parameters when you can just do it. */ } } rm.PostReplyLight(msg, string.Format("http://www.xkcd.com/{0}/", comicNumber)); }