public async Task Radio() { IVoiceChannel channel = (Context.Message.Author as IGuildUser).VoiceChannel; if (channel == null) { await Context.Channel.SendMessageAsync("Please join a voice channel before requesting radio! :)"); return; } if (ChannelTrackList.Keys.Contains(channel) == false) { AudioPlayer NewPlayer = new AudioPlayer() { MessageClient = Context.Message.Channel }; NewPlayer.SendMessage_Raised += (Message, x) => x.SendMessageAsync(Message); ChannelTrackList.Add(channel, NewPlayer); } AudioPlayer Player = ChannelTrackList[channel]; var IsInVoiceChannel = await channel.GetUserAsync(Context.Client.CurrentUser.Id); if (IsInVoiceChannel == null || Player.DiscordOutStream == null) { IAudioClient audioClient = await channel.ConnectAsync(); Player.EngageOutStream(audioClient); } await Player.PlayRadio(); }
public async Task JoinAudio(IVoiceChannel channel = null) { // Get the audio channel channel = channel ?? (Context.Message.Author as IGuildUser)?.VoiceChannel; if (channel == null) { await Context.Channel.SendMessageAsync("You must be in a voice channel."); return; } var userList = channel.GetUserAsync(307798617522044929); //if bot is not in channel, then join the channel if (userList.Result == null) { // For the next step with transmitting audio, you would want to pass this Audio Client in to a service. DiscordBot.AudioClient = await channel.ConnectAsync(); } else { await Context.Channel.SendMessageAsync("Bot is already in a channel"); } }
public async Task Play([Remainder] string Text) { IGuildUser SelectedUser = null; IVoiceChannel channel = (Context.Message.Author as IGuildUser).VoiceChannel; if (Context.Message.MentionedUserIds.Count() == 1) { ulong UserID = Context.Message.MentionedUserIds.First(); SelectedUser = await Context.Guild.GetUserAsync(UserID); channel = SelectedUser?.VoiceChannel; Text = Text.Substring(0, Text.LastIndexOf("<")); } if (channel == null) { if (SelectedUser != null) { await Context.Channel.SendMessageAsync(SelectedUser.Username + " isn't in a voice channel, baka!"); } else { await Context.Channel.SendMessageAsync("Please join a voice channel before requesting tracks! :)"); } return; } if (ChannelTrackList.Keys.Contains(channel) == false) { AudioPlayer NewPlayer = new AudioPlayer() { MessageClient = Context.Message.Channel }; NewPlayer.SendMessage_Raised += (Message, x) => x.SendMessageAsync(Message); ChannelTrackList.Add(channel, NewPlayer); } AudioPlayer Player = ChannelTrackList[channel]; string PlayAudio = await Player.DoPlayAsync(Text, (Context.Message.Author as IGuildUser).Nickname); if (PlayAudio != "") { if (PlayAudio == "ERROR") { await Context.Channel.SendMessageAsync("Unable to process your request, " + (Context.Message.Author as IGuildUser).Nickname + "."); return; } var IsInVoiceChannel = await channel.GetUserAsync(Context.Client.CurrentUser.Id); if (IsInVoiceChannel == null || Player.DiscordOutStream == null) { IAudioClient audioClient = await channel.ConnectAsync(); Player.EngageOutStream(audioClient); } VideoInfo Vid = null; if (PlayAudio == "MOVE") { Vid = Player.GetNext(); PlayAudio = "Now Playing On SpagBot: " + Vid.Title; } else if (PlayAudio == "QUEUE") { Vid = Player.Videos.Last(); PlayAudio = "Queued Up On SpagBot: " + Vid.Title; } if (Vid != null) { Console.WriteLine(Context.Message.Author.Username + " has requested " + Vid.Title); await Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync(PlayAudio); if (PlayAudio.Contains("Now Playing On SpagBot:")) { await Player.PlayNext(true); } } } }