mirai/docs/Bots.md

42 lines
1.4 KiB
Markdown
Raw Normal View History

2020-12-19 11:15:57 +08:00
# Mirai - Creating Bots
## 获取 `Bot` 实例
一个机器人被以 `Bot` 对象描述。mirai 的交互入口点是 `Bot`。`Bot` 只可通过 [`BotFactory`](../mirai-core-api/src/commonMain/kotlin/BotFactory.kt#L22-L87) 内的 `newBot` 方法获得:
```kotlin
interface BotFactory {
fun newBot(qq: Long, password: String, configuration: BotConfiguration): Bot
2020-12-19 11:45:40 +08:00
fun newBot(qq: Long, password: String): Bot
2020-12-19 11:15:57 +08:00
fun newBot(qq: Long, passwordMd5: ByteArray, configuration: BotConfiguration): Bot
2020-12-19 11:45:40 +08:00
fun newBot(qq: Long, passwordMd5: ByteArray): Bot
2020-12-19 11:15:57 +08:00
companion object : BotFactory by BotFactoryImpl
}
```
通常的调用方法为:
```
// Kotlin
val bot = BotFactory.newBot( )
// Java
Bot bot = BotFactory.INSTANCE.newBot( );
```
### 获取当前所有 `Bot` 实例
在登录后,`Bot` 实例会被自动记录。可在 `Bot.instances` 获取到当前在线的所有 `Bot` 列表。当 `Bot` 离线,其实例就会被删除。
## 登录
创建 `Bot` 后不会自动登录,需要手动调用其 `login()` 方法。在 Kotlin 还可以使用 `Bot.alsoLogin()` 扩展,相当于 `bot.apply { login() }`
### 重新登录
可以再次调用 `Bot.login()` 以重新登录 `Bot`。这一般没有必要——`Bot` 运行时会自动与服务器同步事件(如群成员变化,好友数量变化)。
> 下一步,[Contacts](Contacts.md)
2020-12-19 16:01:58 +08:00
>
2020-12-19 11:15:57 +08:00
> [回到 Mirai 文档索引](README.md)