我正在使用 DSharpPlus 构建 Discord 机器人。我想要一些命令,例如
!status
对每个人/所有角色都可用。但我希望其他命令,如 !start
仅限于某些角色/用户。
我发现这篇文章讨论了一点。如果我使用
AddRoleAsync
,它会保存对Discord服务器的权限吗?如何让机器人加入服务器但只允许某些角色/用户使用某些命令?另外,我可以限制机器人只加入某些频道吗?像管理员/模组频道?
谢谢
如果你使用 Dsharpplus.CommandsNext.Attributes 这实际上非常简单!
您可以为您的代码分配一个属性,如下所示,这需要您拥有 Discord 管理员权限才能使用此命令。
[Command("greet")]
[RequirePermissions(DSharpPlus.Permissions.Administrator)]
public async Task GreetCommand(CommandContext ctx)
{
await ctx.RespondAsync("Greetings! Thank you for executing me!");
}
DSharpPlus下有很多属性。权限可以用来自定义控制谁可以使用命令,但是注意
All
和None
是字面意思,你要么需要所有的权限(服务器所有者) 或没有权限。