public override void OnCommand(BotShell sender, CommandArgs e) { int min = 1; long verifynum; int result, max; string verifytext; switch (e.Command) { case "roll": if (e.Args.Length == 1) { try { min = 1; max = Convert.ToInt32(e.Args[0]); } catch { max = -1; min = -1; } } else { try { min = Convert.ToInt32(e.Args[0]); max = Convert.ToInt32(e.Args[1]); } catch { min = -1; max = -1; } } if (min <= -1 && max <= -1) { Bot.SendReply(e, "Roll »» Syntax is: roll [min] [max] or basic roll [max]."); } else if (max <= min) { Bot.SendReply(e, "Roll »» Syntax error: [max] has to be higher than [min]."); } else { result = (RandomNumber(min, max)); verifynum = InsertRoll(e.Sender, 0, min, max, result); if (verifynum == -1) verifytext = "You can't verify, couldn't save it in my memory."; else verifytext = " To verify do /tell " + Bot.Character + " verify " + verifynum; Bot.SendReply(e, "Roll »» When I rolled between " + HTML.CreateColorString(sender.ColorHeaderHex, min.ToString()) + " and " + HTML.CreateColorString(sender.ColorHeaderHex, max.ToString()) + ", I rolled " + HTML.CreateColorString(sender.ColorHeaderHex, result.ToString()) + "." + verifytext); } break; case "flip": min = 1; max = 2; result = RandomNumber(min, max); string landingname; if (result == 1) landingname = "Tail"; else landingname = "Head"; verifynum = InsertRoll(e.Sender, 1, min, max, result); if (verifynum == -1) verifytext = " You can't verify, I couldn't save it in my memory."; else verifytext = " To verify do /tell " + Bot.Character + " verify " + verifynum; Bot.SendReply(e, "Flip »» When I flipped the coin it landed with " + HTML.CreateColorString(sender.ColorHeaderHex, landingname + "s up") + "." + verifytext); break; case "verify": if (e.Args.Length == 1) { try { string rhname; int rhid; try { rhid = Convert.ToInt32(e.Args[0]); rhname = ""; } catch { rhid = -1; rhname = e.Args[0]; } using (DbCommand command = Bot.Config.Connection.CreateCommand()) { bool empty = true; if (rhid > 0 || rhname != "") { if (rhid > 0) { command.CommandText = "SELECT [rh_date], [rh_name], [rh_min], [rh_max], [rh_result], [rh_type] FROM [RollHistory] WHERE [rh_id] = " + rhid + " LIMIT 1"; DbDataReader reader = command.ExecuteReader(); while (reader.Read()) { empty = false; if (reader.GetInt64(5) == 0) Bot.SendReply(e, "Verify »» " + Bot.UppercaseFirst(reader.GetString(1)) + " asked me to roll between " + HTML.CreateColorString(sender.ColorHeaderHex, reader.GetInt32(2).ToString()) + " and " + HTML.CreateColorString(sender.ColorHeaderHex, reader.GetInt32(3).ToString()) + " at " + TimeStamp.ToDateTime(reader.GetInt64(0)).ToUniversalTime() + ". I replied that I rolled " + HTML.CreateColorString(sender.ColorHeaderHex, reader.GetInt32(4).ToString()) + "."); else { if (reader.GetInt64(4) == 1) landingname = "Tail"; else landingname = "Head"; Bot.SendReply(e, "Verify »» " + Bot.UppercaseFirst(reader.GetString(1)) + " asked me to flip a coin at " + TimeStamp.ToDateTime(reader.GetInt64(0)).ToUniversalTime() + ". I replied that it landed with " + HTML.CreateColorString(sender.ColorHeaderHex, landingname + "s up") + "."); } } reader.Close(); } else if (rhname != "") { command.CommandText = "SELECT [rh_date], [rh_name], [rh_min], [rh_max], [rh_result], [rh_type] FROM [RollHistory] WHERE [rh_name] LIKE '" + Config.EscapeString(rhname) + "'"; DbDataReader reader = command.ExecuteReader(); while (reader.Read()) { empty = false; RichTextWindow replyWindow = new RichTextWindow(this.Bot); replyWindow.AppendTitle("Verify"); replyWindow.AppendNormal(" "); //TimeStamp.ToDateTime(reader.GetInt64(2)).ToUniversalTime() // " + HTML.CreateColorString(sender.ColorHeaderHex, reader.GetInt64(4)) + " //replyWindow.AppendHighlight(+", By: " + reader.GetString(1)); replyWindow.AppendLineBreak(); replyWindow.AppendNormal(reader.GetString(3)); Bot.SendReply(e, replyWindow.ToString("click here")); } reader.Close(); } } if (rhname == "" && rhid < 1) Bot.SendReply(e, "Verify »» Syntax error: [id] got to be positive."); else if (empty == true) Bot.SendReply(e, "Verify »» This person/id does not exist in my memory."); } } catch (Exception ex) { Bot.SendReply(e, "Verify »» " + ex.StackTrace); } } else { Bot.SendReply(e, "Verify »» Syntax is: verify [id] or verify [name] for a list."); } break; } }