Browse Source

Per Volt: reimplemented new endpoints

pull/540/head
Emzi0767 8 years ago
parent
commit
8c6354856f
3 changed files with 16 additions and 60 deletions
  1. +4
    -14
      src/Discord.Net.Core/Entities/Users/IGuildUser.cs
  2. +6
    -23
      src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
  3. +6
    -23
      src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs

+ 4
- 14
src/Discord.Net.Core/Entities/Users/IGuildUser.cs View File

@@ -29,19 +29,9 @@ namespace Discord
/// <summary> Modifies this user's properties in this guild. </summary>
Task ModifyAsync(Action<GuildUserProperties> func, RequestOptions options = null);

///<summary> Adds roles to this user in this guild. </summary>
Task AddRolesAsync(params IRole[] roles);
///<summary> Adds roles to this user in this guild. </summary>
Task AddRolesAsync(IEnumerable<IRole> roles);
///<summary> Removes roles from this user in this guild. </summary>
Task RemoveRolesAsync(params IRole[] roles);
///<summary> Removes roles from this user in this guild. </summary>
Task RemoveRolesAsync(IEnumerable<IRole> roles);
///<summary> Adds and removes roles from this user in this guild. </summary>
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);
/// <summary> Adds roles to this user in this guild. </summary>
Task AddRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null);
/// <summary> Removes roles from this user in this guild. </summary>
Task RemoveRolesAsync(IEnumerable<IRole> roles, RequestOptions options = null);
}
}

+ 6
- 23
src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs View File

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



+ 6
- 23
src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs View File

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

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


Loading…
Cancel
Save