diff options
Diffstat (limited to 'dicore3/command/src/main/java/io/dico/dicore/command/PermissionContextFilter.java')
-rw-r--r-- | dicore3/command/src/main/java/io/dico/dicore/command/PermissionContextFilter.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/dicore3/command/src/main/java/io/dico/dicore/command/PermissionContextFilter.java b/dicore3/command/src/main/java/io/dico/dicore/command/PermissionContextFilter.java index 3ca1131..75b2035 100644 --- a/dicore3/command/src/main/java/io/dico/dicore/command/PermissionContextFilter.java +++ b/dicore3/command/src/main/java/io/dico/dicore/command/PermissionContextFilter.java @@ -1,5 +1,6 @@ package io.dico.dicore.command; +import java.util.List; import java.util.Objects; public class PermissionContextFilter implements IContextFilter { @@ -106,4 +107,30 @@ public class PermissionContextFilter implements IContextFilter { return failMessage; } + /* + private fun getPermissionsOf(address: ICommandAddress) = getPermissionsOf(address, emptyArray(), mutableListOf()) + + private fun getPermissionsOf(address: ICommandAddress, path: Array<String>, result: MutableList<String>): List<String> { + val command = address.command ?: return result + + var inherited = false + for (filter in command.contextFilters) { + when (filter) { + is PermissionContextFilter -> { + if (path.isEmpty()) result.add(filter.permission) + else if (filter.isInheritable) result.add(filter.getInheritedPermission(path)) + } + is InheritingContextFilter -> { + if (filter.priority == PERMISSION && address.hasParent() && !inherited) { + inherited = true + getPermissionsOf(address.parent, arrayOf(address.mainKey, *path), result) + } + } + } + } + + return result + } + */ + } |