com.skillw.asahi.api.member.namespace.NamespaceContainer.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Pouvoir Show documentation
Show all versions of Pouvoir Show documentation
Bukkit Script Engine Plugin.
package com.skillw.asahi.api.member.namespace
import com.skillw.asahi.api.AsahiManager
/**
* @className NamespaceContainer
*
* @author Glom
* @date 2023/1/27 16:11 Copyright 2024 Glom.
*/
class NamespaceContainer(private val namespaces: LinkedHashSet = LinkedHashSet()) :
Set by namespaces {
init {
AsahiManager.loadSharedNamespace(this)
}
fun namespaceNames(): Array = namespaces.map { it.key }.toTypedArray()
/**
* 添加命名空间
*
* @param names 命名空间id
* @return 自身
*/
fun addNamespaces(vararg names: String) {
addNamespaces(AsahiManager.getNamespaces(*names))
}
/**
* 删除命名空间
*
* @param names 命名空间id
* @return 自身
*/
fun removeSpaces(vararg names: String) {
removeSpaces(AsahiManager.getNamespaces(*names))
}
/**
* 添加命名空间
*
* @param namespaces 命名空间
* @return 自身
*/
fun addNamespaces(vararg namespaces: Namespace) {
addNamespaces(namespaces.toSet())
}
/**
* 删除命名空间
*
* @param namespaces 命名空间
* @return 自身
*/
fun removeSpaces(vararg namespaces: Namespace) {
removeSpaces(namespaces.toSet())
}
/**
* 添加命名空间
*
* @param namespaces 命名空间
* @return 自身
*/
fun addNamespaces(namespaces: Collection) {
this.namespaces.addAll(namespaces)
this.namespaces.sorted()
}
/**
* 删除命名空间
*
* @param namespaces 命名空间
* @return 自身
*/
fun removeSpaces(namespaces: Collection) {
this.namespaces.removeAll(namespaces.toSet())
this.namespaces.sorted()
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy