Added PruneUsers, renamed a few APIClient functions.
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
public static string ServerBan(string serverId, string userId) => $"guilds/{serverId}/bans/{userId}";
|
||||
public static string ServerRoles(string serverId) => $"guilds/{serverId}/roles";
|
||||
public static string ServerRole(string serverId, string roleId) => $"guilds/{serverId}/roles/{roleId}";
|
||||
public static string ServerPrune(string serverId, int days) => $"guilds/{serverId}/prune?days={days}";
|
||||
|
||||
public const string Invites = "invite";
|
||||
public static string Invite(string inviteId) => $"invite/{inviteId}";
|
||||
|
||||
@@ -82,6 +82,12 @@ namespace Discord.API
|
||||
public IEnumerable<string> Roles;
|
||||
}
|
||||
|
||||
public class PruneUsersResponse
|
||||
{
|
||||
[JsonProperty("pruned")]
|
||||
public int? Pruned;
|
||||
}
|
||||
|
||||
//Events
|
||||
internal sealed class MemberAddEvent : MemberInfo { }
|
||||
internal sealed class MemberUpdateEvent : MemberInfo { }
|
||||
|
||||
@@ -136,7 +136,7 @@ namespace Discord
|
||||
return _rest.Delete(Endpoints.Invite(inviteId));
|
||||
}
|
||||
|
||||
//Members
|
||||
//Users
|
||||
public Task EditUser(string serverId, string userId, bool? mute = null, bool? deaf = null, IEnumerable<string> roles = null)
|
||||
{
|
||||
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||
@@ -145,27 +145,39 @@ namespace Discord
|
||||
var request = new EditMemberRequest { Mute = mute, Deaf = deaf, Roles = roles };
|
||||
return _rest.Patch(Endpoints.ServerMember(serverId, userId), request);
|
||||
}
|
||||
public Task Kick(string serverId, string userId)
|
||||
public Task KickUser(string serverId, string userId)
|
||||
{
|
||||
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||
|
||||
return _rest.Delete(Endpoints.ServerMember(serverId, userId));
|
||||
}
|
||||
public Task Ban(string serverId, string userId)
|
||||
public Task BanUser(string serverId, string userId)
|
||||
{
|
||||
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||
|
||||
return _rest.Put(Endpoints.ServerBan(serverId, userId));
|
||||
}
|
||||
public Task Unban(string serverId, string userId)
|
||||
public Task UnbanUser(string serverId, string userId)
|
||||
{
|
||||
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||
|
||||
return _rest.Delete(Endpoints.ServerBan(serverId, userId));
|
||||
}
|
||||
public async Task<int> PruneUsers(string serverId, int days, bool simulate)
|
||||
{
|
||||
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||
if (days <= 0) throw new ArgumentOutOfRangeException(nameof(days));
|
||||
|
||||
PruneUsersResponse response;
|
||||
if (simulate)
|
||||
response = await _rest.Get<PruneUsersResponse>(Endpoints.ServerPrune(serverId, days));
|
||||
else
|
||||
response = await _rest.Post<PruneUsersResponse>(Endpoints.ServerPrune(serverId, days));
|
||||
return response.Pruned ?? 0;
|
||||
}
|
||||
|
||||
//Messages
|
||||
public Task<SendMessageResponse> SendMessage(string channelId, string message, IEnumerable<string> mentionedUserIds = null, string nonce = null, bool isTTS = false)
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Discord
|
||||
if (user.Server == null) throw new ArgumentException("Unable to ban a user in a private chat.");
|
||||
CheckReady();
|
||||
|
||||
return _api.Ban(user.Server.Id, user.Id);
|
||||
return _api.BanUser(user.Server.Id, user.Id);
|
||||
}
|
||||
|
||||
/// <summary> Unbans a user from the provided server. </summary>
|
||||
@@ -48,7 +48,7 @@ namespace Discord
|
||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||
CheckReady();
|
||||
|
||||
try { await _api.Unban(server.Id, userId).ConfigureAwait(false); }
|
||||
try { await _api.UnbanUser(server.Id, userId).ConfigureAwait(false); }
|
||||
catch (HttpException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,6 +173,15 @@ namespace Discord
|
||||
return _api.EditUser(user.Server?.Id, user.Id, mute: mute, deaf: deaf, roles: roles.Select(x => x.Id));
|
||||
}
|
||||
|
||||
public Task<int> PruneUsers(string serverId, int days, bool simulate = false)
|
||||
{
|
||||
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||
if (days <= 0) throw new ArgumentOutOfRangeException(nameof(days));
|
||||
CheckReady();
|
||||
|
||||
return _api.PruneUsers(serverId, days, simulate);
|
||||
}
|
||||
|
||||
public Task<EditUserResponse> EditProfile(string currentPassword = "",
|
||||
string username = null, string email = null, string password = null,
|
||||
ImageType avatarType = ImageType.Png, byte[] avatar = null)
|
||||
|
||||
Reference in New Issue
Block a user