检查用户是否使用GuildMemberUpdated更改了他/她的昵称

时间:2017-10-14 20:39:16

标签: c# discord.net

所以,在我的CommandHandler中,我创建了这个:

//other CommandHandler stuff
_client.GuildMemberUpdated += UserNickChanged;
}

public async Task UserNickChanged(SocketGuildUser before, SocketGuildUser after)
{
    if (!before.Nickname.Equals(after.Nickname))
    {
        var channel = _client.GetChannel(123123123123) as SocketTextChannel;

        await channel.SendMessageAsync("User '" + before.Username + "' changed his/her nick to '" + after.Username + "' .");
    }
    else
    {
        return;
    }
}

我想要做的是检查用户是否更改了他的昵称,检查是否是更改的昵称,然后说用户“X”将他的昵称改为“Y”。但是,谁会想到,它不起作用。如果我删除了if - 子句,它就可以工作,但即便如此,before.Nicknameafter.Nickname也是一样的。我觉得我错误地使用了SocketGuildUser before, SocketGuildUser after。如果有人可以帮助我,我会很高兴。

1 个答案:

答案 0 :(得分:0)

我自己进行了测试,after昵称似乎相同,除非你放after.Nickname.ToString()

if (!before.Nickname.Equals(after.Nickname.ToString()))

不知道为什么会发生这种情况,也许是API的错误。