Discord.Net GetUser 按 ID 返回 null

Bra*_*yXS 4 c# discord discord.net

我正在使用 Discord.net 为 Discord 编写一个机器人。我需要IGuild通过 id 获取用户,所以我使用:

var user = await guild.GetUserAsync(id, CacheMode.AllowDownload);
Run Code Online (Sandbox Code Playgroud)

如果已缓存,这应该让用户获得,如果没有,则下载它。但用户每次都是空的。

我知道id是正确的。有没有正确的方法来做到这一点?

服务器有超过 1k 名成员,因此下载它们DownloadUsersAsync需要很长时间。

小智 5

参加聚会迟到了。

您的问题是由 Discord 在其 API 上实施的新网关意图的直接后果。

不用担心,这是一个简单的解决方法。只需访问https://discord.com/developers/applications,选择您的应用程序,然后进入机器人部分。然后你正在寻找这个。只需启用Server Members Intent即可。

如果一切按计划进行,这应该可以透明地解决您的问题,甚至不需要重新编译。除此之外,请随时再次询问。