Ejemplo n.º 1
0
 public async Task RefreshStatus(LavaPlayer player)
 {
     await DoWithSemaphore(player, async (player) =>
     {
         EmbedInfo embedInfo = await GetAudioInfoEmbedInfo((SocketGuild)player.VoiceChannel.Guild);
         await UpdateEmbed(embedInfo, player, (info, p) => GetRefreshedStatus(info.Embed, p));
     });
 }
Ejemplo n.º 2
0
 public async Task RefreshTrack(LavaPlayer player)
 {
     await DoWithSemaphore(player, async (player) =>
     {
         EmbedInfo embedInfo = await GetAudioInfoEmbedInfo((SocketGuild)player.VoiceChannel.Guild);
         await UpdateEmbed(embedInfo, player, async(info, p) => await GetRefreshedAudioInfo(info.Embed, p.CurrentTrack));
     });
 }
Ejemplo n.º 3
0
 internal static Task UpdateEmbed(this EmbedInfo embedInfo, LavaPlayer player, Func <Embed, Embed> embedRefresher)
 {
     return(UpdateEmbed(embedInfo, player, (embed) =>
     {
         embed = embedRefresher(embed);
         return Task.FromResult(embed);
     }));
 }
Ejemplo n.º 4
0
        internal static async Task <EmbedInfo> GetEmbedInfo(ISocketMessageChannel textChannel)
        {
            var messagesList = await textChannel.GetMessagesAsync(1).FlattenAsync();

            var message = messagesList.FirstOrDefault();
            var embed   = message?.Embeds.FirstOrDefault();

            var info = new EmbedInfo(textChannel, embed as Embed, message);

            return(info);
        }
Ejemplo n.º 5
0
        private async Task UpdateEmbed(EmbedInfo embedInfo, LavaPlayer player, Func <EmbedInfo, LavaPlayer, Embed> embedRefresher)
        {
            if (embedInfo == null)
            {
                return;
            }
            if (embedInfo.Embed == null)
            {
                embedInfo.Embed = await GetNewAudioInfo(player);

                var msg = await embedInfo.Channel.SendMessageAsync(embed : embedInfo.Embed);
            }
            else
            {
                embedInfo.Embed = embedRefresher(embedInfo, player);
                await((RestUserMessage)embedInfo.Message).ModifyAsync(msg => msg.Embed = embedInfo.Embed);
            }
        }
Ejemplo n.º 6
0
        internal static async Task UpdateEmbed(this EmbedInfo embedInfo, LavaPlayer player, Func <Embed, Task <Embed> > embedRefresher)
        {
            if (embedInfo is null)
            {
                return;
            }
            if (embedInfo.Embed is null)
            {
                embedInfo.Embed = await GetNewAudioInfo(player);

                var msg = await embedInfo.Channel.SendMessageAsync(embed : embedInfo.Embed);
            }
            else
            {
                embedInfo.Embed = await embedRefresher(embedInfo.Embed);

                if (embedInfo.Message is IUserMessage userMessage)
                {
                    await userMessage.ModifyAsync(msg => msg.Embed = embedInfo.Embed);
                }
            }
        }
Ejemplo n.º 7
0
        private async Task <EmbedInfo> GetAudioInfoEmbedInfo(SocketGuild guild)
        {
            SocketTextChannel channel = GetAudioInfoChannel(guild);

            if (channel == null)
            {
                return(null);
            }
            var info = new EmbedInfo()
            {
                Channel = channel
            };

            var messages = await info.Channel.GetMessagesAsync(1).FlattenAsync();

            if (messages.Any())
            {
                info.Message = messages.FirstOrDefault();
                info.Embed   = (Embed)info.Message.Embeds.FirstOrDefault();
            }

            return(info);
        }
Ejemplo n.º 8
0
		private void VerifyLinkerArgs(string linkerPath, EmbedInfo[] expectedResources )
		{
			string locale = "es";
			var index = m_sut.LinkerPath.IndexOf(linkerPath);
			Assert.That(index >= 0);
			Assert.That(m_sut.LinkerCulture[index], Is.EqualTo(locale));
			Assert.That(m_sut.LinkerFileVersion[index], Is.EqualTo("8.4.2.1234"));
			Assert.That(m_sut.LinkerProductVersion[index], Is.EqualTo("8.4.2 beta 2"));
			Assert.That(m_sut.LinkerVersion[index], Is.EqualTo("8.4.2.*"));
			Assert.That(m_sut.LinkerAlArgs[index], Is.StringContaining("\"8.4.2 beta 2\""));
			var embeddedResources = m_sut.LinkerResources[index];
			Assert.That(embeddedResources.Count, Is.EqualTo(expectedResources.Length));
			foreach (var resource in expectedResources)
				Assert.That(embeddedResources, Has.Member(resource));
		}