Support GET /channels/{id}/pins
tags/1.0-rc
| @@ -357,6 +357,12 @@ namespace Discord.API | |||||
| await SendAsync("DELETE", $"channels/{channelId}/pins/{messageId}", options: options).ConfigureAwait(false); | await SendAsync("DELETE", $"channels/{channelId}/pins/{messageId}", options: options).ConfigureAwait(false); | ||||
| } | } | ||||
| public async Task<IReadOnlyCollection<Message>> GetPinsAsync(ulong channelId, RequestOptions options = null) | |||||
| { | |||||
| Preconditions.NotEqual(channelId, 0, nameof(channelId)); | |||||
| return await SendAsync<IReadOnlyCollection<Message>>("GET", $"channels/{channelId}/pins", options: options).ConfigureAwait(false); | |||||
| } | |||||
| //Channel Recipients | //Channel Recipients | ||||
| public async Task AddGroupRecipientAsync(ulong channelId, ulong userId, RequestOptions options = null) | public async Task AddGroupRecipientAsync(ulong channelId, ulong userId, RequestOptions options = null) | ||||
| @@ -23,6 +23,8 @@ namespace Discord | |||||
| Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch); | Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch); | ||||
| /// <summary> Gets a collection of messages in this channel. </summary> | /// <summary> Gets a collection of messages in this channel. </summary> | ||||
| Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch); | Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch); | ||||
| /// <summary> Gets a collection of pinned messages in this channel. </summary> | |||||
| Task<IReadOnlyCollection<IMessage>> GetPinnedMessagesAsync(); | |||||
| /// <summary> Bulk deletes multiple messages. </summary> | /// <summary> Bulk deletes multiple messages. </summary> | ||||
| Task DeleteMessagesAsync(IEnumerable<IMessage> messages); | Task DeleteMessagesAsync(IEnumerable<IMessage> messages); | ||||
| @@ -108,6 +108,11 @@ namespace Discord | |||||
| { | { | ||||
| await Discord.ApiClient.DeleteDMMessagesAsync(Id, new DeleteMessagesParams { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false); | await Discord.ApiClient.DeleteDMMessagesAsync(Id, new DeleteMessagesParams { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false); | ||||
| } | } | ||||
| public async Task<IReadOnlyCollection<IMessage>> GetPinnedMessagesAsync() | |||||
| { | |||||
| var models = await Discord.ApiClient.GetPinsAsync(Id); | |||||
| return models.Select(x => new Message(this, new User(x.Author.Value), x)).ToImmutableArray(); | |||||
| } | |||||
| public async Task TriggerTypingAsync() | public async Task TriggerTypingAsync() | ||||
| { | { | ||||
| @@ -133,6 +133,11 @@ namespace Discord | |||||
| { | { | ||||
| await Discord.ApiClient.DeleteDMMessagesAsync(Id, new DeleteMessagesParams { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false); | await Discord.ApiClient.DeleteDMMessagesAsync(Id, new DeleteMessagesParams { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false); | ||||
| } | } | ||||
| public async Task<IReadOnlyCollection<IMessage>> GetPinnedMessagesAsync() | |||||
| { | |||||
| var models = await Discord.ApiClient.GetPinsAsync(Id); | |||||
| return models.Select(x => new Message(this, new User(x.Author.Value), x)).ToImmutableArray(); | |||||
| } | |||||
| public async Task TriggerTypingAsync() | public async Task TriggerTypingAsync() | ||||
| { | { | ||||
| @@ -102,7 +102,12 @@ namespace Discord | |||||
| { | { | ||||
| await Discord.ApiClient.DeleteMessagesAsync(Guild.Id, Id, new DeleteMessagesParams { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false); | await Discord.ApiClient.DeleteMessagesAsync(Guild.Id, Id, new DeleteMessagesParams { MessageIds = messages.Select(x => x.Id) }).ConfigureAwait(false); | ||||
| } | } | ||||
| public async Task<IReadOnlyCollection<IMessage>> GetPinnedMessagesAsync() | |||||
| { | |||||
| var models = await Discord.ApiClient.GetPinsAsync(Id); | |||||
| return models.Select(x => new Message(this, new User(x.Author.Value), x)).ToImmutableArray(); | |||||
| } | |||||
| public async Task TriggerTypingAsync() | public async Task TriggerTypingAsync() | ||||
| { | { | ||||
| await Discord.ApiClient.TriggerTypingIndicatorAsync(Id).ConfigureAwait(false); | await Discord.ApiClient.TriggerTypingIndicatorAsync(Id).ConfigureAwait(false); | ||||