From 51fd771af964ec9e220acfff5e43adf87cbd13b2 Mon Sep 17 00:00:00 2001 From: RogueException Date: Sun, 27 Dec 2015 15:28:34 -0400 Subject: [PATCH] Added Server.GetBans --- src/Discord.Net.Net45/Discord.Net.csproj | 3 +++ src/Discord.Net/API/Client/Rest/GetBans.cs | 20 ++++++++++++++++++++ src/Discord.Net/Models/Server.cs | 11 +++++++++++ 3 files changed, 34 insertions(+) create mode 100644 src/Discord.Net/API/Client/Rest/GetBans.cs diff --git a/src/Discord.Net.Net45/Discord.Net.csproj b/src/Discord.Net.Net45/Discord.Net.csproj index 21bdc5dd4..60f328ad5 100644 --- a/src/Discord.Net.Net45/Discord.Net.csproj +++ b/src/Discord.Net.Net45/Discord.Net.csproj @@ -278,6 +278,9 @@ API\Client\Rest\Gateway.cs + + API\Client\Rest\GetBans.cs + API\Client\Rest\GetInvite.cs diff --git a/src/Discord.Net/API/Client/Rest/GetBans.cs b/src/Discord.Net/API/Client/Rest/GetBans.cs new file mode 100644 index 000000000..5891e90fb --- /dev/null +++ b/src/Discord.Net/API/Client/Rest/GetBans.cs @@ -0,0 +1,20 @@ +using Newtonsoft.Json; + +namespace Discord.API.Client.Rest +{ + [JsonObject(MemberSerialization.OptIn)] + public sealed class GetBansRequest : IRestRequest + { + string IRestRequest.Method => "GET"; + string IRestRequest.Endpoint => $"guilds/{GuildId}/bans"; + object IRestRequest.Payload => null; + bool IRestRequest.IsPrivate => false; + + public ulong GuildId { get; } + + public GetBansRequest(ulong guildId) + { + GuildId = guildId; + } + } +} diff --git a/src/Discord.Net/Models/Server.cs b/src/Discord.Net/Models/Server.cs index f9b8a8898..2d19faec4 100644 --- a/src/Discord.Net/Models/Server.cs +++ b/src/Discord.Net/Models/Server.cs @@ -172,6 +172,17 @@ namespace Discord } #region Bans + public async Task> GetBans() + { + var response = await Client.ClientAPI.Send(new GetBansRequest(Id)).ConfigureAwait(false); + return response.Select(x => + { + var user = new User(Client, x.Id, this); + user.Update(x); + return user; + }); + } + public Task Ban(User user, int pruneDays = 0) { var request = new AddGuildBanRequest(user.Server.Id, user.Id)