C# “分配角色”命令无法处理包含多个单词的角色
因此,这可以向其他用户添加角色,但如果角色有两个单词,则无法工作C# “分配角色”命令无法处理包含多个单词的角色,c#,.net,discord.net,C#,.net,Discord.net,因此,这可以向其他用户添加角色,但如果角色有两个单词,则无法工作 { await Context.Channel.SendMessageAsync($"User already has this role"); } else { Context.Guild.Roles.FirstOrDe
{
await Context.Channel.SendMessageAsync($"User already has this role");
}
else
{
Context.Guild.Roles.FirstOrDefault(x => x.Mention == "RoleName");
await (user as IGuildUser).AddRoleAsync(role);
await Context.Channel.SendMessageAsync($"{user.Mention} has been assigned {role}");
}
Context.Guild.Roles.FirstOrDefault(x=>x.title==“RoleName”)
首先,您可能忘记为操作的返回结果分配role
(或者您没有正确复制粘贴该部分。) 应该是
role = Context.Guild.Roles.FirstOrDefault(x => x.Mention == "RoleName")
您试图将角色名称与角色名称进行比较。
您应该与角色的属性进行比较,如下所示:
role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "RoleName");
role = Context.Guild.Roles.FirstOrDefault(x => x.Id == roleID);
role = Context.Guild.GetRole(roleId);
或者,您也可以与角色的ID进行比较,如下所示:
role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "RoleName");
role = Context.Guild.Roles.FirstOrDefault(x => x.Id == roleID);
role = Context.Guild.GetRole(roleId);
您只需使用帮会的函数
,就可以进一步了解这一点,如下所示:
role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "RoleName");
role = Context.Guild.Roles.FirstOrDefault(x => x.Id == roleID);
role = Context.Guild.GetRole(roleId);
当角色有多个单词时,哪个部分不起作用?在任何情况下,您都不应该比较角色提及(
x.title
)。您可以比较角色名称或角色id。我发现我只需要将剩余部分添加到任务中