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 ServerBan(string serverId, string userId) => $"guilds/{serverId}/bans/{userId}";
|
||||||
public static string ServerRoles(string serverId) => $"guilds/{serverId}/roles";
|
public static string ServerRoles(string serverId) => $"guilds/{serverId}/roles";
|
||||||
public static string ServerRole(string serverId, string roleId) => $"guilds/{serverId}/roles/{roleId}";
|
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 const string Invites = "invite";
|
||||||
public static string Invite(string inviteId) => $"invite/{inviteId}";
|
public static string Invite(string inviteId) => $"invite/{inviteId}";
|
||||||
|
|||||||
@@ -82,6 +82,12 @@ namespace Discord.API
|
|||||||
public IEnumerable<string> Roles;
|
public IEnumerable<string> Roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class PruneUsersResponse
|
||||||
|
{
|
||||||
|
[JsonProperty("pruned")]
|
||||||
|
public int? Pruned;
|
||||||
|
}
|
||||||
|
|
||||||
//Events
|
//Events
|
||||||
internal sealed class MemberAddEvent : MemberInfo { }
|
internal sealed class MemberAddEvent : MemberInfo { }
|
||||||
internal sealed class MemberUpdateEvent : MemberInfo { }
|
internal sealed class MemberUpdateEvent : MemberInfo { }
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ namespace Discord
|
|||||||
return _rest.Delete(Endpoints.Invite(inviteId));
|
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)
|
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));
|
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||||
@@ -145,27 +145,39 @@ namespace Discord
|
|||||||
var request = new EditMemberRequest { Mute = mute, Deaf = deaf, Roles = roles };
|
var request = new EditMemberRequest { Mute = mute, Deaf = deaf, Roles = roles };
|
||||||
return _rest.Patch(Endpoints.ServerMember(serverId, userId), request);
|
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 (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||||
|
|
||||||
return _rest.Delete(Endpoints.ServerMember(serverId, 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 (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||||
|
|
||||||
return _rest.Put(Endpoints.ServerBan(serverId, 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 (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||||
|
|
||||||
return _rest.Delete(Endpoints.ServerBan(serverId, 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
|
//Messages
|
||||||
public Task<SendMessageResponse> SendMessage(string channelId, string message, IEnumerable<string> mentionedUserIds = null, string nonce = null, bool isTTS = false)
|
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.");
|
if (user.Server == null) throw new ArgumentException("Unable to ban a user in a private chat.");
|
||||||
CheckReady();
|
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>
|
/// <summary> Unbans a user from the provided server. </summary>
|
||||||
@@ -48,7 +48,7 @@ namespace Discord
|
|||||||
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
if (userId == null) throw new ArgumentNullException(nameof(userId));
|
||||||
CheckReady();
|
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) { }
|
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));
|
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 = "",
|
public Task<EditUserResponse> EditProfile(string currentPassword = "",
|
||||||
string username = null, string email = null, string password = null,
|
string username = null, string email = null, string password = null,
|
||||||
ImageType avatarType = ImageType.Png, byte[] avatar = null)
|
ImageType avatarType = ImageType.Png, byte[] avatar = null)
|
||||||
|
|||||||
Reference in New Issue
Block a user