Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过C#中的Discord Bot授予角色?_C#_Bots_Discord - Fatal编程技术网

通过C#中的Discord Bot授予角色?

通过C#中的Discord Bot授予角色?,c#,bots,discord,C#,Bots,Discord,我发现无法使用我的机器人将用户的角色/等级设置为“PLEB” 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用System.Threading.Tasks; 使用不和; 使用不协调命令; 名称空间Spoxbot.Modules { 公共类Mod:ModuleBase { [命令(“杰夫”)] 公共异步任务geoff([余数]字符串用户) { var role=Context.Guild.Roles.FirstOrDefau

我发现无法使用我的机器人将用户的角色/等级设置为“PLEB”

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用不和;
使用不协调命令;
名称空间Spoxbot.Modules
{
公共类Mod:ModuleBase
{
[命令(“杰夫”)]
公共异步任务geoff([余数]字符串用户)
{
var role=Context.Guild.Roles.FirstOrDefault(x=>x.Name==“PLEB”);
wait(用户为IGuildUser).AddRoleAsync(角色);
}
}
}
我想要发生的是,每当用户键入!geoff,它给了他们“PLEB”的用户


此bot具有管理员权限。

当前,您的命令旨在为用户提供角色,该用户必须包含在命令中

!geoff insertuseridhere
正如您的问题所表明的,您希望每个键入
的用户!geoff
接收排名

要实现这一点,可以在命令中使用上下文

[Command("geoff")]
public async Task geoff()
{
    var role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "PLEB");
    await (context.User as IGuildUser).AddRoleAsync(role);
}
编辑 根据你的评论,你似乎希望它通过提及的方式起作用

为此,您可以使用IUser

[Command("geoff")]
public async Task geoff(IUser user)
{
    var role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "PLEB");
    await (user as IGuildUser).AddRoleAsync(role);
}

我希望它更像:!geoff@juan,因此它会在命令后将掷骰分配给该人。
[Command("geoff")]
public async Task geoff(IUser user)
{
    var role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "PLEB");
    await (user as IGuildUser).AddRoleAsync(role);
}