public async Task Adicionar(ExecucaoDeAudio execucaoDeAudio) { if (StatusDaFila == EnumeradorDeStatusDaFila.Parada) { StatusDaFila = EnumeradorDeStatusDaFila.Executando; try { await AoExecutarMusica?.Invoke(execucaoDeAudio); } catch { await execucaoDeAudio.CommandContext.Message.DeleteOwnReactionAsync(DiscordEmoji.FromName(execucaoDeAudio.CommandContext.Client, ":arrows_counterclockwise:")); await execucaoDeAudio.CommandContext.Message.CreateReactionAsync(DiscordEmoji.FromName(execucaoDeAudio.CommandContext.Client, ":thumbsdown:")); Fila.Clear(); StatusDaFila = EnumeradorDeStatusDaFila.Parada; await execucaoDeAudio.CommandContext.Message.RespondAsync(content : "Erro ao executar o comando, a fila de audios foi limpa"); } } else { Fila.Enqueue(execucaoDeAudio); } }
public async Task Remover(CommandContext ctx, VoiceNextConnection vnc) { if (Fila.Count == 0) { await vnc.SendSpeakingAsync(false); vnc?.Disconnect(); StatusDaFila = EnumeradorDeStatusDaFila.Parada; } else { var proximaExecucao = Fila.Dequeue(); await AoExecutarMusica?.Invoke(proximaExecucao); } }