private async Task OnActivityUpdatedAsync(ActivityContainer activity) { IMessageChannel channel = _client.GetChannel(activity.ChannelID) as IMessageChannel; var builder = ParseActivityContainer(activity); var componentBuilder = new ComponentBuilder() .WithButton(customId: "ActivitierSubscribe", style: ButtonStyle.Primary, emote: new Emoji("\U00002795")); await channel.ModifyMessageAsync(activity.ActivityID, msg => { msg.Content = string.Join(", ", _destinyRoleIDs.Select(x => $"<@&{x}>")); msg.Embed = builder.Build(); msg.Components = componentBuilder.Build(); }); }
private async Task OnMusicPlayerUpdateAsync(ulong?messageID) { if (messageID is null) { return; } IMessageChannel channel = _client.GetChannel(_musicChannelIDs[0]) as IMessageChannel; var queue = _musicPlayer.Queue.SkipWhile(x => !x.isCurrent).Take(4).Select(x => x.audio); var first = queue.FirstOrDefault(); if (first is null) { return; } var thumbnail = first.CoverURL; var fields = new List <EmbedFieldBuilder> { new EmbedFieldBuilder { IsInline = false, Name = "Зараз відтворюється", Value = $"[{first.Duration.GetAudioDuration()}] *{first.Title}*", } }; var next = queue.Skip(1); if (next.Count() > 0) { fields.Add(new EmbedFieldBuilder { IsInline = false, Name = "Далі у черзі", Value = $"{string.Join('\n', next.Select(x => $"[{x.Duration.GetAudioDuration()}] *{x.Title}*"))}" }); } (var custId, var emoji) = _musicPlayer.IsPlaying ? ("MusicPlayerPause", Emote.Parse(CommonData.DiscordEmoji.Emoji.MusicPause)) : ("MusicPlayerContinue", Emote.Parse(CommonData.DiscordEmoji.Emoji.MusicContinue)); var builder = new EmbedBuilder() .WithColor(0x3BA55D) .WithThumbnailUrl(thumbnail) .WithFields(fields); var component = new ComponentBuilder() .WithButton(customId: "MusicPlayerShuffle", style: ButtonStyle.Success, emote: Emote.Parse(CommonData.DiscordEmoji.Emoji.MusicShuffle)) .WithButton(customId: "MusicPlayerPrevious", style: ButtonStyle.Success, emote: Emote.Parse(CommonData.DiscordEmoji.Emoji.MusicPrevious)) .WithButton(customId: custId, style: ButtonStyle.Success, emote: emoji) .WithButton(customId: "MusicPlayerNext", style: ButtonStyle.Success, emote: Emote.Parse(CommonData.DiscordEmoji.Emoji.MusicNext)) .WithButton(customId: "MusicPlayerStop", style: ButtonStyle.Success, emote: Emote.Parse(CommonData.DiscordEmoji.Emoji.MusicStop)); try { await channel.ModifyMessageAsync(messageID.Value, msg => { msg.Embed = builder.Build(); msg.Components = component.Build(); }); } catch { } }