Example #1
0
        public async Task ModifyAsync(Action <ModifyGuildMemberParams> func)
        {
            if (func == null)
            {
                throw new NullReferenceException(nameof(func));
            }

            var args = new ModifyGuildMemberParams();

            func(args);

            bool isCurrentUser = (await Discord.GetCurrentUserAsync().ConfigureAwait(false)).Id == Id;

            if (isCurrentUser && args._nickname.IsSpecified)
            {
                var nickArgs = new ModifyCurrentUserNickParams {
                    Nickname = args._nickname.Value ?? ""
                };
                await Discord.ApiClient.ModifyMyNickAsync(Guild.Id, nickArgs).ConfigureAwait(false);

                args._nickname = Optional.Create <string>(); //Remove
            }

            if (!isCurrentUser || args._deaf.IsSpecified || args._mute.IsSpecified || args._roleIds.IsSpecified)
            {
                await Discord.ApiClient.ModifyGuildMemberAsync(Guild.Id, Id, args).ConfigureAwait(false);

                Update(args, UpdateSource.Rest);
            }
        }
Example #2
0
        public async Task <IActionResult> ModifyCurrentUserNickAsync(Snowflake guildId, [FromBody] ModifyCurrentUserNickParams args)
        {
            args.Validate();

            return(NoContent());
        }