Skip to content

获取Bot管理器

Bot实例被存储在一个名为OneBotFactory.botManager的属性内, 你可以通过OneBotFactory.botManager来获取Bot实例管理器

kotlin
suspend fun main() {
    val manager: BotManager = OneBotFactory.botManager
}

获取Bot实例

你可以根据Bot的QQ号来获取对应的实例

kotlin
suspend fun main() {
    // 444444444是Bot的QQ号, 后面需要接上一个拓展属性`.ID`
    val bot: BotInstance = OneBotFactory.botManager[444444444.ID]
}

获取到Bot实例之后可以访问bot实例的.action对象来操作API

禁用/启用Bot实例

禁用

kotlin
suspend fun main() {
    val instance1 = OneBotFactory.createClient(...)
    OneBotFactory.botManager.disableBotInstance(instance1)
}

需要注意的一点是, 如果禁用了Bot实例那么你的程序将不会接收到除RawEvent事件或者onRawMessage事件以外的任何事件通知, 你可以在这两个事件内启用Bot

需要禁用所有的Bot实例只将disableBotInstance()方法替换为disableAllBots()

启用

kotlin
suspend fun main() {
    val instance1 = OneBotFactory.createClient(...)
    OneBotFactory.botManager.enableBotInstance(instance1)
}

启用所有的Bot实例只需要将enableBotInstance()替换为enableAllBots()

通过Action对象获取Bot实例

kotlin
suspend fun main() {
    val instance1 = OneBotFactory.createClient(...)
    instance1.onEvent<GroupMessageEvent> {
        println(OneBotFactory.botManager.getBotInstanceByAction(it.action))
    }
}

以Apache-2.0开源协议开源