C# Discord.NET分配角色
我正试图让我的discord bot在用户输入命令“”时为其分配角色!stream“我对c#和discord.net编程非常陌生。现在我有了应该在MessageReceived方法中分配角色的代码。这可能不是最好的方法,但我现在不确定有没有更好的方法。无论如何,下面是代码:C# Discord.NET分配角色,c#,discord,discord.net,C#,Discord,Discord.net,我正试图让我的discord bot在用户输入命令“”时为其分配角色!stream“我对c#和discord.net编程非常陌生。现在我有了应该在MessageReceived方法中分配角色的代码。这可能不是最好的方法,但我现在不确定有没有更好的方法。无论如何,下面是代码: IGuildUser user = (IGuildUser)arg.Author; IRole role = ((IGuildChannel)arg.Channel).Guild.GetRole(theRoleID); if
IGuildUser user = (IGuildUser)arg.Author;
IRole role = ((IGuildChannel)arg.Channel).Guild.GetRole(theRoleID);
if (arg.Content == "!stream") {
await (user as IGuildUser).AddRoleAsync(role);
}
我已确保用户和角色都获得了正确的用户和角色。它还运行if语句,因为它里面有输出。唯一似乎不起作用的是实际的任务。非常感谢您的帮助。谢谢 Hey Solonce您添加角色的方式几乎是正确的,但是不要使用
if
s,而是使用已经添加的方式向bot添加新命令。我猜
是您的前缀,流
是您希望bot读取并相应添加角色的命令/单词。如果你的案子不是我想的,请告诉我
因此,这里是理想情况下应该如何做到这一点
ModuleBase
继承,使其看起来像公共类匹配:ModuleBase
李>
[命令(“流”)]
为bot设置所需的任何命令[Command("stream")]
public async Task RoleTask()
{
ulong roleId = 486599202093269012;
var role = Context.Guild.GetRole(roleId);
await ((SocketGuildUser) Context.User).AddRoleAsync(role);
}
在此情况下,bot(如果它有足够的权限)应该将roleId角色授予发送命令的用户。ie!流
另外,你知道,如果你要开始学习,我真的建议你看看一些很好的文档,另一个好方法是看一些例子来学习。
是我刚开始的时候用的机器人。也许你可以学习 Hey Solonce您添加角色的方式几乎是正确的,但是不要使用
if
s,而是使用已经添加的方式向bot添加新命令。我猜
是您的前缀,流
是您希望bot读取并相应添加角色的命令/单词。如果你的案子不是我想的,请告诉我
因此,这里是理想情况下应该如何做到这一点
ModuleBase
继承,使其看起来像公共类匹配:ModuleBase
李>
[命令(“流”)]
为bot设置所需的任何命令[Command("stream")]
public async Task RoleTask()
{
ulong roleId = 486599202093269012;
var role = Context.Guild.GetRole(roleId);
await ((SocketGuildUser) Context.User).AddRoleAsync(role);
}
在此情况下,bot(如果它有足够的权限)应该将roleId角色授予发送命令的用户。ie!流
另外,你知道,如果你要开始学习,我真的建议你看看一些很好的文档,另一个好方法是看一些例子来学习。
是我刚开始的时候用的机器人。也许你可以学习 如果代码端的一切都已正常工作,则Discord服务器本身可能存在权限问题 我将用一个例子来解释: 不久前,当我试图发出一些在我一生中都不起作用的缓和命令时,类似的事情发生在我身上,尽管代码是正确的,并且没有出现错误 问题是discord服务器上的角色层次结构:基本上,机器人分配的角色只能影响他下面的人,例如屏幕截图: 您会注意到在
管理员
角色的正下方有一个调查
角色
这是一个bot,它需要位于所有其他角色之上,才能与这些用户交互,因此我建议您尝试将bot向上移动到角色阶梯上,看看这是否能解决您的问题。如果代码端的所有内容都已正常工作,则Discord服务器本身可能存在权限问题 我将用一个例子来解释: 不久前,当我试图发出一些在我一生中都不起作用的缓和命令时,类似的事情发生在我身上,尽管代码是正确的,并且没有出现错误 问题是discord服务器上的角色层次结构:基本上,机器人分配的角色只能影响他下面的人,例如屏幕截图: 您会注意到在
管理员
角色的正下方有一个调查
角色
这是一个机器人,它需要在所有其他角色之上才能与这些用户交互,所以我建议你尝试将你的机器人提升到角色阶梯上,看看这是否能解决你的问题