OriginBotManager

所有 BotManager 的统一管理器.

OriginBotManager 是所有 BotManager 实例的统一管理类,在正常情况下, 所有的 BotManager 实现类在新建实例的时候都会将自身交由 OriginBotManager 进行统一管理。 OriginBotManager 内部不会持有这些manager,当一个 BotManager 执行了 cancel 或被垃圾回收后, OriginBotManager 中将无法再获取到它。

如果你想要某个 BotManager 脱离 OriginBotManager 的管理,使用 BotManager.breakAway

遍历所有:

OriginBotManager.forEach { manager ->
// do...
}

⚠ 谨慎使用

OriginBotManager 是脱离环境的 全局性 功能,当你的整个应用中存在多个环境时,使用它则很可能造成各种混乱。 BotManager 作为属性存在于很多对象中,你应当优先考虑使用那些明确的api(例如 Bot.managerlove.forte.simbot.event.Event.bot 等), 而对于全局性的 OriginBotManager, 是最后的选择。

Functions

Link copied to clipboard
fun cancel(reason: Throwable? = null)

关闭 OriginBotManager. 如果没有特殊需求,此方法不需要也不应该被手动调用。cancel 通常使用在 shutdown hook 等系统终止的相关回调中。

Link copied to clipboard
open operator override fun contains(element: BotManager<*>): Boolean

判断是否存在某个BotManager。

Link copied to clipboard
open override fun containsAll(elements: Collection<BotManager<*>>): Boolean

判断是否包含提供的所有manager。

Link copied to clipboard
open fun forEach(p0: Consumer<in BotManager<*>>)
Link copied to clipboard
fun getAny(component: Component? = null): BotManager<*>

尝试获取任意一个manager。如果当前元素为空则会抛出 NoSuchElementException

Link copied to clipboard
fun getAnyBot(component: Component? = null): Bot

尝试获取任意一个 BotManager 下的任意一个 Bot。如果无法获得任何元素则抛出 NoSuchElementException

Link copied to clipboard
fun getAnyBotOrNull(component: Component? = null): Bot?

尝试获取任意一个 BotManager 下的任意一个 Bot。如果当前元素为空则会得到null。

Link copied to clipboard
fun getAnyOrNull(component: Component? = null): BotManager<*>?

尝试获取任意一个manager。如果当前元素为空则会得到null。

Link copied to clipboard
fun getBot(id: ID, componentId: String? = null): Bot

根据一个Bot的id以及对应的组件ID来得到一个此组件下指定ID的bot。如果manager不存在或者没有这个id的bot,则会抛出 NoSuchElementException

fun getBot(id: ID, component: Component): Bot?

根据一个Bot的id以及对应的组件对象来得到一个此组件下指定ID的bot。如果manager不存在或者没有这个id的bot,则会得到null。

Link copied to clipboard
fun getBotOrNull(id: ID, componentId: String? = null): Bot?

根据一个Bot的id以及对应的组件ID来得到一个此组件下指定ID的bot。如果manager不存在或者没有这个id的bot,则会得到null。

Link copied to clipboard
fun getFirstManager(componentId: String): BotManager<*>

获取某个指定组件下的第一个能够得到的 BotManager, 如果找不到则抛出 NoSuchElementException

fun getFirstManager(component: Component): BotManager<*>?

获取某个指定组件下的第一个能够得到的 BotManager, 如果找不到则返回null。

Link copied to clipboard
fun getFirstManagerOrNull(componentId: String): BotManager<*>?

获取某个指定组件下的第一个能够得到的 BotManager, 如果找不到则返回null。

Link copied to clipboard
fun getManagers(componentId: String): List<BotManager<*>>

根据指定ID查询组件ID与其相等的 BotManager.

fun getManagers(component: Component): List<BotManager<*>>

通过一个 Component 获取对应组件下的BotManager序列。

Link copied to clipboard
open override fun isEmpty(): Boolean

是否为空

Link copied to clipboard
open operator override fun iterator(): Iterator<BotManager<*>>

获取迭代器。

Link copied to clipboard
Link copied to clipboard
open override fun spliterator(): Spliterator<BotManager<*>>
Link copied to clipboard
open fun stream(): Stream<BotManager<*>>
Link copied to clipboard
open fun <T : Any> toArray(p0: IntFunction<Array<T>>): Array<T>

Properties

Link copied to clipboard
open override val size: Int

得到当前被管理的manager数量。

Extensions

Link copied to clipboard
Link copied to clipboard
@JvmName(name = "by")
fun <T> Collection<T>.asItems(): Items<T>

使用 List 构建为 Items

Link copied to clipboard
fun <T> Collection<T>.asView(): View<T>

构建一个当前 Collection 对应的 View。 如果当前集合类型为 List, 则相当于 List.asView

fun <T> Iterable<T>.asView(): View<T>

构建一个当前 Iterable 对应的 View。 如果当前类型为 Collection, 则相当于 Collection.asView

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

将 元素为 MsgElementIterable 转化为 Messages 实例。