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)