C# 单击反应时未发布角色

C# 单击反应时未发布角色,c#,discord.net,C#,Discord.net,我的异常是user=null,但我不明白为什么?用户ID在调试器中传递 private async Task ReactionAdd(Cacheable<IUserMessage, ulong> cache, ISocketMessageChannel socketMessageChannel, SocketReaction reaction) { if (reaction.MessageId == 7713618399171

我的异常是user=null,但我不明白为什么?用户ID在调试器中传递

 private async Task ReactionAdd(Cacheable<IUserMessage, ulong> cache, ISocketMessageChannel socketMessageChannel, SocketReaction reaction)
            {
                if (reaction.MessageId == 771361839917170748)
                {
                    var emote = Emote.Parse("<:NepSmug:740928682310500412>").ToString();
    
                    if (reaction.Emote.ToString() == emote)
                    {
                        var sockettextChannel = socketMessageChannel as SocketTextChannel; 
                        
                            ulong roleid = 741342300499738715;
    
                            var role = sockettextChannel.Guild.GetRole(roleid);
                            var user = sockettextChannel.Guild.GetUser(reaction.UserId);
    
                            await user.AddRoleAsync(role);
                    }
                }
            }
private async Task reaction add(可缓存缓存缓存、ISocketMessageChannel、socketMessageChannel、SocketReaction反应)
{
如果(reaction.MessageId==771361839917170748)
{
var emote=emote.Parse(“”.ToString();
if(reaction.Emote.ToString()==Emote)
{
var sockettextChannel=socketMessageChannel作为sockettexchannel;
ulong roleid=741342300499738715;
var role=sockettextChannel.Guild.GetRole(roleid);
var user=sockettexchannel.Guild.GetUser(reaction.UserId);
等待user.AddRoleAsync(角色);
}
}
}

用户为空可能是由Discrod API最近的更改引起的。请参阅。更改导致
Guild.User
信息下载不正确

  • 首先要检查的是用户是否分配到
    Context.Guild
    (您还可以验证Discord服务器中的用户在
    Context.Guild.Users
    上是否相等)
  • 其次,您需要在Discord Bot上启用此功能

  • 用户为空可能是由于Discrod API的最新更改引起的。请参阅。更改导致
    Guild.User
    信息下载不正确

  • 首先要检查的是用户是否分配到
    Context.Guild
    (您还可以验证Discord服务器中的用户在
    Context.Guild.Users
    上是否相等)
  • 其次,您需要在Discord Bot上启用此功能