Browse Source

Made changes per fox's suggestion: Change->Modify. New Modify overload.

pull/540/head
Emzi0767 8 years ago
parent
commit
1fbf8253e1
3 changed files with 27 additions and 11 deletions
  1. +5
    -1
      src/Discord.Net.Core/Entities/Users/IGuildUser.cs
  2. +11
    -5
      src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
  3. +11
    -5
      src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs

+ 5
- 1
src/Discord.Net.Core/Entities/Users/IGuildUser.cs View File

@@ -38,6 +38,10 @@ namespace Discord
///<summary> Removes roles from this user in this guild. </summary> ///<summary> Removes roles from this user in this guild. </summary>
Task RemoveRolesAsync(IEnumerable<IRole> roles); Task RemoveRolesAsync(IEnumerable<IRole> roles);
///<summary> Adds and removes roles from this user in this guild. </summary> ///<summary> Adds and removes roles from this user in this guild. </summary>
Task ChangeRolesAsync(IEnumerable<IRole> add = null, IEnumerable<IRole> remove = null);
Task ModifyRolesAsync(IEnumerable<IRole> add = null, IEnumerable<IRole> remove = null);
///<summary> Replaces roles from this user in this guild. </summary>
Task ModifyRolesAsync(params IRole[] roles);
///<summary> Replaces roles from this user in this guild. </summary>
Task ModifyRolesAsync(IEnumerable<IRole> roles);
} }
} }

+ 11
- 5
src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs View File

@@ -83,14 +83,14 @@ namespace Discord.Rest
UpdateRoles(args.RoleIds.Value.ToArray()); UpdateRoles(args.RoleIds.Value.ToArray());
} }
public Task AddRolesAsync(params IRole[] roles) public Task AddRolesAsync(params IRole[] roles)
=> ChangeRolesAsync(add: roles);
=> ModifyRolesAsync(add: roles);
public Task AddRolesAsync(IEnumerable<IRole> roles) public Task AddRolesAsync(IEnumerable<IRole> roles)
=> ChangeRolesAsync(add: roles);
=> ModifyRolesAsync(add: roles);
public Task RemoveRolesAsync(params IRole[] roles) public Task RemoveRolesAsync(params IRole[] roles)
=> ChangeRolesAsync(remove: roles);
=> ModifyRolesAsync(remove: roles);
public Task RemoveRolesAsync(IEnumerable<IRole> roles) public Task RemoveRolesAsync(IEnumerable<IRole> roles)
=> ChangeRolesAsync(remove: roles);
public async Task ChangeRolesAsync(IEnumerable<IRole> add = null, IEnumerable<IRole> remove = null)
=> ModifyRolesAsync(remove: roles);
public async Task ModifyRolesAsync(IEnumerable<IRole> add = null, IEnumerable<IRole> remove = null)
{ {
IEnumerable<ulong> roleIds = RoleIds; IEnumerable<ulong> roleIds = RoleIds;
if (remove != null) if (remove != null)
@@ -99,6 +99,12 @@ namespace Discord.Rest
roleIds = roleIds.Concat(add.Select(x => x.Id)); roleIds = roleIds.Concat(add.Select(x => x.Id));
await ModifyAsync(x => x.RoleIds = roleIds.ToArray()).ConfigureAwait(false); await ModifyAsync(x => x.RoleIds = roleIds.ToArray()).ConfigureAwait(false);
} }
///<summary> Replaces roles from this user in this guild. </summary>
Task ModifyRolesAsync(params IRole[] roles)
=> ModifyRolesAsync(roles as IEnumerable<IRole>);
///<summary> Replaces roles from this user in this guild. </summary>
Task ModifyRolesAsync(IEnumerable<IRole> roles)
=> ModifyAsync(x => x.Roles = new Optional<IEnumerable<IRole>>(roles));
public Task KickAsync(RequestOptions options = null) public Task KickAsync(RequestOptions options = null)
=> UserHelper.KickAsync(this, Discord, options); => UserHelper.KickAsync(this, Discord, options);




+ 11
- 5
src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs View File

@@ -108,14 +108,14 @@ namespace Discord.WebSocket
public Task KickAsync(RequestOptions options = null) public Task KickAsync(RequestOptions options = null)
=> UserHelper.KickAsync(this, Discord, options); => UserHelper.KickAsync(this, Discord, options);
public Task AddRolesAsync(params IRole[] roles) public Task AddRolesAsync(params IRole[] roles)
=> ChangeRolesAsync(add: roles);
=> ModifyRolesAsync(add: roles);
public Task AddRolesAsync(IEnumerable<IRole> roles) public Task AddRolesAsync(IEnumerable<IRole> roles)
=> ChangeRolesAsync(add: roles);
=> ModifyRolesAsync(add: roles);
public Task RemoveRolesAsync(params IRole[] roles) public Task RemoveRolesAsync(params IRole[] roles)
=> ChangeRolesAsync(remove: roles);
=> ModifyRolesAsync(remove: roles);
public Task RemoveRolesAsync(IEnumerable<IRole> roles) public Task RemoveRolesAsync(IEnumerable<IRole> roles)
=> ChangeRolesAsync(remove: roles);
public async Task ChangeRolesAsync(IEnumerable<IRole> add = null, IEnumerable<IRole> remove = null)
=> ModifyRolesAsync(remove: roles);
public async Task ModifyRolesAsync(IEnumerable<IRole> add = null, IEnumerable<IRole> remove = null)
{ {
IEnumerable<ulong> roleIds = _roleIds; IEnumerable<ulong> roleIds = _roleIds;
if (remove != null) if (remove != null)
@@ -124,6 +124,12 @@ namespace Discord.WebSocket
roleIds = roleIds.Concat(add.Select(x => x.Id)); roleIds = roleIds.Concat(add.Select(x => x.Id));
await ModifyAsync(x => x.RoleIds = roleIds.ToArray()).ConfigureAwait(false); await ModifyAsync(x => x.RoleIds = roleIds.ToArray()).ConfigureAwait(false);
} }
///<summary> Replaces roles from this user in this guild. </summary>
Task ModifyRolesAsync(params IRole[] roles)
=> ModifyRolesAsync(roles as IEnumerable<IRole>);
///<summary> Replaces roles from this user in this guild. </summary>
Task ModifyRolesAsync(IEnumerable<IRole> roles)
=> ModifyAsync(x => x.Roles = new Optional<IEnumerable<IRole>>(roles));


public ChannelPermissions GetPermissions(IGuildChannel channel) public ChannelPermissions GetPermissions(IGuildChannel channel)
=> new ChannelPermissions(Permissions.ResolveChannel(Guild, this, channel, GuildPermissions.RawValue)); => new ChannelPermissions(Permissions.ResolveChannel(Guild, this, channel, GuildPermissions.RawValue));


Loading…
Cancel
Save