mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-14 04:10:50 +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.plugin.PluginManagerImpl
|
||||||
import net.mamoe.mirai.console.internal.util.runIgnoreException
|
import net.mamoe.mirai.console.internal.util.runIgnoreException
|
||||||
import net.mamoe.mirai.console.permission.Permission
|
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
|
||||||
import net.mamoe.mirai.console.permission.PermissionService.Companion.cancel
|
import net.mamoe.mirai.console.permission.PermissionService.Companion.cancel
|
||||||
import net.mamoe.mirai.console.permission.PermissionService.Companion.findCorrespondingPermissionOrFail
|
import net.mamoe.mirai.console.permission.PermissionService.Companion.findCorrespondingPermissionOrFail
|
||||||
@ -220,9 +221,19 @@ public object BuiltInCommands {
|
|||||||
@SubCommand("permittedPermissions", "pp", "grantedPermissions", "gp")
|
@SubCommand("permittedPermissions", "pp", "grantedPermissions", "gp")
|
||||||
public suspend fun CommandSender.permittedPermissions(
|
public suspend fun CommandSender.permittedPermissions(
|
||||||
@Name("被许可人 ID") target: PermitteeId,
|
@Name("被许可人 ID") target: PermitteeId,
|
||||||
|
@Name("包括重复") all: Boolean = false,
|
||||||
) {
|
) {
|
||||||
val grantedPermissions = target.getPermittedPermissions()
|
var grantedPermissions = target.getPermittedPermissions().toList()
|
||||||
sendMessage(grantedPermissions.joinToString("\n") { it.id.toString() })
|
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("查看所有权限列表")
|
@Description("查看所有权限列表")
|
||||||
|
Loading…
Reference in New Issue
Block a user