using System; using System.Linq; using System.Threading.Tasks; using Discord.Commands; using System.Collections.Concurrent; using Discord; namespace NadekoBot.Commands { class VoiceNotificationCommand : DiscordCommand { public VoiceNotificationCommand() : base() { //NadekoBot.client. } //voicechannel/text channel ConcurrentDictionary<Channel, Channel> subscribers = new ConcurrentDictionary<Channel, Channel>(); public override Func<CommandEventArgs, Task> DoFunc() => async e => { var arg = e.GetArg("voice_name"); if (string.IsNullOrWhiteSpace("voice_name")) return; var voiceChannel = e.Server.FindChannels(arg, ChannelType.Voice).FirstOrDefault(); if (voiceChannel == null) return; if (subscribers.ContainsKey(voiceChannel)) { await e.Channel.SendMessage("`Voice channel notifications disabled.`"); return; } if (subscribers.TryAdd(voiceChannel, e.Channel)) { await e.Channel.SendMessage("`Voice channel notifications enabled.`"); } }; public override void Init(CommandGroupBuilder cgb) { /* cgb.CreateCommand(".voicenotif") .Description("Enables notifications on who joined/left the voice channel.\n**Usage**:.voicenotif Karaoke club") .Parameter("voice_name", ParameterType.Unparsed) .Do(DoFunc()); */ } } }