public async Task <string> PlayAsync(int query, IVoiceChannel voiceChannel, ITextChannel textChannel, ulong guildId) { await lavaSocketClient.ConnectAsync(voiceChannel, textChannel); if (player == null) { player = lavaSocketClient.GetPlayer(guildId); } if (query >= 0 && query < 9) { var track = searchedTracks[query]; if (player.IsPlaying) { player.Queue.Enqueue(track); isSearching = false; return($"{track.Title} has been queued."); } else { await player.PlayAsync(track); isSearching = false; return($"Now Playing: {track.Title}"); } } else { return("Please choose a number between 0 and 8"); } }
public async Task <string> PlayAsync(string query, ulong guildId) { Player = lavaSocketClient.GetPlayer(guildId); SearchResult results = await lavaRestClient.SearchYouTubeAsync(query); if (results.LoadType == LoadType.NoMatches || results.LoadType == LoadType.LoadFailed) { return("No matches found."); } LavaTrack track = results.Tracks.FirstOrDefault(); if (track is null) { return("The possibility of you seeing this is less than 0% but Jetbrains won't shut up about it."); } if (Player.IsPlaying) { Player.Queue.Enqueue(track); return($"{track.Title} has been added to the queue."); } await Player.PlayAsync(track); return($"Now player: {track.Title}"); }
public void BeforeExecute(ulong guildId) { _player = _lavaClient.GetPlayer(guildId); if (_queues.TryGetValue(guildId, out _queue)) { return; } _queue = new Queue <IPlayable>(); _queues.Add(guildId, _queue); }
public async Task UserVoiceStateUpdated(SocketUser user, SocketVoiceState lastVoice, SocketVoiceState newVoice) { if (lastVoice.VoiceChannel != null && lastVoice.VoiceChannel.GetUser(_client.CurrentUser.Id) != null) { var player = _lavaSocketClient.GetPlayer(lastVoice.VoiceChannel.Guild.Id); if (player != null && !lastVoice.VoiceChannel.Users.Where(w => !w.IsBot).Any() && !player.IsPaused) { await player.PauseAsync(); } } else if (newVoice.VoiceChannel != null && newVoice.VoiceChannel.GetUser(_client.CurrentUser.Id) != null) { var player = _lavaSocketClient.GetPlayer(newVoice.VoiceChannel.Guild.Id); if (player != null && newVoice.VoiceChannel.Users.Where(w => !w.IsBot).Any() && player.IsPaused) { await player.ResumeAsync(); } } }
public async Task <string> PlayAsync(string query, ulong guildId) { _player = _lavaSocketClient.GetPlayer(guildId); var results = await _lavaRestClient.SearchYouTubeAsync(query); if (results.LoadType == LoadType.NoMatches || results.LoadType == LoadType.LoadFailed) { return("No matches found."); } var track = results.Tracks.FirstOrDefault(); if (_player.IsPlaying) { _player.Queue.Enqueue(track); return($"{track.Title} has been added to the queue."); } else { await _player.PlayAsync(track); return($"Now Playing: {track.Title}"); } }
public async Task <Embed> PlayAsync(string query, ulong guildId) { _player = _lavaSocketClient.GetPlayer(guildId); var results = await _lavaRestClient.SearchYouTubeAsync(query); if (results.LoadType == LoadType.NoMatches || results.LoadType == LoadType.LoadFailed) { return(await EmbedHandler.CreateBasicEmbed("No Results", "Your search returned no results.", Color.Blue)); } var track = results.Tracks.FirstOrDefault(); if (_player.IsPlaying) { _player.Queue.Enqueue(track); return(await EmbedHandler.CreateMusicQueueEmbed(":arrow_right: " + track.Title + " added to queue", track.Uri.ToString())); } else { await _player.PlayAsync(track); return(await EmbedHandler.CreateMusicEmbed(":musical_note: Now playing " + track.Title + " :musical_note:", track.Uri.ToString())); } }
public async Task <string> PlayAsync(string query, ulong guildId) { _player = _lavaSocketClient.GetPlayer(guildId); var results = await _lavaRestClient.SearchYouTubeAsync(query); if (results.LoadType == LoadType.NoMatches || results.LoadType == LoadType.LoadFailed) { return("⚠️ No se han encontrado resultados."); } var track = results.Tracks.FirstOrDefault(); if (_player.IsPlaying) { _player.Queue.Enqueue(track); return($"🔔 {track.Title} se agregó a la cola."); } else { await _player.PlayAsync(track); return($"🔔 Ahora está sonando: {track.Title}"); } }
private async Task OnReactionAdd(Cacheable <IUserMessage, ulong> cache, ISocketMessageChannel channel, SocketReaction sReaction) { IUserMessage message = await cache.GetOrDownloadAsync(); ITextChannel textChannel = (ITextChannel)channel; SocketGuildUser user = (SocketGuildUser)message.Author; var player = _lavaSocketClient.GetPlayer(textChannel.Guild.Id); if (player == null) { return; } foreach (Embed embed in message.Embeds) { string[] key = embed.Title.Split(" "); if (sReaction.UserId != _client.CurrentUser.Id) { if (key[0] == "queue:") { await message.RemoveAllReactionsAsync(new RequestOptions()); int p = int.Parse(key[3]); int forward = p + 10; int fTrackPos = forward - 9; int fTrackStart = forward - 9; int prev = p - 10; int pTrackPos = prev - 9; int pTrackStart = prev - 9; if (sReaction.Emote.Name == "➡") { getQueueResults(player, textChannel, fTrackPos, fTrackStart, forward, message, false); } if (sReaction.Emote.Name == "⬅") { getQueueResults(player, textChannel, pTrackPos, pTrackStart, prev, message, false); } return; } if (key[0] == "Skipping!") { if (sReaction.Emote.Name == "☑") { Console.WriteLine(message.Reactions.Count); Console.WriteLine(user.VoiceChannel.Users.Count - 1); float count = (user.VoiceChannel.Users.Count - 1) / 2; if (message.Reactions.Count > count) { await channel.SendMessageAsync(null, false, await SkipAsync(textChannel.Guild.Id)); await message.RemoveAllReactionsAsync(new RequestOptions()); } } return; } } } }
protected override void BeforeExecute(CommandInfo command) { player = _lavaSocketClient.GetPlayer(Context.Guild.Id); base.BeforeExecute(command); }