| @@ -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; | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -601,6 +601,7 @@ | |||||
| <Compile Include="..\Discord.Net\TaskManager.cs"> | <Compile Include="..\Discord.Net\TaskManager.cs"> | ||||
| <Link>TaskManager.cs</Link> | <Link>TaskManager.cs</Link> | ||||
| </Compile> | </Compile> | ||||
| <Compile Include="API\Client\Rest\UpdateOwnNick.cs" /> | |||||
| <Compile Include="Properties\AssemblyInfo.cs" /> | <Compile Include="Properties\AssemblyInfo.cs" /> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| <ItemGroup> | <ItemGroup> | ||||
| @@ -258,6 +258,15 @@ namespace Discord | |||||
| .Distinct() | .Distinct() | ||||
| .ToArray(); | .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) | var request = new UpdateMemberRequest(Server.Id, Id) | ||||
| { | { | ||||
| IsMuted = isMuted ?? IsServerMuted, | IsMuted = isMuted ?? IsServerMuted, | ||||
| @@ -266,7 +275,8 @@ namespace Discord | |||||
| RoleIds = roleIds, | RoleIds = roleIds, | ||||
| Nickname = nickname ?? Nickname | Nickname = nickname ?? Nickname | ||||
| }; | }; | ||||
| return Client.ClientAPI.Send(request); | |||||
| tasks.Add(Client.ClientAPI.Send(request)); | |||||
| return Task.WhenAll(tasks); | |||||
| } | } | ||||
| public Task Kick() | public Task Kick() | ||||