您好,最近我想创建一个可以修改角色权限的命令。
例如:
prefix.modrole @role add/remove ban kick mute
因此,如果我调查服务器角色,我应该看到已添加/删除了这些特定角色。
这是我试过的东西:
switch(perms){
case "ban":
var currentPerms=role.Permissions;
currentPerms.Modify(banMembers:true);
try{
await role.ModifyAsync(rp=>rp.Permissions=currentPerms);
}catch(Exception e)
{
//handeling error code here
}
.
.
但是当我在服务器中查找时,角色权限没有改变。它并没有给我任何例外。 机器人和用户有权管理角色。
编辑: 尝试这样做:
await role.ModifyAsync(rp=>rp.Permissions=rp.Permissions.Modify(banMembers:true));
但是如果烫发超过1个
例如:
prefix.command @role ban mute admin
仅最后一个烫发添加到@role。
答案 0 :(得分:1)
正如您所提到的,您可以使用以下更改角色权限:
await role.ModifyAsync(rp=>rp.Permissions=rp.Permissions.Modify(banMembers:true));
为多个权限执行此操作非常简单:
await role.ModifyAsync(rp => rp.Permissions = rp.Permissions.Modify(banMembers: true, kickMembers: true));
只需根据需要添加任意数量的权限,以逗号分隔。