diff --git a/README.md b/README.md index 870cc69..04bd3d2 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,6 @@ commands = kommand(this) { command("eco") { permission { description = "Allows /eco" - tags("economy") } literal("give") { @@ -141,7 +140,7 @@ commands = kommand(this) { - `permissions { ... }` で名前空間やルートセグメント (`rootSegment = "command"`) を定義すると、`hareworks.command.eco`, `hareworks.command.eco.give` のような ID が自動生成され、`permits-lib` の `MutationSession` を使って Bukkit に適用されます。 - `literal` や `command` ノードはデフォルトで Bukkit パーミッションとして登録されます。`string` や `integer` などの引数ノードは、`requires("permission.id")` もしくは `permission { id = ... }` を記述した場合のみ登録され、それ以外は構造上のノードに留まります。これにより `/money give ` では `...money.give` だけ付与すれば実行できます。 -- 各ブロック内の `permission { ... }` で説明文・デフォルト値 (`PermissionDefault.TRUE/FALSE/OP/NOT_OP`)・タグ・パスを細かく制御できます。`requires(...)` を使うと DSL での検証と permits 側の登録が同じ ID になります。 +- 各ブロック内の `permission { ... }` で説明文・デフォルト値 (`PermissionDefault.TRUE/FALSE/OP/NOT_OP`)・ワイルドカード・パスを細かく制御できます。`requires(...)` を使うと DSL での検証と permits 側の登録が同じ ID になります。 - 引数ノードを明示的に登録したい場合は `permission { id = "example.money.give.amount" }` や `requires("example.money.give.amount")` を設定してください。逆にリテラルでも不要なら `skipPermission()` で除外できます。 - `requires("custom.id")` を指定した場合も、同じ ID が DSL の実行と `permits-lib` への登録の両方で利用されます (名前空間外の ID は登録対象外になります)。 - `KommandLib` のライフサイクルに合わせて `MutationSession` が適用/解除されるため、プラグインの有効化・無効化に伴い Bukkit のパーミッションリストも最新状態に保たれます。 diff --git a/permits-lib b/permits-lib index 58ad0e6..00d5860 160000 --- a/permits-lib +++ b/permits-lib @@ -1 +1 @@ -Subproject commit 58ad0e67c9b4c46a74019d4de11c0b72a37e3db7 +Subproject commit 00d58604576a81d61ef28bf8588a768334e60708 diff --git a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionConfig.kt b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionConfig.kt index 5283366..38958ff 100644 --- a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionConfig.kt +++ b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionConfig.kt @@ -15,7 +15,6 @@ class PermissionConfig internal constructor( val defaultDescription: (PermissionContext) -> String?, val defaultValue: PermissionDefault, val defaultWildcard: Boolean, - val defaultTags: Set, private val sessionProvider: (JavaPlugin) -> MutationSession ) { fun session(plugin: JavaPlugin): MutationSession = sessionProvider(plugin) @@ -29,8 +28,7 @@ class PermissionConfigBuilder internal constructor(private val plugin: JavaPlugi var includeRootNode: Boolean = true var argumentPrefix: String = "arg" var defaultValue: PermissionDefault = PermissionDefault.OP - var wildcard: Boolean = true - private val tags: MutableSet = linkedSetOf("kommand") + var wildcard: Boolean = false private var descriptionTemplate: (PermissionContext) -> String? = { ctx -> when (ctx.kind) { PermissionNodeKind.COMMAND -> "Allows /${ctx.commandName}" @@ -44,10 +42,6 @@ class PermissionConfigBuilder internal constructor(private val plugin: JavaPlugi descriptionTemplate = block } - fun tags(vararg values: String) { - values.filter { it.isNotBlank() }.forEach { tags += it.trim() } - } - fun session(factory: (JavaPlugin) -> MutationSession) { sessionFactory = factory } @@ -67,7 +61,6 @@ class PermissionConfigBuilder internal constructor(private val plugin: JavaPlugi defaultDescription = descriptionTemplate, defaultValue = defaultValue, defaultWildcard = wildcard, - defaultTags = tags.toSet(), sessionProvider = sessionFactory ?: { PermitsLib.session(it) } ) } diff --git a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionOptions.kt b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionOptions.kt index c3271ea..515d5bf 100644 --- a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionOptions.kt +++ b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionOptions.kt @@ -7,7 +7,6 @@ class PermissionOptions { var description: String? = null var defaultValue: PermissionDefault? = null var wildcard: Boolean? = null - val tags: MutableSet = linkedSetOf() var skip: Boolean = false private var customPath: MutableList? = null internal var preferSkipByDefault: Boolean = false @@ -28,10 +27,6 @@ class PermissionOptions { resolvedId = id } - fun tags(vararg values: String) { - values.filter { it.isNotBlank() }.forEach { tags += it.trim() } - } - fun skipPermission() { skip = true } diff --git a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlan.kt b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlan.kt index c69c709..abd12cd 100644 --- a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlan.kt +++ b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlan.kt @@ -18,6 +18,5 @@ data class PlannedPermission( val description: String?, val defaultValue: PermissionDefault, val wildcard: Boolean, - val tags: Set, val registration: NodeRegistration ) diff --git a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlanner.kt b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlanner.kt index 43c1c3f..54c862d 100644 --- a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlanner.kt +++ b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionPlanner.kt @@ -123,7 +123,6 @@ internal class PermissionPlanner( val description = options.description ?: config.defaultDescription(context) val defaultValue = options.defaultValue ?: config.defaultValue val wildcard = options.wildcard ?: config.defaultWildcard - val tags = (config.defaultTags + options.tags).filter { it.isNotBlank() }.toSet() options.resolve(finalId) val parentPath = if (relativePath.isNotEmpty()) relativePath.dropLast(1).takeIf { it.isNotEmpty() } else null return PlannedPermission( @@ -133,7 +132,6 @@ internal class PermissionPlanner( description = description, defaultValue = defaultValue, wildcard = wildcard, - tags = tags, registration = registration ) } diff --git a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionRuntime.kt b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionRuntime.kt index 35b9a00..d515d09 100644 --- a/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionRuntime.kt +++ b/src/main/kotlin/net/hareworks/kommand-lib/permissions/PermissionRuntime.kt @@ -31,7 +31,6 @@ internal class PermissionRuntime( entry.description?.let { description = it } defaultValue = entry.defaultValue wildcard = entry.wildcard - entry.tags.forEach(::tag) } val parent = entry.parentPath if (parent != null && parent.isNotEmpty()) {