mirror of
https://github.com/plexusorg/plugin-yml.git
synced 2024-12-22 16:25:06 +00:00
Fix permissions generation when using register("...")
It looks like asMap(...) doesn't return lazily registered values. Might be a bug, but using .associateBy { it.name } is at least as simple and does not have that problem.
This commit is contained in:
parent
c60658d745
commit
5fff9cf695
2 changed files with 14 additions and 14 deletions
|
@ -54,10 +54,10 @@ class BukkitPluginDescription(project: Project) : Serializable {
|
||||||
@Transient @JsonIgnore val permissions: NamedDomainObjectContainer<Permission> = project.container(Permission::class.java)
|
@Transient @JsonIgnore val permissions: NamedDomainObjectContainer<Permission> = project.container(Permission::class.java)
|
||||||
|
|
||||||
// Java/Jackson serialization for commands and permissions
|
// Java/Jackson serialization for commands and permissions
|
||||||
internal val commandMap: Map<String, Command> = commands.asMap
|
internal val commandMap: Map<String, Command>
|
||||||
@JsonProperty("commands") get() = field.toMap() // Return copy
|
@JsonProperty("commands") get() = commands.associateBy { it.name }
|
||||||
internal val permissionMap: Map<String, Permission> = permissions.asMap
|
internal val permissionMap: Map<String, Permission>
|
||||||
@JsonProperty("permissions") get() = field.toMap() // Return copy
|
@JsonProperty("permissions") get() = permissions.associateBy { it.name }
|
||||||
|
|
||||||
// For Groovy DSL
|
// For Groovy DSL
|
||||||
fun commands(closure: Closure<Unit>) = commands.configure(closure)
|
fun commands(closure: Closure<Unit>) = commands.configure(closure)
|
||||||
|
@ -82,7 +82,7 @@ class BukkitPluginDescription(project: Project) : Serializable {
|
||||||
var children: List<String>?
|
var children: List<String>?
|
||||||
@JsonIgnore get() = childrenMap?.filterValues { it }?.keys?.toList()
|
@JsonIgnore get() = childrenMap?.filterValues { it }?.keys?.toList()
|
||||||
set(value) {
|
set(value) {
|
||||||
childrenMap = value?.associate { it to true }
|
childrenMap = value?.associateWith { true }
|
||||||
}
|
}
|
||||||
@JsonProperty("children") var childrenMap: Map<String, Boolean>? = null
|
@JsonProperty("children") var childrenMap: Map<String, Boolean>? = null
|
||||||
|
|
||||||
|
|
|
@ -49,17 +49,17 @@ class NukkitPluginDescription(project: Project) : Serializable {
|
||||||
|
|
||||||
// DSL provider for commands and permissions (not serialized)
|
// DSL provider for commands and permissions (not serialized)
|
||||||
@Transient @JsonIgnore
|
@Transient @JsonIgnore
|
||||||
val commands: NamedDomainObjectContainer<NukkitPluginDescription.Command> = project.container(NukkitPluginDescription.Command::class.java)
|
val commands: NamedDomainObjectContainer<Command> = project.container(Command::class.java)
|
||||||
@Transient @JsonIgnore
|
@Transient @JsonIgnore
|
||||||
val permissions: NamedDomainObjectContainer<NukkitPluginDescription.Permission> = project.container(NukkitPluginDescription.Permission::class.java) {
|
val permissions: NamedDomainObjectContainer<Permission> = project.container(Permission::class.java) {
|
||||||
Permission(project, it)
|
Permission(project, it)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Java/Jackson serialization for commands and permissions
|
// Java/Jackson serialization for commands and permissions
|
||||||
internal val commandMap: Map<String, NukkitPluginDescription.Command> = commands.asMap
|
internal val commandMap: Map<String, Command>
|
||||||
@JsonProperty("commands") get() = field.toMap() // Return copy
|
@JsonProperty("commands") get() = commands.associateBy { it.name }
|
||||||
internal val permissionMap: Map<String, NukkitPluginDescription.Permission> = permissions.asMap
|
internal val permissionMap: Map<String, Permission>
|
||||||
@JsonProperty("permissions") get() = field.toMap() // Return copy
|
@JsonProperty("permissions") get() = permissions.associateBy { it.name }
|
||||||
|
|
||||||
// For Groovy DSL
|
// For Groovy DSL
|
||||||
fun commands(closure: Closure<Unit>) = commands.configure(closure)
|
fun commands(closure: Closure<Unit>) = commands.configure(closure)
|
||||||
|
@ -85,13 +85,13 @@ class NukkitPluginDescription(project: Project) : Serializable {
|
||||||
|
|
||||||
// DSL provider for recursive children (not serialized)
|
// DSL provider for recursive children (not serialized)
|
||||||
@Transient @JsonIgnore
|
@Transient @JsonIgnore
|
||||||
val children: NamedDomainObjectContainer<NukkitPluginDescription.Permission> = project.container(NukkitPluginDescription.Permission::class.java) {
|
val children: NamedDomainObjectContainer<Permission> = project.container(Permission::class.java) {
|
||||||
Permission(project, it)
|
Permission(project, it)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Java/Jackson serialization for commands and permissions
|
// Java/Jackson serialization for commands and permissions
|
||||||
internal val childrenMap: Map<String, NukkitPluginDescription.Permission> = children.asMap
|
internal val childrenMap: Map<String, Permission>
|
||||||
@JsonProperty("children") get() = field.toMap() // Return copy
|
@JsonProperty("children") get() = children.associateBy { it.name }
|
||||||
|
|
||||||
// For Groovy DSL
|
// For Groovy DSL
|
||||||
fun children(closure: Closure<Unit>) = children.configure(closure)
|
fun children(closure: Closure<Unit>) = children.configure(closure)
|
||||||
|
|
Loading…
Reference in a new issue