public async Task PinToTextChannel(ITextChannel sourceChannel) { //get the pinned messages of the specified sourceChannel var pinnedMessages = await sourceChannel.GetPinnedMessagesAsync(); //foreach message, write the messages to another channel in text form foreach (var msg in pinnedMessages.Reverse()) { await Context.Channel.SendMessageAsync(msg.Content); } }
public Player(SocketGuildUser user, ITextChannel channel) { _user = user; _channel = channel; var pins = channel.GetPinnedMessagesAsync().Result; if ((_message = pins.FirstOrDefault() as IUserMessage) == null) { _message = channel.SendMessageAsync(embed: BuildEmbed(new PlayerData())).Result; _message.PinAsync(); } var json = _message.Embeds.First().Fields[0].Value[8..^ 3];
public async Task <int> PinPurgeAsync(ITextChannel channel, int take, int skip) { var pins = await channel.GetPinnedMessagesAsync(); if (pins.Count == 0) { throw new InvalidOperationException($"V kanálu **{channel.Mention}** ještě nebylo nic připnuto."); } var pinsToRemove = pins .OrderByDescending(o => o.CreatedAt) .Skip(skip).Take(take) .OfType <RestUserMessage>(); await UnpinMessagesAsync(pinsToRemove); return(pinsToRemove.Count()); }