mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-11 06:24:49 +08:00
Improve PermissionCommand.grantedPermissions, close #217
This commit is contained in:
parent
6ecfd34ff5
commit
954b59b926
@ -32,6 +32,7 @@ import net.mamoe.mirai.console.internal.permission.BuiltInPermissionService
|
||||
import net.mamoe.mirai.console.internal.plugin.PluginManagerImpl
|
||||
import net.mamoe.mirai.console.internal.util.runIgnoreException
|
||||
import net.mamoe.mirai.console.permission.Permission
|
||||
import net.mamoe.mirai.console.permission.Permission.Companion.parentsWithSelf
|
||||
import net.mamoe.mirai.console.permission.PermissionService
|
||||
import net.mamoe.mirai.console.permission.PermissionService.Companion.cancel
|
||||
import net.mamoe.mirai.console.permission.PermissionService.Companion.findCorrespondingPermissionOrFail
|
||||
@ -220,10 +221,20 @@ public object BuiltInCommands {
|
||||
@SubCommand("permittedPermissions", "pp", "grantedPermissions", "gp")
|
||||
public suspend fun CommandSender.permittedPermissions(
|
||||
@Name("被许可人 ID") target: PermitteeId,
|
||||
@Name("包括重复") all: Boolean = false,
|
||||
) {
|
||||
val grantedPermissions = target.getPermittedPermissions()
|
||||
var grantedPermissions = target.getPermittedPermissions().toList()
|
||||
if (!all) {
|
||||
grantedPermissions = grantedPermissions.filter { thisPerm ->
|
||||
grantedPermissions.none { other -> thisPerm.parentsWithSelf.drop(1).any { it == other } }
|
||||
}
|
||||
}
|
||||
if (grantedPermissions.isEmpty()) {
|
||||
sendMessage("${target.asString()} 未被授予任何权限. 使用 `${CommandManager.commandPrefix}permission grant` 给予权限.")
|
||||
} else {
|
||||
sendMessage(grantedPermissions.joinToString("\n") { it.id.toString() })
|
||||
}
|
||||
}
|
||||
|
||||
@Description("查看所有权限列表")
|
||||
@SubCommand("listPermissions", "lp")
|
||||
|
Loading…
Reference in New Issue
Block a user