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(); } } }
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)); } } } }
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; } } }