我想为我的服务器创建一个机器人,当用户输入“!setlol(他们的名字)”时,它将创建一个角色并将其分配给他们。该角色会说“LoL:(他们的名字)”。我一直在尝试查找有关如何执行此操作的文档,但每个文档都涵盖了如何分配已存在的角色。
我尝试自己解决这个问题,但我似乎做不到。
var user = Context.User;
var roles = Context.Guild.Roles;
var role = Context.Guild.CreateRoleAsync($"LoL: {name}");
var exRole = roles.FirstOrDefault(x => x.Guild.Name == $"{name}");
if (user == null)
{
await Context.Channel.SendMessageAsync("User is null u dumb fuck");
}
else
{
await Context.Channel.SendMessageAsync("What u worrying about twat?!");
}
if (user != null && exRole != null)
{
await Context.Channel.SendMessageAsync("Work please");
await (user as IGuildUser).AddRoleAsync(exRole);
}
else
{
await Context.Channel.SendMessageAsync("User `enter code here`or role is null");
}
await Context.Channel.SendMessageAsync($"Role {name} was added to your list of roles!");
Discord.Net 文档 - CreateRoleAsync
//Context assumes that you are in a command module
//user assumes your command accepts an IGuildUser as a parameter
var role = await Context.Guild.CreateRoleAsync($"LoL: {user.UserName}");
await user.AddRoleAsync(role);