mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-12 22:10:14 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
125bfd3245
12
README.md
12
README.md
@ -22,7 +22,7 @@ Mirai 是一个在全平台下运行,提供 QQ Android 和 TIM PC 协议支持
|
|||||||
|
|
||||||
**[English](README-eng.md)**
|
**[English](README-eng.md)**
|
||||||
|
|
||||||
多平台 **QQ Android 和 TimPC** 协议支持库与高效率的机器人框架.
|
多平台 **QQ Android** 和 **TIM PC** 协议支持库与高效率的机器人框架.
|
||||||
纯 Kotlin 实现协议和支持框架,模块<b>全部免费开源</b>。
|
纯 Kotlin 实现协议和支持框架,模块<b>全部免费开源</b>。
|
||||||
目前可运行在 JVM 或 Android。
|
目前可运行在 JVM 或 Android。
|
||||||
Mirai既可以作为你项目中的QQ协议支持Lib, 也可以作为单独的Application与插件承载QQ机器人
|
Mirai既可以作为你项目中的QQ协议支持Lib, 也可以作为单独的Application与插件承载QQ机器人
|
||||||
@ -38,7 +38,7 @@ Mirai支持以多种方式进行部署,但是目前,我们在集中对mirai-
|
|||||||
### 开发者
|
### 开发者
|
||||||
#### 以编写机器人逻辑为主
|
#### 以编写机器人逻辑为主
|
||||||
|
|
||||||
- 需了解<b>Java</b>或<b>Kotlin</b>, 使用[mirai-console](https://github.com/mamoe/mirai/tree/master/mirai-console)机器人框架的插件系统进行[插件开发(DOING)](), 直接进行逻辑编写并与其他插件开发者合作共享
|
- 需了解 `Java` 或 `Kotlin`, 使用 [mirai-console](https://github.com/mamoe/mirai/tree/master/mirai-console) 直接进行插件逻辑编写并与其他插件开发者合作共享
|
||||||
|
|
||||||
#### 使用Mirai为第三方库
|
#### 使用Mirai为第三方库
|
||||||
|
|
||||||
@ -56,12 +56,8 @@ Mirai支持以多种方式进行部署,但是目前,我们在集中对mirai-
|
|||||||
|
|
||||||
#### 酷Q平台用户:
|
#### 酷Q平台用户:
|
||||||
|
|
||||||
- 全部酷Q的DLL插件可以在mirai中直接加载, 需使用 `Mirai-Native` ([源码(DOING)](https://github.com/iTXTech/mirai-native),[插件版(mirai-console插件)(DOING)]())
|
- 酷Q的插件可以在 `Mirai` 中加载, 详见 [Mirai-Native](https://github.com/iTXTech/mirai-native)
|
||||||
- 全部基于 `酷Q HTTPAPI` 的插件可以在`mirai`中直接加载, 需使用`Mirai-CQ-Adapter`([源码(TODO)](https://github.com/iTXTech/mirai-native),[插件版(mirai-console插件)(TODO)]())
|
- 使用 `酷Q HTTPAPI` 的插件将可以在`mirai`中加载,`Mirai-CQ-Adapter` 正在计划中
|
||||||
|
|
||||||
#### 其他平台
|
|
||||||
|
|
||||||
- 如果你的插件是通过 `酷Q HTTPAPI` 实现的(绝大部分), 都可以通过 `Mirai-CQ-Adapter` 在mirai中直接使用
|
|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ import net.mamoe.mirai.api.http.data.common.MessageChainDTO
|
|||||||
import net.mamoe.mirai.api.http.data.common.VerifyDTO
|
import net.mamoe.mirai.api.http.data.common.VerifyDTO
|
||||||
import net.mamoe.mirai.api.http.data.common.toMessageChain
|
import net.mamoe.mirai.api.http.data.common.toMessageChain
|
||||||
import net.mamoe.mirai.api.http.util.toJson
|
import net.mamoe.mirai.api.http.util.toJson
|
||||||
import net.mamoe.mirai.contact.toList
|
|
||||||
import net.mamoe.mirai.message.data.MessageChain
|
import net.mamoe.mirai.message.data.MessageChain
|
||||||
import net.mamoe.mirai.message.uploadImage
|
import net.mamoe.mirai.message.uploadImage
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
@ -90,8 +89,8 @@ fun Application.messageModule() {
|
|||||||
parts.file("img")?.apply {
|
parts.file("img")?.apply {
|
||||||
val image = streamProvider().use {
|
val image = streamProvider().use {
|
||||||
when (type) {
|
when (type) {
|
||||||
"group" -> session.bot.groups.toList().random().uploadImage(it)
|
"group" -> session.bot.groups.firstOrNull()?.uploadImage(it)
|
||||||
"friend" -> session.bot.qqs.toList().random().uploadImage(it)
|
"friend" -> session.bot.qqs.firstOrNull()?.uploadImage(it)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import javafx.stage.Modality
|
|||||||
import kotlinx.io.core.IoBuffer
|
import kotlinx.io.core.IoBuffer
|
||||||
import net.mamoe.mirai.Bot
|
import net.mamoe.mirai.Bot
|
||||||
import net.mamoe.mirai.console.MiraiConsole
|
import net.mamoe.mirai.console.MiraiConsole
|
||||||
import net.mamoe.mirai.console.MiraiConsoleUI
|
|
||||||
import net.mamoe.mirai.console.graphical.model.BotModel
|
import net.mamoe.mirai.console.graphical.model.BotModel
|
||||||
import net.mamoe.mirai.console.graphical.model.ConsoleInfo
|
import net.mamoe.mirai.console.graphical.model.ConsoleInfo
|
||||||
import net.mamoe.mirai.console.graphical.model.PluginModel
|
import net.mamoe.mirai.console.graphical.model.PluginModel
|
||||||
@ -29,15 +28,15 @@ class MiraiGraphicalUIController : Controller(), MiraiConsoleUI {
|
|||||||
val botList = observableListOf<BotModel>()
|
val botList = observableListOf<BotModel>()
|
||||||
val pluginList: ObservableList<PluginModel> by lazy(::getPluginsFromConsole)
|
val pluginList: ObservableList<PluginModel> by lazy(::getPluginsFromConsole)
|
||||||
|
|
||||||
val consoleConfig : Map<String, Any> by lazy(::getConfigFromConsole)
|
// val consoleConfig : Map<String, Any> by lazy(::getConfigFromConsole)
|
||||||
|
|
||||||
val consoleInfo = ConsoleInfo()
|
val consoleInfo = ConsoleInfo()
|
||||||
|
|
||||||
suspend fun login(qq: String, psd: String) {
|
suspend fun login(qq: String, psd: String) {
|
||||||
MiraiConsole.CommandListener.commandChannel.send("/login $qq $psd")
|
// MiraiConsole
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun sendCommand(command: String) = MiraiConsole.CommandListener.commandChannel.send(command)
|
suspend fun sendCommand(command: String) = Unit
|
||||||
|
|
||||||
override fun pushLog(identity: Long, message: String) = Platform.runLater {
|
override fun pushLog(identity: Long, message: String) = Platform.runLater {
|
||||||
when (identity) {
|
when (identity) {
|
||||||
@ -84,8 +83,6 @@ class MiraiGraphicalUIController : Controller(), MiraiConsoleUI {
|
|||||||
// TODO
|
// TODO
|
||||||
return observableListOf<PluginModel>()
|
return observableListOf<PluginModel>()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getConfigFromConsole() = MiraiConsole.MiraiProperties.config.asMap()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class GraphicalLoginSolver : LoginSolver() {
|
class GraphicalLoginSolver : LoginSolver() {
|
||||||
|
@ -12,12 +12,12 @@ class SettingsView : View() {
|
|||||||
private val controller = find<MiraiGraphicalUIController>()
|
private val controller = find<MiraiGraphicalUIController>()
|
||||||
|
|
||||||
override val root = form {
|
override val root = form {
|
||||||
controller.consoleConfig.forEach {
|
// controller.consoleConfig.forEach {
|
||||||
fieldset {
|
// fieldset {
|
||||||
field(it.key) {
|
// field(it.key) {
|
||||||
jfxTextfield(it.value.toString()) { isEditable = false }
|
// jfxTextfield(it.value.toString()) { isEditable = false }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user