Browse Source

Shove in support for changing own nick (through `User.Edit(nickname:))`

pull/57/head
Lirusaito 9 years ago
parent
commit
d1f3dfe26a
3 changed files with 35 additions and 1 deletions
  1. +23
    -0
      src/Discord.Net.Net45/API/Client/Rest/UpdateOwnNick.cs
  2. +1
    -0
      src/Discord.Net.Net45/Discord.Net.csproj
  3. +11
    -1
      src/Discord.Net/Models/User.cs

+ 23
- 0
src/Discord.Net.Net45/API/Client/Rest/UpdateOwnNick.cs View File

@@ -0,0 +1,23 @@
using Newtonsoft.Json;

namespace Discord.API.Client.Rest
{
[JsonObject(MemberSerialization.OptIn)]
public class UpdateOwnNick : IRestRequest
{
string IRestRequest.Method => "PATCH";
string IRestRequest.Endpoint => $"guilds/{GuildId}/members/@me/nick";
object IRestRequest.Payload => this;

public ulong GuildId { get; set; }

[JsonProperty("nick")]
public string Nickname { get; set; }

public UpdateOwnNick(ulong guildId, string nickname)
{
GuildId = guildId;
Nickname = nickname;
}
}
}

+ 1
- 0
src/Discord.Net.Net45/Discord.Net.csproj View File

@@ -601,6 +601,7 @@
<Compile Include="..\Discord.Net\TaskManager.cs">
<Link>TaskManager.cs</Link>
</Compile>
<Compile Include="API\Client\Rest\UpdateOwnNick.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>


+ 11
- 1
src/Discord.Net/Models/User.cs View File

@@ -258,6 +258,15 @@ namespace Discord
.Distinct()
.ToArray();

var tasks = new List<Task>();
if (nickname != null && this == Server.CurrentUser)
{
var task = Client.ClientAPI.Send(new UpdateOwnNick(Server.Id, nickname));
if (isMuted == null && isDeafened == null && voiceChannel == null && roles == null)
return task;
tasks.Add(task);
nickname = null;
}
var request = new UpdateMemberRequest(Server.Id, Id)
{
IsMuted = isMuted ?? IsServerMuted,
@@ -266,7 +275,8 @@ namespace Discord
RoleIds = roleIds,
Nickname = nickname ?? Nickname
};
return Client.ClientAPI.Send(request);
tasks.Add(Client.ClientAPI.Send(request));
return Task.WhenAll(tasks);
}
public Task Kick()


Loading…
Cancel
Save