| @@ -113,8 +113,15 @@ namespace Discord | |||||
| /// A task that represents the asynchronous modification operation. | /// A task that represents the asynchronous modification operation. | ||||
| /// </returns> | /// </returns> | ||||
| Task ModifyAsync(Action<GuildUserProperties> func, RequestOptions options = null); | Task ModifyAsync(Action<GuildUserProperties> func, RequestOptions options = null); | ||||
| //TODO add docs | |||||
| Task AddRoleAsync(ulong id, RequestOptions options = null); | |||||
| /// <summary> | |||||
| /// Adds the specified role to this user in the guild. | |||||
| /// </summary> | |||||
| /// <param name="roleId">The role to be added to the user.</param> | |||||
| /// <param name="options">The options to be used when sending the request.</param> | |||||
| /// <returns> | |||||
| /// A task that represents the asynchronous role addition operation. | |||||
| /// </returns> | |||||
| Task AddRoleAsync(ulong roleId, RequestOptions options = null); | |||||
| /// <summary> | /// <summary> | ||||
| /// Adds the specified role to this user in the guild. | /// Adds the specified role to this user in the guild. | ||||
| /// </summary> | /// </summary> | ||||
| @@ -124,7 +131,14 @@ namespace Discord | |||||
| /// A task that represents the asynchronous role addition operation. | /// A task that represents the asynchronous role addition operation. | ||||
| /// </returns> | /// </returns> | ||||
| Task AddRoleAsync(IRole role, RequestOptions options = null); | Task AddRoleAsync(IRole role, RequestOptions options = null); | ||||
| //TODO: Add docs | |||||
| /// <summary> | |||||
| /// Adds the specified <paramref name="roleIds"/> to this user in the guild. | |||||
| /// </summary> | |||||
| /// <param name="roleIds">The roles to be added to the user.</param> | |||||
| /// <param name="options">The options to be used when sending the request.</param> | |||||
| /// <returns> | |||||
| /// A task that represents the asynchronous role addition operation. | |||||
| /// </returns> | |||||
| Task AddRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null); | Task AddRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null); | ||||
| /// <summary> | /// <summary> | ||||
| /// Adds the specified <paramref name="roles"/> to this user in the guild. | /// Adds the specified <paramref name="roles"/> to this user in the guild. | ||||
| @@ -135,8 +149,15 @@ namespace Discord | |||||
| /// A task that represents the asynchronous role addition operation. | /// A task that represents the asynchronous role addition operation. | ||||
| /// </returns> | /// </returns> | ||||
| Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null); | Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null); | ||||
| //TODO add docs | |||||
| Task RemoveRoleAsync(ulong id, RequestOptions options = null); | |||||
| /// <summary> | |||||
| /// Removes the specified <paramref name="roleId"/> from this user in the guild. | |||||
| /// </summary> | |||||
| /// <param name="roleId">The role to be removed from the user.</param> | |||||
| /// <param name="options">The options to be used when sending the request.</param> | |||||
| /// <returns> | |||||
| /// A task that represents the asynchronous role removal operation. | |||||
| /// </returns> | |||||
| Task RemoveRoleAsync(ulong roleId, RequestOptions options = null); | |||||
| /// <summary> | /// <summary> | ||||
| /// Removes the specified <paramref name="role"/> from this user in the guild. | /// Removes the specified <paramref name="role"/> from this user in the guild. | ||||
| /// </summary> | /// </summary> | ||||
| @@ -146,7 +167,14 @@ namespace Discord | |||||
| /// A task that represents the asynchronous role removal operation. | /// A task that represents the asynchronous role removal operation. | ||||
| /// </returns> | /// </returns> | ||||
| Task RemoveRoleAsync(IRole role, RequestOptions options = null); | Task RemoveRoleAsync(IRole role, RequestOptions options = null); | ||||
| //TODO: Add docs | |||||
| /// <summary> | |||||
| /// Removes the specified <paramref name="roleIds"/> from this user in the guild. | |||||
| /// </summary> | |||||
| /// <param name="roleIds">The roles to be removed from the user.</param> | |||||
| /// <param name="options">The options to be used when sending the request.</param> | |||||
| /// <returns> | |||||
| /// A task that represents the asynchronous role removal operation. | |||||
| /// </returns> | |||||
| Task RemoveRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null); | Task RemoveRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null); | ||||
| /// <summary> | /// <summary> | ||||
| /// Removes the specified <paramref name="roles"/> from this user in the guild. | /// Removes the specified <paramref name="roles"/> from this user in the guild. | ||||
| @@ -113,28 +113,28 @@ namespace Discord.Rest | |||||
| => UserHelper.KickAsync(this, Discord, reason, options); | => UserHelper.KickAsync(this, Discord, reason, options); | ||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRoleAsync(ulong roleId, RequestOptions options = null) | public Task AddRoleAsync(ulong roleId, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => AddRolesAsync(new[] { roleId }, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRoleAsync(IRole role, RequestOptions options = null) | public Task AddRoleAsync(IRole role, RequestOptions options = null) | ||||
| => AddRolesAsync(new[] { role }, options); | |||||
| => AddRoleAsync(role.Id, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | public Task AddRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => UserHelper.AddRolesAsync(this, Discord, roleIds, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | public Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | ||||
| => UserHelper.AddRolesAsync(this, Discord, roles, options); | |||||
| => AddRolesAsync(roles.Select(x => x.Id), options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRoleAsync(ulong roleId, RequestOptions options = null) | public Task RemoveRoleAsync(ulong roleId, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => RemoveRolesAsync(new[] { roleId }, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRoleAsync(IRole role, RequestOptions options = null) | public Task RemoveRoleAsync(IRole role, RequestOptions options = null) | ||||
| => RemoveRolesAsync(new[] { role }, options); | |||||
| => RemoveRoleAsync(role.Id, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | public Task RemoveRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => UserHelper.RemoveRolesAsync(this, Discord, roleIds, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | public Task RemoveRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | ||||
| => UserHelper.RemoveRolesAsync(this, Discord, roles, options); | |||||
| => RemoveRolesAsync(roles.Select(x => x.Id)); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| /// <exception cref="InvalidOperationException">Resolving permissions requires the parent guild to be downloaded.</exception> | /// <exception cref="InvalidOperationException">Resolving permissions requires the parent guild to be downloaded.</exception> | ||||
| @@ -73,16 +73,16 @@ namespace Discord.Rest | |||||
| return RestDMChannel.Create(client, await client.ApiClient.CreateDMChannelAsync(args, options).ConfigureAwait(false)); | return RestDMChannel.Create(client, await client.ApiClient.CreateDMChannelAsync(args, options).ConfigureAwait(false)); | ||||
| } | } | ||||
| public static async Task AddRolesAsync(IGuildUser user, BaseDiscordClient client, IEnumerable<IRole> roles, RequestOptions options) | |||||
| public static async Task AddRolesAsync(IGuildUser user, BaseDiscordClient client, IEnumerable<ulong> roleIds, RequestOptions options) | |||||
| { | { | ||||
| foreach (var role in roles) | |||||
| await client.ApiClient.AddRoleAsync(user.Guild.Id, user.Id, role.Id, options).ConfigureAwait(false); | |||||
| foreach (var roleId in roleIds) | |||||
| await client.ApiClient.AddRoleAsync(user.Guild.Id, user.Id, roleId, options).ConfigureAwait(false); | |||||
| } | } | ||||
| public static async Task RemoveRolesAsync(IGuildUser user, BaseDiscordClient client, IEnumerable<IRole> roles, RequestOptions options) | |||||
| public static async Task RemoveRolesAsync(IGuildUser user, BaseDiscordClient client, IEnumerable<ulong> roleIds, RequestOptions options) | |||||
| { | { | ||||
| foreach (var role in roles) | |||||
| await client.ApiClient.RemoveRoleAsync(user.Guild.Id, user.Id, role.Id, options).ConfigureAwait(false); | |||||
| foreach (var roleId in roleIds) | |||||
| await client.ApiClient.RemoveRoleAsync(user.Guild.Id, user.Id, roleId, options).ConfigureAwait(false); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -178,28 +178,28 @@ namespace Discord.WebSocket | |||||
| => UserHelper.KickAsync(this, Discord, reason, options); | => UserHelper.KickAsync(this, Discord, reason, options); | ||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRoleAsync(ulong roleId, RequestOptions options = null) | public Task AddRoleAsync(ulong roleId, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => AddRolesAsync(new[] { roleId }, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRoleAsync(IRole role, RequestOptions options = null) | public Task AddRoleAsync(IRole role, RequestOptions options = null) | ||||
| => AddRolesAsync(new[] { role }, options); | |||||
| => AddRoleAsync(role.Id, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | public Task AddRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => UserHelper.AddRolesAsync(this, Discord, roleIds, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | public Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | ||||
| => UserHelper.AddRolesAsync(this, Discord, roles, options); | |||||
| => AddRolesAsync(roles.Select(x => x.Id), options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRoleAsync(ulong roleId, RequestOptions options = null) | public Task RemoveRoleAsync(ulong roleId, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => RemoveRolesAsync(new[] { roleId }, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRoleAsync(IRole role, RequestOptions options = null) | public Task RemoveRoleAsync(IRole role, RequestOptions options = null) | ||||
| => RemoveRolesAsync(new[] { role }, options); | |||||
| => RemoveRoleAsync(role.Id, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | public Task RemoveRolesAsync(IEnumerable<ulong> roleIds, RequestOptions options = null) | ||||
| => throw new NotImplementedException(); | |||||
| => UserHelper.RemoveRolesAsync(this, Discord, roleIds, options); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public Task RemoveRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | public Task RemoveRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null) | ||||
| => UserHelper.RemoveRolesAsync(this, Discord, roles, options); | |||||
| => RemoveRolesAsync(roles.Select(x => x.Id)); | |||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public ChannelPermissions GetPermissions(IGuildChannel channel) | public ChannelPermissions GetPermissions(IGuildChannel channel) | ||||