1.1
- ワイルドカードが利用できない不具合の修正 - 不使用のコードの削除 - groupの修正
This commit is contained in:
parent
9bab7d9c2c
commit
6c2f860df6
26
README.md
26
README.md
|
|
@ -75,6 +75,32 @@ class ExamplePlugin : JavaPlugin() {
|
|||
}
|
||||
```
|
||||
|
||||
### Procedural Edits with `MutablePermissionTree`
|
||||
|
||||
If you prefer an imperative style before handing the structure to Bukkit, you can clone any existing tree,
|
||||
mutate it procedurally, and then apply the result:
|
||||
|
||||
```kotlin
|
||||
val baseTree = permissionTree("example") {
|
||||
node("command") { node("reload") }
|
||||
}
|
||||
|
||||
val mutable = MutablePermissionTree.from(baseTree)
|
||||
mutable.node("command") {
|
||||
node("debug") {
|
||||
description = "Allows /example debug"
|
||||
defaultValue = PermissionDefault.OP
|
||||
}
|
||||
child("helper", value = false) // unlink helper if present
|
||||
}
|
||||
mutable.remove("command.legacy")
|
||||
|
||||
permits.applyTree(mutable.build())
|
||||
```
|
||||
|
||||
The mutable API mirrors the DSL (`node`, `child`, `childAbsolute`, `remove`, `removeChild`, etc.) so you can
|
||||
stage edits procedurally before ever touching `MutationSession`.
|
||||
|
||||
### Concepts
|
||||
|
||||
- **Permission tree** – immutable graph of `PermissionNode`s. Nodes specify description, default value,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
|
||||
|
||||
group = "net.hareworks.hcu"
|
||||
version = "1.0"
|
||||
group = "net.hareworks"
|
||||
version = "1.1"
|
||||
|
||||
plugins {
|
||||
kotlin("jvm") version "2.2.21"
|
||||
|
|
@ -17,7 +17,6 @@ val exposedVersion = "1.0.0-rc-3"
|
|||
|
||||
dependencies {
|
||||
compileOnly("io.papermc.paper:paper-api:1.21.10-R0.1-SNAPSHOT")
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-stdlib")
|
||||
}
|
||||
tasks {
|
||||
shadowJar {
|
||||
|
|
@ -27,7 +26,7 @@ tasks {
|
|||
}
|
||||
|
||||
paper {
|
||||
main = "net.hareworks.permits_lib.App"
|
||||
main = "net.hareworks.permits_lib.plugin.Plugin"
|
||||
name = "permits-lib"
|
||||
description = "Permission Library"
|
||||
version = getVersion().toString()
|
||||
|
|
|
|||
|
|
@ -1,9 +1 @@
|
|||
/*
|
||||
* This file was generated by the Gradle 'init' task.
|
||||
*
|
||||
* The settings file is used to specify which projects to include in your build.
|
||||
* For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.14.3/userguide/multi_project_builds.html in the Gradle documentation.
|
||||
* This project uses @Incubating APIs which are subject to change.
|
||||
*/
|
||||
|
||||
rootProject.name = "kommand-lib"
|
||||
rootProject.name = "permits-lib"
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
package net.hareworks.permits_lib
|
||||
|
||||
import net.hareworks.permits_lib.bukkit.MutationSession
|
||||
import net.hareworks.permits_lib.dsl.permissionTree
|
||||
import org.bukkit.permissions.PermissionDefault
|
||||
import org.bukkit.plugin.java.JavaPlugin
|
||||
|
||||
class App : JavaPlugin() {
|
||||
companion object {
|
||||
lateinit var instance: App
|
||||
private set
|
||||
}
|
||||
|
||||
private lateinit var session: MutationSession
|
||||
|
||||
override fun onEnable() {
|
||||
instance = this
|
||||
session = MutationSession.create(this)
|
||||
|
||||
val baseTree = permissionTree("permits-lib") {
|
||||
node("command") {
|
||||
description = "Allows execution of all permits-lib commands."
|
||||
defaultValue = PermissionDefault.OP
|
||||
|
||||
node("reload") {
|
||||
description = "Allows /permitslib reload."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
session.applyTree(baseTree)
|
||||
|
||||
// Example of mutating the existing tree without rebuilding everything.
|
||||
session.edit {
|
||||
node("command") {
|
||||
node("debug") {
|
||||
description = "Allows /permitslib debug utilities."
|
||||
defaultValue = PermissionDefault.OP
|
||||
wildcard = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
6
src/main/kotlin/net/hareworks/permits_lib/Plugin.kt
Normal file
6
src/main/kotlin/net/hareworks/permits_lib/Plugin.kt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
package net.hareworks.permits_lib.plugin
|
||||
|
||||
import org.bukkit.plugin.java.JavaPlugin
|
||||
|
||||
@Suppress("unused")
|
||||
class Plugin : JavaPlugin() {}
|
||||
|
|
@ -12,7 +12,7 @@ value class PermissionId private constructor(val value: String) {
|
|||
override fun toString(): String = value
|
||||
|
||||
companion object {
|
||||
private val VALID_PATTERN = Regex("""^[a-z0-9_.-]+$""")
|
||||
private val VALID_PATTERN = Regex("""^[a-z0-9_.-]+(\.\*)?$""")
|
||||
|
||||
fun of(raw: String): PermissionId {
|
||||
val normalized = raw.trim().lowercase()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user