Discord.NET 分配角色

0 c# discord discord.net

我试图让我的 Discord 机器人在用户输入命令“!stream”时为其分配角色,我对 C# 和 Discord.net 编程非常陌生,尤其如此。现在我有应该在消息接收方法内分配角色的代码。这可能不是最好的方法,但我现在不太确定更好的方法。无论如何,这是代码:

IGuildUser user = (IGuildUser)arg.Author;
IRole role = ((IGuildChannel)arg.Channel).Guild.GetRole(theRoleID);
if (arg.Content == "!stream") {
    await (user as IGuildUser).AddRoleAsync(role);
}
Run Code Online (Sandbox Code Playgroud)

我已确保用户和角色都获得正确的用户和正确的角色。它还运行 if 语句,因为我在其中有输出。唯一似乎不起作用的是实际的任务。任何帮助是极大的赞赏。谢谢!

Cri*_*aru 5

如果代码端的所有内容都已正常工作,则 Discord 服务器本身可能存在权限问题。

我将用一个例子来解释:

不久前,当我尝试制定一些对我来说不起作用的审核命令时,发生了类似的事情,即使代码是正确的并且没有给出任何错误。

问题出在不和谐服务器上的角色层次结构上:基本上机器人分配的角色只能影响他下面的角色,例如截图:

不和谐的角色层次结构

您会注意到该角色的Inquisition下方有Admin一个角色。

这是一个机器人,它需要位于所有其他角色之上才能与这些用户交互,因此我建议您尝试将您的机器人提升到角色阶梯上,看看是否可以解决您的问题。