using DSharpPlus.Entities; using Lavalink4NET; using Lavalink4NET.Player; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using TomatenMusic.Music; using TomatenMusic.Music.Entitites; using Microsoft.Extensions.DependencyInjection; namespace TomatenMusic.Prompt.Buttons { class AddToQueueButton : ButtonPromptOption { public List Tracks { get; set; } public AddToQueueButton(List tracks, int row, DiscordMember requestMember) { Tracks = tracks; Emoji = new DiscordComponentEmoji("▶️"); Row = row; Style = DSharpPlus.ButtonStyle.Primary; UpdateMethod = (prompt) => { if (requestMember.VoiceState == null || requestMember.VoiceState.Channel == null) prompt.Disabled = true; return Task.FromResult(prompt); }; Run = async (args, sender, option) => { IAudioService audioService = TomatenMusicBot.ServiceProvider.GetRequiredService(); GuildPlayer player;player = audioService.GetPlayer(args.Guild.Id); try { try { player = await audioService.JoinAsync(args.Guild.Id, ((DiscordMember)args.User).VoiceState.Channel.Id, true); }catch (Exception ex) { player = audioService.GetPlayer(args.Guild.Id); } await player.PlayTracksAsync(Tracks); } catch (Exception ex) { } }; } } }