Discord.NET c# SocketUser 正在返回 null

Discord.NET c# SocketUser is returning null

我正在编写一个 c# 机器人,我正在尝试执行一个 !user @ 命令,它提供有关标记用户的信息。

这就是我获取用户 ID 的方式

public async Task Info(string user)

这就是我将其转换为数字的方式

user = user.Substring(3);
int k = user.Length;
user = user.Substring(0, k - 1);

例如:!用户<@!749020331187896410>转换为749020331187896410

这就是我为 Context.Message.Author

所做的吸引用户的工作
var client = Context.Client;
ulong id = Convert.ToUInt64(user);
var socketUser = client.GetUser(id);

我尝试在最后一行添加 as SocketUseras SocketGuildUser 但它仍然返回 null 帮助:/

您应该在 Discord Developer Console:

中启用 Server Members Intent

这应该有效

   [Command("user")]
    public async Task blizz_con(IGuildUser user)
    {
        await ReplyAsync(user.Id.ToString());
    }

或者如果您直接处理消息:

message.Author.id