Discord.Net - 检查用户是否有管理服务器权限

Discord.Net - Check if User has ManageServer permission

正在尝试检查用户是否拥有管理服务器权限。我已经获得了 DiscordClientId 和 DiscordGuildId,下面的内容旨在获取当前用户的权限,我可以从那里指定我正在寻找的权限,但我无法弄清楚

var user = userClientId;
var server = guildId;
var userServerPermissions = server.GetPermissions(user);

编辑:当用户通过 Oauth2 登录时,我正在使用 HttpWebRequest 为用户获取 DiscordClientId 和 GuildId,然后拆分出获取 ID 所需的各种数据。

我强烈建议您考虑使用库来执行此操作。我一直使用的是 Discord.NET,你在问题中用 discord.net 标签提到的库。我知道的另一个 C# discord 库是 DSharpPlus,但我从未尝试过。

对于 Discord.NET 我建议使用 nightly/preview 版本,因为它们包含最近的 Discord 意图更改。通过将 https://www.myget.org/F/discord-net/api/v3/index.json 添加到您的 Nuget 包源来使用它们。

库会为您很好地处理一切,这意味着您永远不需要直接向 Discord 发送请求或从 Discord 接收请求。阅读 Discord.NET 入门指南 here

这是来自 Discord.NET 的代码,它将确定某个公会中的某个用户是否具有 ManageServer 权限:

public bool HasManageServerPermission(SocketGuildUser user)
{
    return user.GuildPermissions.ManageGuild;
}