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;
}
正在尝试检查用户是否拥有管理服务器权限。我已经获得了 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;
}