diff --git a/README.md b/README.md index db4d71a2c..501837046 100644 --- a/README.md +++ b/README.md @@ -21,51 +21,45 @@ Mirai 是一个在全平台下运行,提供 QQ Android 和 TIM PC 协议支持 console 由后端和前端一起工作. 使用时必须选择一个前端. -**注意:`mirai-console` 后端和 pure 前端正在进行完全的重构,master 分支将不再维护。** -**`mirai-console` 将在短时间内不可用。` +**注意:`mirai-console` 后端和 pure 前端正在进行完全的重构,master 分支将不再维护。** +**`mirai-console` 将在短时间内不可用。** -- `mirai-console`: console 的后端, 包含插件管理, 指令系统, 配置系统. 还包含一个轻量命令行的前端 (因此可以独立启动 `mirai-console`). -- `mirai-console-graphical`: console 的 JavaFX 图形化界面前端. -- `mirai-console-terminal`: console 的 Unix 终端界面前端. (实验性) +后端: +- [`mirai-console`](backend/mirai-console/): console 的后端, 包含插件管理, 指令系统, 配置系统. 没有入口程序. + +前端: +- [`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, 和指定的前端并启动. -### 使用 +## 使用 -#### Windows +### Android -建议任何人都使用一键安装包来快速启动 mirai-console (因此你无需解决 JavaFX 和兼容等相关问题) -**[下载地址](https://suihou-my.sharepoint.com/:f:/g/personal/user18_5tb_site/ErWGr97FpPVDjkboIDmDAJkBID-23ZMNbTPggGajf1zvGw?e=51NZWM)** +[MiraiAndroid](https://github.com/mzdluo123/MiraiAndroid) 提供在 Android 平台使用 mirai-console 插件的能力,同时拥有一个便于使用的 Lua 接口 -**请注意** -* 使用时请留意安装包里的说明文字 -* 目前本安装包只支持Windows系统,**且 mirai-console 仍在开发中,可能会存在一些bug** -* 关于安装包本身的一切问题请到 QQ 群内反馈 (推荐), 或 [邮件联系](mailto:support@mamoe.net) -* 如果上面的链接下载过慢,你可以到QQ群内高速下载 +[项目详细](https://github.com/mzdluo123/MiraiAndroid) -若你不愿意简单地启动, 你可以往下阅读复杂的启动方式. +### Windows / Linux / Mac -#### Unix +**推荐任何人都使用全自动的 [LXY1226/MiraiOK](https://github.com/LXY1226/miraiOK) 一键启动器** -Unix 没有一键包提供. 请使用 wrapper 启动器. +也可以使用不推荐的 mirai-console-wrapper 启动器. 1. 安装 JRE (Java 运行环境): - 若使用图形界面, 至少需要 JRE 11 并带有 JavaFX 11, 且不推荐使用 12 或更高版本. - 若使用命令行或终端, 至少需要 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` 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 都可能在没有警告的情况下修改.** diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt index 93af9cc96..1f4f26668 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt @@ -120,8 +120,7 @@ abstract class CompositeCommand @JvmOverloads constructor( "", CommandPermission.Default, onCommand = block { sender: CommandSender, args: Array -> - println("default finally got args: ${args.joinToString()}") - true + false//not supported yet } ) } @@ -135,26 +134,16 @@ abstract class CompositeCommand @JvmOverloads constructor( this@CompositeCommand::class.declaredFunctions.filter { it.hasAnnotation() }.map { function -> - function.parameters.forEach { - println(it) - println(it.type.classifier) - println() - println() - } - - val notStatic = function.findAnnotation() == null - + val notStatic = function.findAnnotation()==null val overridePermission = function.findAnnotation()//optional - - val subDescription = function.findAnnotation()?.description ?: "no description available" + val subDescription = function.findAnnotation()?.description?:"no description available" if ((function.returnType.classifier as? KClass<*>)?.isSubclassOf(Boolean::class) != true) { throw IllegalParameterException("Return Type of SubCommand must be Boolean") } 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 ") } @@ -162,7 +151,7 @@ abstract class CompositeCommand @JvmOverloads constructor( parameter.removeAt(0) } - (parameter.removeAt(0)).let { receiver -> + (parameter.removeAt(0)).let {receiver -> if ( receiver.isVararg || ((receiver.type.classifier as? KClass<*>).also { print(it) }