mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-11 02:50:15 +08:00
Merge remote-tracking branch 'origin/reborn' into reborn
This commit is contained in:
commit
f1a8c78bc7
42
README.md
42
README.md
@ -22,50 +22,44 @@ Mirai 是一个在全平台下运行,提供 QQ Android 和 TIM PC 协议支持
|
|||||||
console 由后端和前端一起工作. 使用时必须选择一个前端.
|
console 由后端和前端一起工作. 使用时必须选择一个前端.
|
||||||
|
|
||||||
**注意:`mirai-console` 后端和 pure 前端正在进行完全的重构,master 分支将不再维护。**
|
**注意:`mirai-console` 后端和 pure 前端正在进行完全的重构,master 分支将不再维护。**
|
||||||
**`mirai-console` 将在短时间内不可用。`
|
**`mirai-console` 将在短时间内不可用。**
|
||||||
|
|
||||||
- `mirai-console`: console 的后端, 包含插件管理, 指令系统, 配置系统. 还包含一个轻量命令行的前端 (因此可以独立启动 `mirai-console`).
|
后端:
|
||||||
- `mirai-console-graphical`: console 的 JavaFX 图形化界面前端.
|
- [`mirai-console`](backend/mirai-console/): console 的后端, 包含插件管理, 指令系统, 配置系统. 没有入口程序.
|
||||||
- `mirai-console-terminal`: console 的 Unix 终端界面前端. (实验性)
|
|
||||||
|
前端:
|
||||||
|
- [`mirai-console-pure`](frontend/mirai-console-pure): console 的轻量命令行前端
|
||||||
|
- [`mirai-console-graphical`](frontend/mirai-console-graphical): console 的 JavaFX 图形化界面前端. (实验性)
|
||||||
|
- [`mirai-console-terminal`](frontend/mirai-console-terminal): console 的 Unix 终端界面前端. (实验性)
|
||||||
|
- [`MiraiAndroid`](https://github.com/mzdluo123/MiraiAndroid): console 的 Android APP 前端.
|
||||||
|
|
||||||
|
|
||||||
[`mirai-console-wrapper`](https://github.com/mamoe/mirai-console-wrapper): console 启动器. 可根据用户选择从服务器下载 console 后端, mirai-core, 和指定的前端并启动.
|
[`mirai-console-wrapper`](https://github.com/mamoe/mirai-console-wrapper): console 启动器. 可根据用户选择从服务器下载 console 后端, mirai-core, 和指定的前端并启动.
|
||||||
|
|
||||||
### 使用
|
## 使用
|
||||||
|
|
||||||
#### Windows
|
### Android
|
||||||
|
|
||||||
建议任何人都使用一键安装包来快速启动 mirai-console (因此你无需解决 JavaFX 和兼容等相关问题)
|
[MiraiAndroid](https://github.com/mzdluo123/MiraiAndroid) 提供在 Android 平台使用 mirai-console 插件的能力,同时拥有一个便于使用的 Lua 接口
|
||||||
**[下载地址](https://suihou-my.sharepoint.com/:f:/g/personal/user18_5tb_site/ErWGr97FpPVDjkboIDmDAJkBID-23ZMNbTPggGajf1zvGw?e=51NZWM)**
|
|
||||||
|
|
||||||
**请注意**
|
[项目详细](https://github.com/mzdluo123/MiraiAndroid)
|
||||||
* 使用时请留意安装包里的说明文字
|
|
||||||
* 目前本安装包只支持Windows系统,**且 mirai-console 仍在开发中,可能会存在一些bug**
|
|
||||||
* 关于安装包本身的一切问题请到 QQ 群内反馈 (推荐), 或 [邮件联系](mailto:support@mamoe.net)
|
|
||||||
* 如果上面的链接下载过慢,你可以到QQ群内高速下载
|
|
||||||
|
|
||||||
若你不愿意简单地启动, 你可以往下阅读复杂的启动方式.
|
### Windows / Linux / Mac
|
||||||
|
|
||||||
#### Unix
|
**推荐任何人都使用全自动的 [LXY1226/MiraiOK](https://github.com/LXY1226/miraiOK) 一键启动器**
|
||||||
|
|
||||||
Unix 没有一键包提供. 请使用 wrapper 启动器.
|
也可以使用不推荐的 mirai-console-wrapper 启动器.
|
||||||
|
|
||||||
1. 安装 JRE (Java 运行环境):
|
1. 安装 JRE (Java 运行环境):
|
||||||
- 若使用图形界面, 至少需要 JRE 11 并带有 JavaFX 11, 且不推荐使用 12 或更高版本.
|
- 若使用图形界面, 至少需要 JRE 11 并带有 JavaFX 11, 且不推荐使用 12 或更高版本.
|
||||||
- 若使用命令行或终端, 至少需要 JRE 8.
|
- 若使用命令行或终端, 至少需要 JRE 8.
|
||||||
- 可以在 [华为镜像源](https://repo.huaweicloud.com/java/jdk/) 下载 JDK (JDK 包含 JRE 和开发工具)
|
- 可以在 [华为镜像源](https://repo.huaweicloud.com/java/jdk/) 下载 JDK 安装. (JDK 包含 JRE 和开发工具)
|
||||||
2. 下载 `mirai-console-wrapper-x.x.x.jar`
|
2. 下载 `mirai-console-wrapper-x.x.x.jar`
|
||||||
3. 参照 [wrapper 命令行参数](https://github.com/mirai/mirai-console-wrapper/README.md#命令行参数), 运行 `$ java -jar mirai-console-wrapper-x.x.x.jar`
|
3. 参照 [wrapper 命令行参数](https://github.com/mirai/mirai-console-wrapper/README.md#命令行参数), 运行 `$ java -jar mirai-console-wrapper-x.x.x.jar`
|
||||||
|
|
||||||
#### Android
|
|
||||||
|
|
||||||
[MiraiAndroid](https://github.com/mzdluo123/MiraiAndroid) 提供了在Android平台使用mirai-console插件的能力,同时拥有一个便于使用的lua接口
|
|
||||||
|
|
||||||
你可以点击这里查看[项目详细](https://github.com/mzdluo123/MiraiAndroid)
|
|
||||||
|
|
||||||
### 插件开发与获取
|
### 插件开发与获取
|
||||||
|
|
||||||
mirai-console 支持 Jar 插件.
|
mirai-console 内建 Jar 插件支持.
|
||||||
|
|
||||||
**mirai-console 目前仍为实验性阶段, 任何功能和 API 都不保证稳定性. 任何 API 都可能在没有警告的情况下修改.**
|
**mirai-console 目前仍为实验性阶段, 任何功能和 API 都不保证稳定性. 任何 API 都可能在没有警告的情况下修改.**
|
||||||
|
|
||||||
|
@ -120,8 +120,7 @@ abstract class CompositeCommand @JvmOverloads constructor(
|
|||||||
"",
|
"",
|
||||||
CommandPermission.Default,
|
CommandPermission.Default,
|
||||||
onCommand = block { sender: CommandSender, args: Array<out Any> ->
|
onCommand = block { sender: CommandSender, args: Array<out Any> ->
|
||||||
println("default finally got args: ${args.joinToString()}")
|
false//not supported yet
|
||||||
true
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -135,17 +134,8 @@ abstract class CompositeCommand @JvmOverloads constructor(
|
|||||||
|
|
||||||
this@CompositeCommand::class.declaredFunctions.filter { it.hasAnnotation<SubCommand>() }.map { function ->
|
this@CompositeCommand::class.declaredFunctions.filter { it.hasAnnotation<SubCommand>() }.map { function ->
|
||||||
|
|
||||||
function.parameters.forEach {
|
|
||||||
println(it)
|
|
||||||
println(it.type.classifier)
|
|
||||||
println()
|
|
||||||
println()
|
|
||||||
}
|
|
||||||
|
|
||||||
val notStatic = function.findAnnotation<JvmStatic>()==null
|
val notStatic = function.findAnnotation<JvmStatic>()==null
|
||||||
|
|
||||||
val overridePermission = function.findAnnotation<Permission>()//optional
|
val overridePermission = function.findAnnotation<Permission>()//optional
|
||||||
|
|
||||||
val subDescription = function.findAnnotation<Description>()?.description?:"no description available"
|
val subDescription = function.findAnnotation<Description>()?.description?:"no description available"
|
||||||
|
|
||||||
if ((function.returnType.classifier as? KClass<*>)?.isSubclassOf(Boolean::class) != true) {
|
if ((function.returnType.classifier as? KClass<*>)?.isSubclassOf(Boolean::class) != true) {
|
||||||
@ -153,7 +143,6 @@ abstract class CompositeCommand @JvmOverloads constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val parameter = function.parameters.toMutableList()
|
val parameter = function.parameters.toMutableList()
|
||||||
|
|
||||||
if (parameter.isEmpty()){
|
if (parameter.isEmpty()){
|
||||||
throw IllegalParameterException("First parameter (receiver for kotlin) for sub commend " + function.name + " from " + this.primaryName + " should be <out CommandSender>")
|
throw IllegalParameterException("First parameter (receiver for kotlin) for sub commend " + function.name + " from " + this.primaryName + " should be <out CommandSender>")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user