mirror of
https://github.com/mamoe/mirai.git
synced 2024-12-27 17:10:15 +08:00
Migrate references in docs
This commit is contained in:
parent
14bb3752dd
commit
aa98a10d12
@ -31,7 +31,7 @@ git submodule update
|
|||||||
|
|
||||||
### 能做什么?
|
### 能做什么?
|
||||||
|
|
||||||
- 维护社区: 可以为 [mirai-console](https://github.com/mamoe/mirai-console) 编写插件, 并发布到论坛
|
- 维护社区: 可以为 [mirai-console](/mirai-console) 编写插件, 并发布到论坛
|
||||||
|
|
||||||
- 代码优化: 优化任何功能设计或实现, 或是引入一个新的设计
|
- 代码优化: 优化任何功能设计或实现, 或是引入一个新的设计
|
||||||
- 解决问题: 在 [issues](https://github.com/mamoe/mirai/issues) 查看 mirai 正遇到的所有问题, 或在 [里程碑](https://github.com/mamoe/mirai/milestones) 查看版本计划. 所有没有 assignee 的 issue 都处于
|
- 解决问题: 在 [issues](https://github.com/mamoe/mirai/issues) 查看 mirai 正遇到的所有问题, 或在 [里程碑](https://github.com/mamoe/mirai/milestones) 查看版本计划. 所有没有 assignee 的 issue 都处于
|
||||||
|
@ -14,8 +14,12 @@ Mirai is designed to handle all sorts of messaging works that can be automatical
|
|||||||
Mirai is able to run as a plugin-supported framework.
|
Mirai is able to run as a plugin-supported framework.
|
||||||
The community, (with `mirai-console`) that allows developers to share their plugins, and for users to install plugins quickly, is building in progress.
|
The community, (with `mirai-console`) that allows developers to share their plugins, and for users to install plugins quickly, is building in progress.
|
||||||
|
|
||||||
- JVM languages like `Java` or `Kotlin`: Make Jar plugin for [mirai-console](https://github.com/mamoe/mirai-console) directly and share with other developers through the plugin center.
|
- JVM languages like `Java` or `Kotlin`: Make Jar plugin
|
||||||
- `Kotlin Script`: [mirai-kts](https://github.com/iTXTech/mirai-kts) supports plugins using Kotlin Scripts (`kts`)(**OpenJDK 8+ only,except Android**)
|
for [mirai-console](/mirai-console) directly and share with other
|
||||||
|
developers through the plugin center.
|
||||||
|
- `Kotlin Script`: [mirai-kts](https://github.com/iTXTech/mirai-kts)
|
||||||
|
supports plugins using Kotlin Scripts (`kts`)(**OpenJDK 8+ only,except
|
||||||
|
Android**)
|
||||||
- Native languages like `C`, `C++`: [mirai-native](https://github.com/iTXTech/mirai-native) supports plugins from CoolQ **(`Windows JREx86` only / with `Wine`)**
|
- Native languages like `C`, `C++`: [mirai-native](https://github.com/iTXTech/mirai-native) supports plugins from CoolQ **(`Windows JREx86` only / with `Wine`)**
|
||||||
- `JavaScript`: [mirai-js](https://github.com/iTXTech/mirai-js) supports plugins using `JavaScript` and inter-operate with **mirai** on JVM directly.
|
- `JavaScript`: [mirai-js](https://github.com/iTXTech/mirai-js) supports plugins using `JavaScript` and inter-operate with **mirai** on JVM directly.
|
||||||
- Any language:Use HTTP API from [mirai-api-http](https://github.com/mamoe/mirai-api-http)
|
- Any language:Use HTTP API from [mirai-api-http](https://github.com/mamoe/mirai-api-http)
|
||||||
|
@ -8,7 +8,8 @@
|
|||||||
- Android:Android SDK 26+ (Android 8.0,Oreo)
|
- Android:Android SDK 26+ (Android 8.0,Oreo)
|
||||||
|
|
||||||
|
|
||||||
**但注意不要使用 Oracle JDK**([原因](https://github.com/mamoe/mirai/discussions/779)),可以使用其他任何 JDK。
|
**但注意不要使用 Oracle JDK**
|
||||||
|
([原因](https://github.com/mamoe/mirai/discussions/779)),可以使用其他任何 JDK。
|
||||||
|
|
||||||
> 要下载 JDK:
|
> 要下载 JDK:
|
||||||
> - 手动下载安装如 [AdoptOpenJDK](https://adoptopenjdk.net/)
|
> - 手动下载安装如 [AdoptOpenJDK](https://adoptopenjdk.net/)
|
||||||
@ -18,15 +19,19 @@
|
|||||||
|
|
||||||
### 安装 IDE 插件
|
### 安装 IDE 插件
|
||||||
|
|
||||||
[Mirai Console IntelliJ]: https://github.com/mamoe/mirai-console/tree/master/tools/intellij-plugin
|
[Mirai Console IntelliJ]: /mirai-console/tools/intellij-plugin
|
||||||
[Mirai Console IntelliJ-JB]: https://github.com/mamoe/mirai-console/tree/master/tools/intellij-plugin
|
|
||||||
|
[Mirai Console IntelliJ-JB]: /mirai-console/tools/intellij-plugin
|
||||||
|
|
||||||
[Mirai Console IntelliJ-OK]: https://plugins.jetbrains.com/embeddable/install/15094
|
[Mirai Console IntelliJ-OK]: https://plugins.jetbrains.com/embeddable/install/15094
|
||||||
|
|
||||||
<!--[Kotlin Jvm Blocking Bridge]: https://github.com/mamoe/kotlin-jvm-blocking-bridge-->
|
<!--[Kotlin Jvm Blocking Bridge]: https://github.com/mamoe/kotlin-jvm-blocking-bridge-->
|
||||||
<!--[Kotlin Jvm Blocking Bridge-JB]: https://plugins.jetbrains.com/plugin/14816-kotlin-jvm-blocking-bridge-->
|
<!--[Kotlin Jvm Blocking Bridge-JB]: https://plugins.jetbrains.com/plugin/14816-kotlin-jvm-blocking-bridge-->
|
||||||
<!--[Kotlin Jvm Blocking Bridge-OK]: https://plugins.jetbrains.com/embeddable/install/14816-->
|
<!--[Kotlin Jvm Blocking Bridge-OK]: https://plugins.jetbrains.com/embeddable/install/14816-->
|
||||||
|
|
||||||
推荐使用 [IntelliJ IDEA](https://www.jetbrains.com/idea/) 或 [Android Studio](https://developer.android.com/studio)。Mirai 提供 IDE 插件来提升开发体验。
|
推荐使用 [IntelliJ IDEA](https://www.jetbrains.com/idea/)
|
||||||
|
或 [Android Studio](https://developer.android.com/studio)。Mirai 提供 IDE
|
||||||
|
插件来提升开发体验。
|
||||||
|
|
||||||
| 插件名 | 描述 | 一键安装 | JetBrains 插件仓库 |
|
| 插件名 | 描述 | 一键安装 | JetBrains 插件仓库 |
|
||||||
|:------------------------:|:---------------------------------------------------:|:-----------------------------------:|:----------------------------------:|
|
|:------------------------:|:---------------------------------------------------:|:-----------------------------------:|:----------------------------------:|
|
||||||
|
118
docs/README.md
118
docs/README.md
@ -10,59 +10,93 @@
|
|||||||
|
|
||||||
## 社区 SDK
|
## 社区 SDK
|
||||||
|
|
||||||
**mirai 官方提供 [Kotlin/Java 等 JVM 平台语言开发支持](#jvm-平台-mirai-开发)。如果不熟悉这些语言,请使用以下社区 SDK:**
|
**mirai 官方提供 [Kotlin/Java 等 JVM 平台语言开发支持](#jvm-平台-mirai-开发)
|
||||||
|
。如果不熟悉这些语言,请使用以下社区 SDK:**
|
||||||
|
|
||||||
要使用这些社区 SDK 需要先配置 Mirai Console,可以使用 [一键安装](https://mirai.mamoe.net/assets/uploads/files/1618372079496-install-20210412.cmd)(32位,带 HTTP 插件),也可以阅读 [用户手册](UserManual.md) 进行个性化安装。
|
要使用这些社区 SDK 需要先配置 Mirai
|
||||||
|
Console,可以使用 [一键安装](https://mirai.mamoe.net/assets/uploads/files/1618372079496-install-20210412.cmd)(32位,带
|
||||||
|
HTTP 插件),也可以阅读 [用户手册](UserManual.md) 进行个性化安装。
|
||||||
|
|
||||||
你可以使用一个或多个语言来开发插件,而且在自己开发的同时也可以[使用下载的插件](UserManual.md#下载和安装插件)。
|
你可以使用一个或多个语言来开发插件,而且在自己开发的同时也可以[使用下载的插件](UserManual.md#下载和安装插件)。
|
||||||
|
|
||||||
[`mirai-console`]: https://github.com/mamoe/mirai-console
|
[`mirai-console`]: ../mirai-console
|
||||||
|
|
||||||
[mamoe/mirai-api-http]: https://github.com/mamoe/mirai-api-http
|
[mamoe/mirai-api-http]: https://github.com/mamoe/mirai-api-http
|
||||||
|
|
||||||
[iTXTech/mirai-native]: https://github.com/iTXTech/mirai-native
|
[iTXTech/mirai-native]: https://github.com/iTXTech/mirai-native
|
||||||
|
|
||||||
[iTXTech/mirai-js]: https://github.com/iTXTech/mirai-js
|
[iTXTech/mirai-js]: https://github.com/iTXTech/mirai-js
|
||||||
|
|
||||||
[iTXTech/mirai-kts]: https://github.com/iTXTech/mirai-kts
|
[iTXTech/mirai-kts]: https://github.com/iTXTech/mirai-kts
|
||||||
|
|
||||||
[GraiaProject/Ariadne]: https://github.com/GraiaProject/Ariadne
|
[GraiaProject/Ariadne]: https://github.com/GraiaProject/Ariadne
|
||||||
|
|
||||||
[GraiaProject/Avilla]: https://github.com/GraiaProject/Avilla
|
[GraiaProject/Avilla]: https://github.com/GraiaProject/Avilla
|
||||||
|
|
||||||
[Elaina]: https://github.com/wyapx/Elaina
|
[Elaina]: https://github.com/wyapx/Elaina
|
||||||
|
|
||||||
[Cesloi]: https://github.com/RF-Tar-Railt/Cesloi
|
[Cesloi]: https://github.com/RF-Tar-Railt/Cesloi
|
||||||
|
|
||||||
[NoneBot]: https://github.com/nonebot/nonebot2
|
[NoneBot]: https://github.com/nonebot/nonebot2
|
||||||
|
|
||||||
[RedBeanN/node-mirai]: https://github.com/RedBeanN/node-mirai
|
[RedBeanN/node-mirai]: https://github.com/RedBeanN/node-mirai
|
||||||
|
|
||||||
[Logiase/gomirai]: https://github.com/Logiase/gomirai
|
[Logiase/gomirai]: https://github.com/Logiase/gomirai
|
||||||
|
|
||||||
[cyanray/mirai-cpp]: https://github.com/cyanray/mirai-cpp
|
[cyanray/mirai-cpp]: https://github.com/cyanray/mirai-cpp
|
||||||
|
|
||||||
[Chlorie/miraipp]: https://github.com/Chlorie/miraipp-template
|
[Chlorie/miraipp]: https://github.com/Chlorie/miraipp-template
|
||||||
|
|
||||||
[Executor-Cheng/mirai-CSharp]: https://github.com/Executor-Cheng/mirai-CSharp
|
[Executor-Cheng/mirai-CSharp]: https://github.com/Executor-Cheng/mirai-CSharp
|
||||||
|
|
||||||
[HoshinoTented/mirai-rs]: https://github.com/HoshinoTented/mirai-rs
|
[HoshinoTented/mirai-rs]: https://github.com/HoshinoTented/mirai-rs
|
||||||
|
|
||||||
[YunYouJun/mirai-ts]: https://github.com/YunYouJun/mirai-ts
|
[YunYouJun/mirai-ts]: https://github.com/YunYouJun/mirai-ts
|
||||||
|
|
||||||
[nepsyn/miraipie]: https://github.com/nepsyn/miraipie
|
[nepsyn/miraipie]: https://github.com/nepsyn/miraipie
|
||||||
|
|
||||||
[only52607/e-mirai]: https://github.com/only52607/e-mirai
|
[only52607/e-mirai]: https://github.com/only52607/e-mirai
|
||||||
|
|
||||||
[theGravityLab/ProjHyperai]: https://github.com/theGravityLab/ProjHyperai
|
[theGravityLab/ProjHyperai]: https://github.com/theGravityLab/ProjHyperai
|
||||||
|
|
||||||
[yyuueexxiinngg/onebot-kotlin]: https://github.com/yyuueexxiinngg/onebot-kotlin
|
[yyuueexxiinngg/onebot-kotlin]: https://github.com/yyuueexxiinngg/onebot-kotlin
|
||||||
|
|
||||||
[Nambers/MiraiCP]:https://github.com/Nambers/MiraiCP
|
[Nambers/MiraiCP]:https://github.com/Nambers/MiraiCP
|
||||||
|
|
||||||
[drinkal/Mirai-js]:https://github.com/drinkal/Mirai-js
|
[drinkal/Mirai-js]:https://github.com/drinkal/Mirai-js
|
||||||
|
|
||||||
[Coloryr/ColorMirai]: https://github.com/Coloryr/ColorMirai
|
[Coloryr/ColorMirai]: https://github.com/Coloryr/ColorMirai
|
||||||
|
|
||||||
[AHpxChina/Mirai.Net]: https://github.com/AHpxChina/Mirai.Net
|
[AHpxChina/Mirai.Net]: https://github.com/AHpxChina/Mirai.Net
|
||||||
|
|
||||||
[Miyakowww/CocoaFramework2]: https://github.com/Miyakowww/CocoaFramework2
|
[Miyakowww/CocoaFramework2]: https://github.com/Miyakowww/CocoaFramework2
|
||||||
|
|
||||||
[Shimogawa/rubirai]: https://github.com/Shimogawa/rubirai
|
[Shimogawa/rubirai]: https://github.com/Shimogawa/rubirai
|
||||||
|
|
||||||
[Excaive/miraicle]: https://github.com/Excaive/miraicle
|
[Excaive/miraicle]: https://github.com/Excaive/miraicle
|
||||||
|
|
||||||
[nkxingxh/miraiez]: https://github.com/nkxingxh/miraiez
|
[nkxingxh/miraiez]: https://github.com/nkxingxh/miraiez
|
||||||
|
|
||||||
[Xwdit/RainyBot-Core]: https://github.com/Xwdit/RainyBot-Core
|
[Xwdit/RainyBot-Core]: https://github.com/Xwdit/RainyBot-Core
|
||||||
|
|
||||||
[OneBot]: https://github.com/howmanybots/onebot
|
[OneBot]: https://github.com/howmanybots/onebot
|
||||||
|
|
||||||
[Mirai HTTP]: https://github.com/project-mirai/mirai-api-http
|
[Mirai HTTP]: https://github.com/project-mirai/mirai-api-http
|
||||||
|
|
||||||
[jerrita/saaya]: https://github.com/jerrita/saaya
|
[jerrita/saaya]: https://github.com/jerrita/saaya
|
||||||
|
|
||||||
[YiriMirai]: https://github.com/YiriMiraiProject/YiriMirai
|
[YiriMirai]: https://github.com/YiriMiraiProject/YiriMirai
|
||||||
|
|
||||||
### 原生接口
|
### 原生接口
|
||||||
|
|
||||||
这些接口直接在 JVM 上实现,不需要中间件,拥有更佳的性能。
|
这些接口直接在 JVM 上实现,不需要中间件,拥有更佳的性能。
|
||||||
|
|
||||||
| 技术 | 维护者及项目地址 |
|
| 技术 | 维护者及项目地址 |
|
||||||
|:-------------------|:-----------------------|
|
|:-------------------|:-----------------------|
|
||||||
| `Kotlin Scripting` | [iTXTech/mirai-kts] |
|
| `Kotlin Scripting` | [iTXTech/mirai-kts] |
|
||||||
| `C++` | [Nambers/MiraiCP] |
|
| `C++` | [Nambers/MiraiCP] |
|
||||||
| `JavaScript` | [iTXTech/mirai-js] |
|
| `JavaScript` | [iTXTech/mirai-js] |
|
||||||
| *酷 Q DLL 插件* | [iTXTech/mirai-native] |
|
| *酷 Q DLL 插件* | [iTXTech/mirai-native] |
|
||||||
|
|
||||||
### HTTP 接口
|
### HTTP 接口
|
||||||
|
|
||||||
@ -71,42 +105,41 @@
|
|||||||
- [***Mirai HTTP***][Mirai HTTP] 由 Mirai 开发团队提供第一级支持,目前多数 SDK 都基于它;
|
- [***Mirai HTTP***][Mirai HTTP] 由 Mirai 开发团队提供第一级支持,目前多数 SDK 都基于它;
|
||||||
- [OneBot] 标准则兼容酷Q协议,可以让基于酷Q HTTP 插件的项目在 Mirai 平台运行。
|
- [OneBot] 标准则兼容酷Q协议,可以让基于酷Q HTTP 插件的项目在 Mirai 平台运行。
|
||||||
|
|
||||||
| 名称 | 实现 | 维护者及项目地址 |
|
| 名称 | 实现 | 维护者及项目地址 |
|
||||||
|:-----------------|:-------------|:-------------------------------|
|
|:-----------------|:------------|:-------------------------------|
|
||||||
| ***Mirai Http*** | Mirai 标准 | [mamoe/mirai-api-http] |
|
| ***Mirai Http*** | Mirai 标准 | [mamoe/mirai-api-http] |
|
||||||
| *OneBot Http* | [OneBot] 标准 | [yyuueexxiinngg/onebot-kotlin] |
|
| *OneBot Http* | [OneBot] 标准 | [yyuueexxiinngg/onebot-kotlin] |
|
||||||
|
|
||||||
下表列举基于 Mirai HTTP 插件实现对一些编程语言支持的项目列表。要使用它们,你需要[在 Mirai Console 安装 `mirai-api-http`](https://github.com/project-mirai/mirai-api-http#%E5%AE%89%E8%A3%85mirai-api-http)(如果使用上面的一键安装则不需要额外操作)。
|
下表列举基于 Mirai HTTP
|
||||||
|
插件实现对一些编程语言支持的项目列表。要使用它们,你需要[在 Mirai Console 安装 `mirai-api-http`](https://github.com/project-mirai/mirai-api-http#%E5%AE%89%E8%A3%85mirai-api-http)(如果使用上面的一键安装则不需要额外操作)。
|
||||||
|
|
||||||
| 语言和技术 | 维护者及项目地址 |
|
|
||||||
|:--------------------------|:--------------------------------------------|
|
|
||||||
| `C#` | [Executor-Cheng/mirai-CSharp] |
|
|
||||||
| `C#` | [Hyperai][theGravityLab/ProjHyperai] |
|
|
||||||
| `C#` | [Coloryr/ColorMirai] |
|
|
||||||
| `C#` | [AhpxChina/Mirai.Net] |
|
|
||||||
| `C#` | [Miyakowww/CocoaFramework2] |
|
|
||||||
| `C++` | [cyanray/mirai-cpp] |
|
|
||||||
| `C++` | [Chlorie/miraipp] |
|
|
||||||
| `GDScript` | [Xwdit/RainyBot-Core] |
|
|
||||||
| `Go` | [Logiase/gomirai] |
|
|
||||||
| `JavaScript` / Node.js | [RedBeanN/node-mirai] |
|
|
||||||
| `JavaScript` / Node.js | [drinkal/Mirai-js] |
|
|
||||||
| `JavaScript` / TypeScript | [YunYouJun/mirai-ts] |
|
|
||||||
| `JavaScript` / TypeScript | [nepsyn/miraipie]
|
|
||||||
| `PHP` | [nkxingxh/miraiez] |
|
|
||||||
| `Python` | [Ariadne][GraiaProject/Ariadne] |
|
|
||||||
| `Python` | [Avilla][GraiaProject/Avilla] |
|
|
||||||
| `Python` | [Elaina] |
|
|
||||||
| `Python` | [Cesloi] |
|
|
||||||
| `Python` | [NoneBot] |
|
|
||||||
| `Python` | [jerrita/saaya] |
|
|
||||||
| `Python` | [YiriMirai] |
|
|
||||||
| `Python` | [Excaive/miraicle] |
|
|
||||||
| `Ruby` | [Shimogawa/rubirai] |
|
|
||||||
| `Rust` | [HoshinoTented/mirai-rs] |
|
|
||||||
| `易语言` | [only52607/e-mirai] |
|
|
||||||
|
|
||||||
|
| 语言和技术 | 维护者及项目地址 |
|
||||||
|
|:--------------------------|:-------------------------------------|
|
||||||
|
| `C#` | [Executor-Cheng/mirai-CSharp] |
|
||||||
|
| `C#` | [Hyperai][theGravityLab/ProjHyperai] |
|
||||||
|
| `C#` | [Coloryr/ColorMirai] |
|
||||||
|
| `C#` | [AhpxChina/Mirai.Net] |
|
||||||
|
| `C#` | [Miyakowww/CocoaFramework2] |
|
||||||
|
| `C++` | [cyanray/mirai-cpp] |
|
||||||
|
| `C++` | [Chlorie/miraipp] |
|
||||||
|
| `GDScript` | [Xwdit/RainyBot-Core] |
|
||||||
|
| `Go` | [Logiase/gomirai] |
|
||||||
|
| `JavaScript` / Node.js | [RedBeanN/node-mirai] |
|
||||||
|
| `JavaScript` / Node.js | [drinkal/Mirai-js] |
|
||||||
|
| `JavaScript` / TypeScript | [YunYouJun/mirai-ts] |
|
||||||
|
| `JavaScript` / TypeScript | [nepsyn/miraipie] |
|
||||||
|
| `PHP` | [nkxingxh/miraiez] |
|
||||||
|
| `Python` | [Ariadne][GraiaProject/Ariadne] |
|
||||||
|
| `Python` | [Avilla][GraiaProject/Avilla] |
|
||||||
|
| `Python` | [Elaina] |
|
||||||
|
| `Python` | [Cesloi] |
|
||||||
|
| `Python` | [NoneBot] |
|
||||||
|
| `Python` | [jerrita/saaya] |
|
||||||
|
| `Python` | [YiriMirai] |
|
||||||
|
| `Python` | [Excaive/miraicle] |
|
||||||
|
| `Ruby` | [Shimogawa/rubirai] |
|
||||||
|
| `Rust` | [HoshinoTented/mirai-rs] |
|
||||||
|
| `易语言` | [only52607/e-mirai] |
|
||||||
|
|
||||||
> 按字母顺序排序,排序不代表排名
|
> 按字母顺序排序,排序不代表排名
|
||||||
> *想在这里添加你的项目?欢迎[提交 PR](https://github.com/mamoe/mirai/edit/dev/docs/README.md)。*
|
> *想在这里添加你的项目?欢迎[提交 PR](https://github.com/mamoe/mirai/edit/dev/docs/README.md)。*
|
||||||
@ -123,16 +156,17 @@
|
|||||||
|
|
||||||
1. [JVM 环境和开发准备工作](Preparations.md#mirai---preparations)
|
1. [JVM 环境和开发准备工作](Preparations.md#mirai---preparations)
|
||||||
|
|
||||||
2. 选择框架
|
2. 选择框架 建议先阅读 [Mirai 生态概览](mirai-ecology.md)。
|
||||||
建议先阅读 [Mirai 生态概览](mirai-ecology.md)。
|
|
||||||
|
|
||||||
- 若要将 mirai 当做依赖库嵌入你的应用使用(你调用 mirai),则需要使用 mirai-core,请阅读 [配置项目依赖](ConfiguringProjects.md)。
|
- 若要将 mirai 当做依赖库嵌入你的应用使用(你调用 mirai),则需要使用
|
||||||
|
mirai-core,请阅读 [配置项目依赖](ConfiguringProjects.md)。
|
||||||
|
|
||||||
- 若要以插件模式开发(mirai 调用你),可以使用 mirai-console,请阅读 [mirai-console 的配置插件项目](https://github.com/mamoe/mirai-console/blob/master/docs/ConfiguringProjects.md)。
|
- 若要以插件模式开发(mirai 调用你),可以使用
|
||||||
|
mirai-console,请阅读 [mirai-console 的配置插件项目](../mirai-console/docs/ConfiguringProjects.md)
|
||||||
|
。
|
||||||
|
|
||||||
4. 阅读 API 文档(见下文)
|
4. 阅读 API 文档(见下文)
|
||||||
|
|
||||||
|
|
||||||
> 如果你希望先确认 mirai 能够正常运行才能安心阅读文档,可克隆 [mirai-hello-world](https://github.com/project-mirai/mirai-hello-world) 并运行其中 Kotlin 或 Java 入口点 `main`。
|
> 如果你希望先确认 mirai 能够正常运行才能安心阅读文档,可克隆 [mirai-hello-world](https://github.com/project-mirai/mirai-hello-world) 并运行其中 Kotlin 或 Java 入口点 `main`。
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,24 +9,30 @@ Mirai 用户手册。本文面向对开发不熟悉而希望使用 Mirai 的用
|
|||||||
Mirai 控制台现在有两个版本,插件在这两个版本的 Mirai Console 上都可以运行:
|
Mirai 控制台现在有两个版本,插件在这两个版本的 Mirai Console 上都可以运行:
|
||||||
|
|
||||||
[MCLI-1.png]: .UserManual_images/MCLI-1.png
|
[MCLI-1.png]: .UserManual_images/MCLI-1.png
|
||||||
|
|
||||||
[MCPS-1.png]: .UserManual_images/MCPS-1.png
|
[MCPS-1.png]: .UserManual_images/MCPS-1.png
|
||||||
|
|
||||||
| 类型 | 长啥样? | 好用吗? | 怎么装? |
|
| 类型 | 长啥样? | 好用吗? | 怎么装? |
|
||||||
|:-------|:-------------|:----------------|:-------------------------------|
|
|:-----|:-------------|:----------|:----------------------|
|
||||||
| 纯控制台 | [MCLI-1.png] | 稳定,也适合服务器 | [使用纯控制台版本](#使用纯控制台版本) |
|
| 纯控制台 | [MCLI-1.png] | 稳定,也适合服务器 | [使用纯控制台版本](#使用纯控制台版本) |
|
||||||
| 图形界面 | [MCPS-1.png] | 测试版,不稳定 | [使用图形界面版本](#使用图形界面版本) |
|
| 图形界面 | [MCPS-1.png] | 测试版,不稳定 | [使用图形界面版本](#使用图形界面版本) |
|
||||||
|
|
||||||
## 使用图形界面版本
|
## 使用图形界面版本
|
||||||
|
|
||||||
前往 [sonder-joker/mirai-compose](https://github.com/sonder-joker/mirai-compose/releases) 下载适合你的系统的压缩包,解压到一个文件就可以使用。
|
前往 [sonder-joker/mirai-compose](https://github.com/sonder-joker/mirai-compose/releases)
|
||||||
|
下载适合你的系统的压缩包,解压到一个文件就可以使用。
|
||||||
|
|
||||||
## 使用纯控制台版本
|
## 使用纯控制台版本
|
||||||
|
|
||||||
### 安装
|
### 安装
|
||||||
|
|
||||||
可以使用[脚本](https://mirai.mamoe.net/assets/uploads/files/1618372079496-install-20210412.cmd) 自动安装 32 位带 HTTP 插件的版本,也可以使用安装器个性化安装:
|
可以使用[脚本](https://mirai.mamoe.net/assets/uploads/files/1618372079496-install-20210412.cmd)
|
||||||
|
自动安装 32 位带 HTTP 插件的版本,也可以使用安装器个性化安装:
|
||||||
|
|
||||||
|
1.
|
||||||
|
|
||||||
|
访问 [iTXTech/mcl-installer](https://github.com/iTXTech/mcl-installer/releases);
|
||||||
|
|
||||||
1. 访问 [iTXTech/mcl-installer](https://github.com/iTXTech/mcl-installer/releases);
|
|
||||||
2. 下载适合你的系统的可执行文件;
|
2. 下载适合你的系统的可执行文件;
|
||||||
3. 在一个新文件夹存放这个文件,运行它;
|
3. 在一个新文件夹存放这个文件,运行它;
|
||||||
4. 通常可以一路回车使用默认设置完成安装,安装完成后程序自动退出;
|
4. 通常可以一路回车使用默认设置完成安装,安装完成后程序自动退出;
|
||||||
@ -34,16 +40,17 @@ Mirai 控制台现在有两个版本,插件在这两个版本的 Mirai Console
|
|||||||
|
|
||||||
### 了解运行环境
|
### 了解运行环境
|
||||||
|
|
||||||
安装时自动下载了 Mirai Console 启动器(简称 [MCL](https://github.com/iTXTech/mirai-console-loader))。
|
安装时自动下载了 Mirai Console
|
||||||
|
启动器(简称 [MCL](https://github.com/iTXTech/mirai-console-loader))。
|
||||||
|
|
||||||
启动器会帮你准备运行环境,下载和更新 Mirai 核心。你也可以使用启动器下载一些插件(见下文)。
|
启动器会帮你准备运行环境,下载和更新 Mirai 核心。你也可以使用启动器下载一些插件(见下文)。
|
||||||
|
|
||||||
第一次运行 `mcl.cmd` 时会初始化运行环境。下表说明了各个文件夹的用途。
|
第一次运行 `mcl.cmd` 时会初始化运行环境。下表说明了各个文件夹的用途。
|
||||||
|
|
||||||
| 文件夹名称 | 用途 |
|
| 文件夹名称 | 用途 |
|
||||||
|:---------:|:------------------------------|
|
|:---------:|:--------------------|
|
||||||
| `scripts` | 存放启动器的脚本,一般不需要在意他们 |
|
| `scripts` | 存放启动器的脚本,一般不需要在意他们 |
|
||||||
| `plugins` | 存放插件 |
|
| `plugins` | 存放插件 |
|
||||||
| `data` | 存放插件的数据,一般不需要在意它们 |
|
| `data` | 存放插件的数据,一般不需要在意它们 |
|
||||||
| `config` | 存放插件的配置,可以打开并修改配置 |
|
| `config` | 存放插件的配置,可以打开并修改配置 |
|
||||||
| `logs` | 存放运行时的日志,日志默认保留 7 天 |
|
| `logs` | 存放运行时的日志,日志默认保留 7 天 |
|
||||||
@ -58,8 +65,10 @@ Mirai 控制台现在有两个版本,插件在这两个版本的 Mirai Console
|
|||||||
|
|
||||||
Mirai 官方提供两个插件:
|
Mirai 官方提供两个插件:
|
||||||
|
|
||||||
- [chat-command](https://github.com/project-mirai/chat-command): 允许在聊天环境通过以 "/" 起始的消息执行指令
|
- [chat-command](https://github.com/project-mirai/chat-command):
|
||||||
- [mirai-api-http](https://github.com/project-mirai/mirai-api-http):提供 HTTP 支持,允许使用其他编程语言的插件
|
允许在聊天环境通过以 "/" 起始的消息执行指令
|
||||||
|
- [mirai-api-http](https://github.com/project-mirai/mirai-api-http):提供
|
||||||
|
HTTP 支持,允许使用其他编程语言的插件
|
||||||
|
|
||||||
打开命令行 (Windows 系统按住Shift+鼠标右键,点击"在此处打开 PowerShell"),
|
打开命令行 (Windows 系统按住Shift+鼠标右键,点击"在此处打开 PowerShell"),
|
||||||
可以使用 MCL 自动安装这些插件如:
|
可以使用 MCL 自动安装这些插件如:
|
||||||
@ -72,7 +81,8 @@ Mirai 官方提供两个插件:
|
|||||||
|
|
||||||
#### 在哪找社区插件
|
#### 在哪找社区插件
|
||||||
|
|
||||||
- Mirai 官方论坛 [Mirai Forum](https://mirai.mamoe.net/category/11/%E6%8F%92%E4%BB%B6%E5%8F%91%E5%B8%83)
|
- Mirai
|
||||||
|
官方论坛 [Mirai Forum](https://mirai.mamoe.net/category/11/%E6%8F%92%E4%BB%B6%E5%8F%91%E5%B8%83)
|
||||||
|
|
||||||
> *我们还正在建设插件中心,完成后将会简化寻找插件的工作*
|
> *我们还正在建设插件中心,完成后将会简化寻找插件的工作*
|
||||||
|
|
||||||
@ -82,9 +92,12 @@ Mirai 官方提供两个插件:
|
|||||||
|
|
||||||
#### 推荐安装的插件
|
#### 推荐安装的插件
|
||||||
|
|
||||||
- [chat-command](https://github.com/project-mirai/chat-command): 不安装此环境不能在聊天环境中执行命令
|
- [chat-command](https://github.com/project-mirai/chat-command):
|
||||||
- [LuckPerms-Mirai](https://github.com/Karlatemp/LuckPerms-Mirai) (*社区*): 易用的高级高效率权限组插件, 适合权限分配模型比较复杂的情况
|
不安装此环境不能在聊天环境中执行命令
|
||||||
- [mirai-api-http](https://github.com/project-mirai/mirai-api-http):提供 HTTP 支持,允许使用其他编程语言的插件
|
- [LuckPerms-Mirai](https://github.com/Karlatemp/LuckPerms-Mirai) (*
|
||||||
|
社区*): 易用的高级高效率权限组插件, 适合权限分配模型比较复杂的情况
|
||||||
|
- [mirai-api-http](https://github.com/project-mirai/mirai-api-http):提供
|
||||||
|
HTTP 支持,允许使用其他编程语言的插件
|
||||||
|
|
||||||
### 使用控制台指令
|
### 使用控制台指令
|
||||||
|
|
||||||
@ -92,7 +105,8 @@ Mirai 官方提供两个插件:
|
|||||||
|
|
||||||
Mirai Console 内置一些指令,输入 `?` 并回车可以查看指令列表。
|
Mirai Console 内置一些指令,输入 `?` 并回车可以查看指令列表。
|
||||||
|
|
||||||
一些常用指令介绍在[这里](https://github.com/mamoe/mirai-console/blob/master/docs/BuiltInCommands.md#mirai-console---builtin-commands)。
|
一些常用指令介绍在[这里](/mirai-console/docs/BuiltInCommands.md#mirai-console---builtin-commands)
|
||||||
|
。
|
||||||
|
|
||||||
#### 在群聊中使用命令 (权限授予)
|
#### 在群聊中使用命令 (权限授予)
|
||||||
|
|
||||||
@ -107,12 +121,13 @@ Mirai Console 内置一些指令,输入 `?` 并回车可以查看指令列表
|
|||||||
> > 如 `LuckPerms-Mirai` 的权限管理命令为 `/lp` 而不是 `/permission`
|
> > 如 `LuckPerms-Mirai` 的权限管理命令为 `/lp` 而不是 `/permission`
|
||||||
|
|
||||||
要完成权限授予, 你必须通过在控制台执行
|
要完成权限授予, 你必须通过在控制台执行
|
||||||
[`/permission permit [target] [permission]`](https://github.com/mamoe/mirai-console/blob/master/docs/BuiltInCommands.md#permissioncommand)
|
[`/permission permit [target] [permission]`](/mirai-console/docs/BuiltInCommands.md#permissioncommand)
|
||||||
来授予其他人执行相关命令的权限, 需要执行的权限一般情况在插件的介绍页都会给明
|
来授予其他人执行相关命令的权限, 需要执行的权限一般情况在插件的介绍页都会给明
|
||||||
|
|
||||||
`@see` [`PermissionCommand`](https://github.com/mamoe/mirai-console/blob/master/docs/BuiltInCommands.md#permissioncommand)
|
`@see` [`PermissionCommand`](/mirai-console/docs/BuiltInCommands.md#permissioncommand)
|
||||||
|
|
||||||
## 解决问题
|
## 解决问题
|
||||||
|
|
||||||
如果遇到使用问题或想提建议,可以在 [issues](https://github.com/mamoe/mirai/issues) 发表。也可以在[论坛](https://mirai.mamoe.net/)交流想法。
|
如果遇到使用问题或想提建议,可以在 [issues](https://github.com/mamoe/mirai/issues)
|
||||||
|
发表。也可以在[论坛](https://mirai.mamoe.net/)交流想法。
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ Mirai 运行在 JVM,你需要使用 Kotlin 语言或 Java 语言来编写你
|
|||||||
|
|
||||||
> 有关 JVM 平台项目配置可以在[之后](ConfiguringProjects.md#mirai---configuring-projects)了解到。
|
> 有关 JVM 平台项目配置可以在[之后](ConfiguringProjects.md#mirai---configuring-projects)了解到。
|
||||||
|
|
||||||
## [mirai-console](https://github.com/mamoe/mirai-console): Mirai 官方的可拓展式 QQ 机器人管理控制台
|
## [mirai-console](/mirai-console): Mirai 官方的可拓展式 QQ 机器人管理控制台
|
||||||
|
|
||||||
前面我们提到,你可以使用 Mirai 框架提供的对外开放接口来编写个性化QQ机器人程序,而 mirai-console 就是 Mirai 官方开发组编写的 QQ 机器人程序,它**在 Mirai 框架提供的基础功能的基础上进行了封装**并**进一步提供了更方便的开放接口**。
|
前面我们提到,你可以使用 Mirai 框架提供的对外开放接口来编写个性化QQ机器人程序,而 mirai-console 就是 Mirai 官方开发组编写的 QQ 机器人程序,它**在 Mirai 框架提供的基础功能的基础上进行了封装**并**进一步提供了更方便的开放接口**。
|
||||||
|
|
||||||
@ -56,8 +56,13 @@ Mirai 运行在 JVM,你需要使用 Kotlin 语言或 Java 语言来编写你
|
|||||||
|
|
||||||
mirai-console 的内部也不是单一的结构,它分为**前端**和**后端**具体如下:
|
mirai-console 的内部也不是单一的结构,它分为**前端**和**后端**具体如下:
|
||||||
|
|
||||||
- [后端](https://github.com/mamoe/mirai-console/tree/master/backend):后端就是做了上述工作,即提供**指令**,**权限**,**自动数据**等开放接口。
|
- [后端](/mirai-console/backend):后端就是做了上述工作,即提供**指令**,**权限**,**自动数据**
|
||||||
- [前端](https://github.com/mamoe/mirai-console/tree/master/frontend):前端就是启动 mirai-console 并监控后端运行状态的端口,上述命令行解密是前端的一种,即 [**mirai-console-terminal**](https://github.com/mamoe/mirai-console/tree/master/frontend/mirai-console-terminal),在终端启动的前端。另外还有其他可用的前端如运行在 Android 的 **[MiraiAndroid](https://github.com/mzdluo123/MiraiAndroid)**。
|
等开放接口。
|
||||||
|
- [前端](/mirai-console/frontend):前端就是启动 mirai-console
|
||||||
|
并监控后端运行状态的端口,上述命令行解密是前端的一种,即 [**
|
||||||
|
mirai-console-terminal**](/mirai-console/frontend/mirai-console-terminal)
|
||||||
|
,在终端启动的前端。另外还有其他可用的前端如运行在 Android
|
||||||
|
的 **[MiraiAndroid](https://github.com/mzdluo123/MiraiAndroid)**。
|
||||||
|
|
||||||
后端就像是“**电脑主机**”,执行着核心工作,前端就像是“**显示器**”、“**鼠标**”和“**键盘**”,可以控制后端。
|
后端就像是“**电脑主机**”,执行着核心工作,前端就像是“**显示器**”、“**鼠标**”和“**键盘**”,可以控制后端。
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ import kotlin.reflect.KType
|
|||||||
*
|
*
|
||||||
* 一个解决方案是对 [SerializerAwareValue] 做映射或相关修改. 如 [PluginDataExtensions].
|
* 一个解决方案是对 [SerializerAwareValue] 做映射或相关修改. 如 [PluginDataExtensions].
|
||||||
*
|
*
|
||||||
* 要查看详细的解释,请查看 [docs/PluginData.md](https://github.com/mamoe/mirai-console/blob/master/docs/PluginData.md)
|
* 要查看详细的解释,请查看 [docs/PluginData.md](/mirai-console/docs/PluginData.md)
|
||||||
*
|
*
|
||||||
* ## 实现注意
|
* ## 实现注意
|
||||||
* 此类型处于实验性阶段. 使用其中定义的属性和函数是安全的, 但将来可能会新增成员抽象函数.
|
* 此类型处于实验性阶段. 使用其中定义的属性和函数是安全的, 但将来可能会新增成员抽象函数.
|
||||||
|
@ -14,7 +14,9 @@ Mirai Console 分前后端模块实现。开发插件**只需要针对同一个
|
|||||||
|
|
||||||
## 选择版本
|
## 选择版本
|
||||||
|
|
||||||
`mirai-console` 与 `mirai-core` **同步版本**发布。版本号见 [mirai](https://github.com/mamoe/mirai/blob/dev/docs/ConfiguringProjects.md#%E9%80%89%E6%8B%A9%E7%89%88%E6%9C%AC)。
|
`mirai-console` 与 `mirai-core` **同步版本**
|
||||||
|
发布。版本号见 [mirai](/docs/ConfiguringProjects.md#%E9%80%89%E6%8B%A9%E7%89%88%E6%9C%AC)
|
||||||
|
。
|
||||||
|
|
||||||
通常使用最新版本的稳定版本即可。
|
通常使用最新版本的稳定版本即可。
|
||||||
|
|
||||||
@ -24,15 +26,17 @@ Mirai Console 分前后端模块实现。开发插件**只需要针对同一个
|
|||||||
|
|
||||||
### A.使用项目创建工具
|
### A.使用项目创建工具
|
||||||
|
|
||||||
Mirai 为 IntelliJ IDEA 或 Android Studio 提供插件: [安装方法](https://github.com/mamoe/mirai/blob/dev/docs/Preparations.md#%E5%AE%89%E8%A3%85-ide-%E6%8F%92%E4%BB%B6)
|
Mirai 为 IntelliJ IDEA 或 Android Studio
|
||||||
|
提供插件: [安装方法](/docs/Preparations.md#%E5%AE%89%E8%A3%85-ide-%E6%8F%92%E4%BB%B6)
|
||||||
|
|
||||||
之后便可在新建项目时选择 `Mirai`,将会自动套用 [模板项目](https://github.com/project-mirai/mirai-console-plugin-template)。
|
之后便可在新建项目时选择 `Mirai`
|
||||||
|
,将会自动套用 [模板项目](https://github.com/project-mirai/mirai-console-plugin-template)。
|
||||||
|
|
||||||
![](.ConfiguringProjects_images/6d010b1a.png)
|
![](.ConfiguringProjects_images/6d010b1a.png)
|
||||||
|
|
||||||
![](.ConfiguringProjects_images/a6a3b24b.png)
|
![](.ConfiguringProjects_images/a6a3b24b.png)
|
||||||
|
|
||||||
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](https://github.com/mamoe/mirai/blob/dev/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
||||||
|
|
||||||
### B.使用模板项目
|
### B.使用模板项目
|
||||||
|
|
||||||
@ -46,7 +50,7 @@ Mirai 鼓励插件开发者将自己的作品开源,并为此提供了模板
|
|||||||
|
|
||||||
3. 克隆项目,检查并修改生成的属性
|
3. 克隆项目,检查并修改生成的属性
|
||||||
|
|
||||||
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](https://github.com/mamoe/mirai/blob/dev/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
||||||
|
|
||||||
### C.使用 Gradle 插件配置项目
|
### C.使用 Gradle 插件配置项目
|
||||||
|
|
||||||
@ -76,7 +80,7 @@ plugins {
|
|||||||
|
|
||||||
可以在 [README](../tools/gradle-plugin/README.md#mirai-console-gradle-plugin) 获取详细的 Gradle 插件使用方法。
|
可以在 [README](../tools/gradle-plugin/README.md#mirai-console-gradle-plugin) 获取详细的 Gradle 插件使用方法。
|
||||||
|
|
||||||
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](https://github.com/mamoe/mirai/blob/dev/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
||||||
|
|
||||||
### D.手动配置项目
|
### D.手动配置项目
|
||||||
|
|
||||||
@ -96,4 +100,4 @@ dependencies {
|
|||||||
|
|
||||||
注意,在打包插件时必须将依赖一并打包进插件 JAR,且排除 `mirai-core`,`mirai-console` 和[它们的间接依赖](https://mvnrepository.com/artifact/net.mamoe/mirai-core-jvm/2.4.0),否则可能导致兼容性问题。
|
注意,在打包插件时必须将依赖一并打包进插件 JAR,且排除 `mirai-core`,`mirai-console` 和[它们的间接依赖](https://mvnrepository.com/artifact/net.mamoe/mirai-core-jvm/2.4.0),否则可能导致兼容性问题。
|
||||||
|
|
||||||
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](https://github.com/mamoe/mirai/blob/dev/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
> 现在你已经配置好了项目,开始阅读 [Core 开发文档](/docs/CoreAPI.md) 或 [Console 开发文档](README.md#mirai-console)
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
欢迎来到 mirai-console 开发文档!
|
欢迎来到 mirai-console 开发文档!
|
||||||
|
|
||||||
**Mirai Console 基于 [Mirai](https://github.com/mamoe/mirai),因此请先阅读 [Mirai 文档](https://github.com/mamoe/mirai/blob/dev/docs/CoreAPI.md)。**
|
**Mirai Console 基于 [mirai-core](/),因此请先阅读 [Mirai 文档](/docs/CoreAPI.md)
|
||||||
|
。**
|
||||||
|
|
||||||
> 其他链接:
|
> 其他链接:
|
||||||
> - **[如何配置 Mirai Console 项目](ConfiguringProjects.md)**
|
> - **[如何配置 Mirai Console 项目](ConfiguringProjects.md)**
|
||||||
|
@ -4,7 +4,7 @@ Mirai Console 可以独立启动,也可以被嵌入到某个应用中。
|
|||||||
|
|
||||||
## 使用工具自动独立启动
|
## 使用工具自动独立启动
|
||||||
|
|
||||||
该部分文档已经转移到 [用户手册](https://github.com/mamoe/mirai/blob/dev/docs/UserManual.md)。
|
该部分文档已经转移到 [用户手册](/docs/UserManual.md)。
|
||||||
|
|
||||||
## 嵌入应用启动(实验性)
|
## 嵌入应用启动(实验性)
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ kotlin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pluginBundle {
|
pluginBundle {
|
||||||
website = "https://github.com/mamoe/mirai-console"
|
website = "https://github.com/mamoe/mirai"
|
||||||
vcsUrl = "https://github.com/mamoe/mirai-console"
|
vcsUrl = "https://github.com/mamoe/mirai"
|
||||||
tags = listOf("framework", "kotlin", "mirai")
|
tags = listOf("framework", "kotlin", "mirai")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ tasks.withType<org.jetbrains.intellij.tasks.PatchPluginXmlTask> {
|
|||||||
untilBuild.set("215.*")
|
untilBuild.set("215.*")
|
||||||
pluginDescription.set(
|
pluginDescription.set(
|
||||||
"""
|
"""
|
||||||
Plugin development support for <a href='https://github.com/mamoe/mirai-console'>Mirai Console</a>
|
Plugin development support for <a href='https://github.com/mamoe/mirai'>Mirai Console</a>
|
||||||
|
|
||||||
<h3>Features</h3>
|
<h3>Features</h3>
|
||||||
<ul>
|
<ul>
|
||||||
@ -91,7 +91,7 @@ tasks.withType<org.jetbrains.intellij.tasks.PatchPluginXmlTask> {
|
|||||||
)
|
)
|
||||||
changeNotes.set(
|
changeNotes.set(
|
||||||
"""
|
"""
|
||||||
See <a href="https://github.com/mamoe/mirai-console/releases">https://github.com/mamoe/mirai-console/releases</a>
|
See <a href="https://github.com/mamoe/mirai/releases">https://github.com/mamoe/mirai/releases</a>
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user