Example #1
0
        private string ColorizeState(ShadowbreedState state)
        {
            switch (state)
            {
            case ShadowbreedState.Up:
                return(HTML.CreateColorString(RichTextWindow.ColorGreen, state.ToString()));

            case ShadowbreedState.Unknown:
                return(HTML.CreateColorString(RichTextWindow.ColorOrange, state.ToString()));

            default:
                return(HTML.CreateColorString(RichTextWindow.ColorRed, state.ToString()));
            }
        }
Example #2
0
        public override void OnCommand(BotShell bot, CommandArgs e)
        {
            switch (e.Command)
            {
            case "callers":
                this.OnCallersCommand(bot, e);
                break;

            case "callers add":
                if (e.Args.Length < 1)
                {
                    bot.SendReply(e, "Correct Usage: callers add [username]");
                    break;
                }
                if (bot.GetUserID(e.Args[0]) < 1)
                {
                    bot.SendReply(e, "No such user: "******"That user is already on the callers list");
                        break;
                    }
                    this.Callers.Add(e.Args[0].ToLower());
                }
                bot.SendReply(e, "Added " + HTML.CreateColorString(bot.ColorHeaderHex, e.Args[0]) + " to the callers list");
                this.OnCallersCommand(bot, e);
                break;

            case "callers remove":
                if (e.Args.Length < 1)
                {
                    bot.SendReply(e, "Correct Usage: callers remove [username]");
                    break;
                }
                if (e.Args[0].ToLower() == "all")
                {
                    this.Callers.Clear();
                    bot.SendReply(e, "Clearing the callers list");
                    break;
                }
                lock (this.Callers)
                {
                    if (!this.Callers.Contains(e.Args[0].ToLower()))
                    {
                        bot.SendReply(e, "That user is not on the callers list");
                        break;
                    }
                    this.Callers.Remove(e.Args[0].ToLower());
                }
                bot.SendReply(e, "Removed " + HTML.CreateColorString(bot.ColorHeaderHex, e.Args[0]) + " from the callers list");
                break;

            case "assist":
                if (e.Args.Length < 1)
                {
                    bot.SendReply(e, "Correct Usage: assist [username]");
                    break;
                }
                if (bot.GetUserID(e.Args[0]) < 1)
                {
                    bot.SendReply(e, "No such user: "******"Assist " + assist);
                assistWindow.AppendHighlight("Create Macro: ");
                assistWindow.AppendCommand("Click", "/macro " + assist + " /assist " + assist);
                assistWindow.AppendLineBreak();
                assistWindow.AppendHighlight("Assist: ");
                assistWindow.AppendCommand("Click", "/assist " + assist);
                assistWindow.AppendLineBreak();
                assistWindow.AppendHighlight("Manual Macro: ");
                assistWindow.AppendNormal("/macro assist /assist " + assist);
                assistWindow.AppendLineBreak();
                bot.SendReply(e, "Assist " + assist + " »» " + assistWindow.ToString());
                break;

            case "target":
                if (e.Words.Length < 1)
                {
                    bot.SendReply(e, "Correct Usage: target [target]");
                    break;
                }
                string target = string.Format("{0}::: {1}Assist {3} to Terminate {0}::: {2}{4}", bot.ColorHighlight, HTML.CreateColorStart(RichTextWindow.ColorRed), bot.ColorNormal, e.Sender, e.Words[0]);
                if (e.Type == CommandType.Organization)
                {
                    this.SendMessage(bot, "gc", target);
                }
                else
                {
                    this.SendMessage(bot, "pg", target);
                }
                break;

            case "command":
                if (e.Words.Length < 1)
                {
                    bot.SendReply(e, "Correct Usage: command [command]");
                    break;
                }
                string command = string.Format("{0}::: {1}Raid Command from {3} {0}:::\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n    {2}{4}{0}\n______________________________________________", bot.ColorHighlight, HTML.CreateColorStart(RichTextWindow.ColorOrange), bot.ColorNormal, e.Sender, e.Words[0]);
                if (e.Type == CommandType.Organization)
                {
                    this.SendMessage(bot, "gc", command);
                }
                else
                {
                    this.SendMessage(bot, "pg", command);
                }
                break;

            case "order":
                if (e.Words.Length < 1)
                {
                    bot.SendReply(e, "Correct Usage: order [order]");
                    break;
                }
                string order = string.Format("{0}::: {1}Raid Order from {3} {0}::: {2}{4}", bot.ColorHighlight, HTML.CreateColorStart(RichTextWindow.ColorOrange), bot.ColorNormal, e.Sender, e.Words[0]);
                if (e.Type == CommandType.Organization)
                {
                    this.SendMessage(bot, "gc", order);
                }
                else
                {
                    this.SendMessage(bot, "pg", order);
                }
                break;

            case "cd":
                string channel = "pg";
                if (e.Type == CommandType.Organization)
                {
                    channel = "gc";
                }

                if (e.Args.Length > 0)
                {
                    if (e.Args[0].ToLower() == "abort")
                    {
                        if (this.Counting)
                        {
                            this.Abort = true;
                            return;
                        }
                        bot.SendReply(e, "No countdown in progress");
                        return;
                    }
                }
                if (this.Counting)
                {
                    bot.SendReply(e, "Countdown already in progress");
                    return;
                }
                this.Counting = true;
                this.Abort    = false;
                string onThree = string.Empty;
                if (e.Words.Length > 0)
                {
                    onThree = e.Words[0];
                }

                for (int i = 5; i >= 0; i--)
                {
                    if (this.Abort == true)
                    {
                        this.SendMessage(bot, channel, bot.ColorHighlight + "Countdown aborted!");
                        break;
                    }
                    if (i == 0)
                    {
                        this.SendMessage(bot, channel, bot.ColorHighlight + "-- " + HTML.CreateColorString(bot.ColorHeaderHex, "GO") + " --");
                        break;
                    }
                    this.SendMessage(bot, channel, bot.ColorHighlight + "--- " + HTML.CreateColorString(bot.ColorHeaderHex, i.ToString()) + " ---");
                    if (i == 3 && onThree != string.Empty)
                    {
                        this.SendMessage(bot, channel, bot.ColorHighlight + "-- " + HTML.CreateColorString(bot.ColorHeaderHex, onThree));
                    }
                    Thread.Sleep(1000);
                }
                this.Counting = false;
                break;

            case "sb":
                this.OnSbCommand(bot, e);
                break;

            case "sb set":
                if (e.Args.Length < 2)
                {
                    bot.SendReply(e, "Correct Usage: sb adminset [username] [state]");
                    break;
                }
                lock (this.Shadowbreeds)
                {
                    if (!this.Shadowbreeds.ContainsKey(e.Args[0].ToLower()))
                    {
                        bot.SendReply(e, HTML.CreateColorString(bot.ColorHeaderHex, e.Args[0]) + " is not on the Shadowbreed list");
                        break;
                    }
                }
                ShadowbreedState state = ShadowbreedState.Unknown;
                try
                {
                    state = (ShadowbreedState)Enum.Parse(typeof(ShadowbreedState), Format.UppercaseFirst(e.Args[1]));
                }
                catch
                {
                    bot.SendReply(e, HTML.CreateColorString(bot.ColorHeaderHex, e.Args[1]) + " is not a valid state.");
                    break;
                }
                lock (this.Shadowbreeds)
                    this.Shadowbreeds[e.Args[0].ToLower()] = state;
                bot.SendReply(e, "Shadowbreed state for " + HTML.CreateColorString(bot.ColorHeaderHex, e.Args[0]) + " has been set to " + this.ColorizeState(state));
                break;

            case "sb reset":
                lock (this.Shadowbreeds)
                {
                    this.Shadowbreeds.Clear();
                    bot.SendReply(e, "The Shadowbreed list has been reseted");
                }
                this.OnSbCommand(bot, e);
                break;

            case "sb get":
                List <string> list = new List <string>();
                lock (this.Shadowbreeds)
                {
                    if (this.Shadowbreeds.Count < 1)
                    {
                        bot.SendReply(e, "The Shadowbreeds list is empty");
                        return;
                    }

                    foreach (KeyValuePair <string, ShadowbreedState> kvp in this.Shadowbreeds)
                    {
                        if (kvp.Value == ShadowbreedState.Unknown)
                        {
                            list.Add(Format.UppercaseFirst(kvp.Key));
                        }
                    }
                }
                if (list.Count < 1)
                {
                    bot.SendReply(e, "All Shadowbreed states are known.");
                    return;
                }
                bot.SendReply(e, "Requesting Shadowbreed state from: " + HTML.CreateColorString(bot.ColorHeaderHex, string.Join(", ", list.ToArray())));
                foreach (string user in list)
                {
                    this.RequestSbState(bot, user);
                }
                break;
            }
        }
