diff --git a/src/main/kotlin/net/minecrell/pluginyml/bukkit/BukkitPluginDescription.kt b/src/main/kotlin/net/minecrell/pluginyml/bukkit/BukkitPluginDescription.kt index 66efd9e..abeef44 100644 --- a/src/main/kotlin/net/minecrell/pluginyml/bukkit/BukkitPluginDescription.kt +++ b/src/main/kotlin/net/minecrell/pluginyml/bukkit/BukkitPluginDescription.kt @@ -54,10 +54,10 @@ class BukkitPluginDescription(project: Project) : Serializable { @Transient @JsonIgnore val permissions: NamedDomainObjectContainer = project.container(Permission::class.java) // Java/Jackson serialization for commands and permissions - internal val commandMap: Map = commands.asMap - @JsonProperty("commands") get() = field.toMap() // Return copy - internal val permissionMap: Map = permissions.asMap - @JsonProperty("permissions") get() = field.toMap() // Return copy + internal val commandMap: Map + @JsonProperty("commands") get() = commands.associateBy { it.name } + internal val permissionMap: Map + @JsonProperty("permissions") get() = permissions.associateBy { it.name } // For Groovy DSL fun commands(closure: Closure) = commands.configure(closure) @@ -82,7 +82,7 @@ class BukkitPluginDescription(project: Project) : Serializable { var children: List? @JsonIgnore get() = childrenMap?.filterValues { it }?.keys?.toList() set(value) { - childrenMap = value?.associate { it to true } + childrenMap = value?.associateWith { true } } @JsonProperty("children") var childrenMap: Map? = null diff --git a/src/main/kotlin/net/minecrell/pluginyml/nukkit/NukkitPluginDescription.kt b/src/main/kotlin/net/minecrell/pluginyml/nukkit/NukkitPluginDescription.kt index 8def94d..911c0cf 100644 --- a/src/main/kotlin/net/minecrell/pluginyml/nukkit/NukkitPluginDescription.kt +++ b/src/main/kotlin/net/minecrell/pluginyml/nukkit/NukkitPluginDescription.kt @@ -49,17 +49,17 @@ class NukkitPluginDescription(project: Project) : Serializable { // DSL provider for commands and permissions (not serialized) @Transient @JsonIgnore - val commands: NamedDomainObjectContainer = project.container(NukkitPluginDescription.Command::class.java) + val commands: NamedDomainObjectContainer = project.container(Command::class.java) @Transient @JsonIgnore - val permissions: NamedDomainObjectContainer = project.container(NukkitPluginDescription.Permission::class.java) { + val permissions: NamedDomainObjectContainer = project.container(Permission::class.java) { Permission(project, it) } // Java/Jackson serialization for commands and permissions - internal val commandMap: Map = commands.asMap - @JsonProperty("commands") get() = field.toMap() // Return copy - internal val permissionMap: Map = permissions.asMap - @JsonProperty("permissions") get() = field.toMap() // Return copy + internal val commandMap: Map + @JsonProperty("commands") get() = commands.associateBy { it.name } + internal val permissionMap: Map + @JsonProperty("permissions") get() = permissions.associateBy { it.name } // For Groovy DSL fun commands(closure: Closure) = commands.configure(closure) @@ -85,13 +85,13 @@ class NukkitPluginDescription(project: Project) : Serializable { // DSL provider for recursive children (not serialized) @Transient @JsonIgnore - val children: NamedDomainObjectContainer = project.container(NukkitPluginDescription.Permission::class.java) { + val children: NamedDomainObjectContainer = project.container(Permission::class.java) { Permission(project, it) } // Java/Jackson serialization for commands and permissions - internal val childrenMap: Map = children.asMap - @JsonProperty("children") get() = field.toMap() // Return copy + internal val childrenMap: Map + @JsonProperty("children") get() = children.associateBy { it.name } // For Groovy DSL fun children(closure: Closure) = children.configure(closure)