Esempio n. 1
0
        private async void OnMessageRecieved(BotWideMessageArguments args)
        {
            BotChannel bChan = await GetBotChannel(args);

            QueueSettings settings = await Settings <QueueSettings>(bChan, PluginName);

            if (settings._active)
            {
                if (_queues.ContainsKey(bChan.Key))
                {
                    _queues[bChan.Key].AddMessage();
                }
            }
        }
Esempio n. 2
0
        public override async void OnSecondTick(int seconds)
        {
            foreach (string key in _queues.Keys)
            {
                BotChannel bChan = await Program.Channels.GetBotchannelByKey(key);

                QueueSettings settings = await Settings <QueueSettings>(bChan, PluginName);

                if (settings._active)
                {
                    if (_queues[key].CheckAnnounce())
                    {
                        Program.TwitchSayMessage(bChan.TwitchChannelName, _queues[key].Announce(CMC));
                    }
                }
            }
        }
Esempio n. 3
0
        private async void OnCommandRecieved(BotWideCommandArguments args)
        {
            BotChannel bChan = await GetBotChannel(args);

            if (bChan == null)
            {
                return;
            }
            QueueSettings settings = await Settings <QueueSettings>(bChan, PluginName);

            BotWideResponseArguments response = new BotWideResponseArguments(args);

            if (settings._active && args.source == MESSAGESOURCE.TWITCH && (args.command.ToLower() == "addqueue" || args.command.ToLower() == "aq"))
            {
                QueueUp(bChan, args.userDisplayName);
                return;
            }
            if (settings._active && args.source == MESSAGESOURCE.TWITCH && (args.command.ToLower() == "leavequeue" || args.command.ToLower() == "lq"))
            {
                if (QueueLeave(bChan, args.userDisplayName))
                {
                    response.message      = $"{args.userDisplayName} left the queue";
                    response.parseMessage = true;
                    response.victim       = args.user;
                    Respond(bChan, response);
                }
                return;
            }

            if (!args.isModerator && !args.isBroadcaster && !args.canManageMessages)
            {
                // No access below
                return;
            }
            if (args.command.ToLower() == "queue")
            {
                // Blank queue response here
                if (args.arguments.Count == 0)
                {
                    if (args.source == MESSAGESOURCE.DISCORD)
                    {
                        Discord.EmbedFooterBuilder footer = new Discord.EmbedFooterBuilder
                        {
                            Text = $"The plugin is currently {(settings._active ? "active" : "inactive")} here.{(HasActiveQueue(bChan) ? $" {QueuedUserCount(bChan)} in queue." : "")}"
                        };

                        Discord.EmbedBuilder embedded = new Discord.EmbedBuilder
                        {
                            Title       = "Plugin: Queue ",
                            Description = HelpText(settings),
                            Color       = Discord.Color.DarkOrange,
                            Footer      = footer
                        };

                        await SayEmbedOnDiscord(args.channelID, embedded.Build());

                        return;
                    }
                    if (args.source == MESSAGESOURCE.TWITCH)
                    {
                        response.message = $"The plugin is currently {(settings._active ? "active" : "inactive")} here.{(HasActiveQueue(bChan) ? $" {QueuedUserCount(bChan)} in queue." : "")}";
                        Respond(bChan, response);
                        return;
                    }
                }
                // resolve subcommands
                switch (args.arguments[0])
                {
                case "off":
                    settings._active = false;
                    SaveBaseSettings(bChan, PluginName, settings);
                    response.message = $"Queue is inactive.";
                    Respond(bChan, response);
                    break;

                case "on":
                    settings._active = true;
                    SaveBaseSettings(bChan, PluginName, settings);
                    response.message = $"Queue is active.";
                    Respond(bChan, response);
                    break;

                case "next":
                    if (settings._active)
                    {
                        response.message = NextInQueue(bChan);
                        Respond(bChan, response);
                        if (response.source == MESSAGESOURCE.DISCORD && bChan.TwitchChannelName != string.Empty)
                        {
                            Program.TwitchSayMessage(bChan.TwitchChannelName, response.message);
                        }
                    }
                    break;

                case "reset":
                    if (settings._active)
                    {
                        CreateQueue(bChan, settings);
                        response.message = "Queue reset";
                        Respond(bChan, response);
                        if (response.source == MESSAGESOURCE.DISCORD && bChan.TwitchChannelName != string.Empty)
                        {
                            Program.TwitchSayMessage(bChan.TwitchChannelName, response.message);
                        }
                    }
                    break;

                case "start":
                    if (settings._active)
                    {
                        CreateQueue(bChan, settings);
                        response.message = $"Queue started";
                        Respond(bChan, response);
                        if (response.source == MESSAGESOURCE.DISCORD && bChan.TwitchChannelName != string.Empty)
                        {
                            Program.TwitchSayMessage(bChan.TwitchChannelName, response.message);
                        }
                    }
                    break;

                case "stop":
                    if (settings._active)
                    {
                        StopQueue(bChan);
                        response.message = $"Queue stopped.";
                        Respond(bChan, response);
                        if (response.source == MESSAGESOURCE.DISCORD && bChan.TwitchChannelName != string.Empty)
                        {
                            Program.TwitchSayMessage(bChan.TwitchChannelName, response.message);
                        }
                    }
                    break;
                }
            }
        }