All pastes #43282 Raw Edit

Stuff

public text v1 · immutable
#43282 ·published 2006-02-27 00:22 UTC
rendered paste body
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;
            }
        }