Example #3
0
        public void CreateSbList(BotShell bot, ref RichTextWindow window, List <string> users)
        {
            users.Sort();
            RichTextWindow up      = new RichTextWindow(bot);
            RichTextWindow unknown = new RichTextWindow(bot);
            RichTextWindow down    = new RichTextWindow(bot);

            foreach (string user in users)
            {
                ShadowbreedState state = ShadowbreedState.Unknown;
                lock (this.Shadowbreeds)
                    if (this.Shadowbreeds.ContainsKey(user))
                    {
                        state = this.Shadowbreeds[user];
                    }

                RichTextWindow tmp;
                switch (state)
                {
                case ShadowbreedState.Up:
                    tmp = up;
                    break;

                case ShadowbreedState.Unknown:
                    tmp = unknown;
                    break;

                default:
                    tmp = down;
                    break;
                }

                tmp.AppendHighlight(Format.UppercaseFirst(user) + " ");
                tmp.AppendNormalStart();
                tmp.AppendString("(");
                tmp.AppendRawString(this.ColorizeState(state));
                tmp.AppendString(") ");
                if (state != ShadowbreedState.Up)
                {
                    tmp.AppendString("[");
                    tmp.AppendBotCommand("Up", "sb set " + user + " up");
                    tmp.AppendString("] ");
                }
                if (state != ShadowbreedState.Down)
                {
                    tmp.AppendString("[");
                    tmp.AppendBotCommand("Down", "sb set " + user + " down");
                    tmp.AppendString("] ");
                }
                if (state != ShadowbreedState.Unavailable)
                {
                    tmp.AppendString("[");
                    tmp.AppendBotCommand("Unavailable", "sb set " + user + " unavailable");
                    tmp.AppendString("] ");
                }
                tmp.AppendColorEnd();
                tmp.AppendLineBreak();
            }
            window.AppendRawString(up.Text);
            window.AppendRawString(unknown.Text);
            window.AppendRawString(down.Text);
        }