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)
|