コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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];
コード例 #3
0
        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());
        }