mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 01:40:46 +08:00
* feat: 重构主页日志侧边栏整体布局和样式 * feat: 优化一下Live * refactor: 调整卡片布局 * revert: 回滚不知道干嘛的改动 * feat: 调整右上角悬浮窗布局 * chore: AI一直在改个啥 * Revert "chore: AI一直在改个啥" This reverts commit b5ae565c34a2a187ae953cc385b0b85de83fc140. * perf: 调整卡片分割逻辑,优化界面布局 * perf: 优化显示效果 * rft: 简化绑定 * chore: 调整界面布局 * feat: 任务报错更新缩略图 * feat: 肉鸽开始探索前分割卡片 * feat: 肉鸽结算更新缩略图 * feat: 肉鸽战斗成功/失败时更新缩略图 * feat: 事件选择更新图片 * fix: 在缩放时对 BGR 缓冲区长度或尺寸不匹配的情况进行防护 * chore: 添加日志,删除无用的 using * style: 格式化代码 * fix: 避免在使用 PropertyDependsOn 的同时重复发送依赖属性通知。 * fix: 下载日志错位 * fix: 图片数量限制错误 * feat: 自定义最大缩略图数量 * fix: en 语言下背景图片选择按钮文字无法显示完全 * chore: 新用户标题栏默认不显示配置名称 * chore: 标题栏端口地址默认省略 127.0.0.1: 与 localhost: * feat: 卡片背景色 * chore: 删除没用的 ColumnDefinitions * feat: 就要四个字 --------- Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
16 KiB
16 KiB
Maa-HTTP 接口实现
基于 JNA (Java-Native-Access) 调用 Maa 核心的 HTTP + WebSocket 接口实现. 仅在 Windows 下进行过测试,未在 Linux 下测试过(相信强大的 Linux 用户自己可以解决问题!
接口实现情况
| 功能名称 | 接口路径(命令) | HTTP实现 | WebSocket实现 |
|---|---|---|---|
| 获取版本号 | getVersion | Yes | Yes |
| 创建连接 | connect | Yes | Yes |
| 添加任务 | appendTask | Yes | Yes |
| 设定任务参数 | setTaskParams | Yes | Yes |
| 开始执行 | start | Yes | Yes |
| 停止执行 | stop | Yes | Yes |
| 销毁实例 | destroy | Yes | Yes |
| 列出实例连接 | listInstance | Yes | Yes |
| 消息回调通知 | callBack | No | Yes |
| 获取截图 | getImage | Yes | No |
环境依赖
- JDK1.8 +
- Maa v3.9.0-alpha +
如何编译
.\gradlew.bat jar
使用方法
-
把他丢进 Maa 文件夹下,形成如下文件结构.备注: 启动脚本Maa-HTTP-Server-startup.bat.
MaaCoreArknights_v3.9.0-beta.8 │ MAA.exe │ MaaCore.dll │ ... └───Java-HTTP │ Maa-HTTP-0.0.1.jar │ Maa-HTTP-Server-startup.bat -
双击Maa-HTTP-Server-startup.bat启动.
-
默认端口号8848钛金端口,如需修改,请修改 Maa-HTTP-Server-startup.bat 中的-port=8848 .
-
当你看到如下内容则启动成功.
2022-05-31 22:20:03.000 [main] INFO Application - Autoreload is disabled because the development mode is off.
2022-05-31 22:20:03.407 [main] INFO Application - Application started in 0.458 seconds.
2022-05-31 22:20:03.407 [main] INFO Application - Application started: io.ktor.server.application.Application@fac80
2022-05-31 22:20:03.717 [DefaultDispatcher-worker-1] INFO Application - Responding at http://0.0.0.0:8848
接口文档
HTTP 部分
提供了如下功能
| 功能名称 | 接口路径 |
|---|---|
| 获取版本号 | getVersion |
| 创建连接 | connect |
| 添加任务 | appendTask |
| 设定任务参数 | setTaskParams |
| 开始执行 | start |
| 停止执行 | stop |
| 销毁实例 | destroy |
| 列出连接 | listInstance |
| 获取截图 | getImage |
接口名称 获取版本号
1) 请求地址
2) 调用方式: HTTP get
3) 请求参数: 无
4) 返回结果示例
{
"data": {
"version": "v3.9.0-beta"
},
"code": 0,
"message": "success"
}
接口名称 创建连接
1) 请求地址
2) 调用方式: HTTP post
3) 请求参数
{
"adbPath": "C:\\MaaCoreArknights3\\platform-tools\\adb.exe",
"host": "127.0.0.1:62001",
"detailJson": ""
}
Post 参数
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| adbPath | ADB地址 | String | Y | - |
| host | 实例地址 | String | Y | - |
| detailJson | 有什么用我也不知道,反正就是有 | String | N | - |
4) 请求返回结果
{
"data": {
"id": "46b9d5cd60382f100b336b17d6817f8eda255f73",
"result": true
},
"code": 0,
"message": "success"
}
5) 请求返回结果参数说明
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| id | 给连接实例创建的ID | String | - |
| result | 是否成功 | Boolean | - |
接口名称 添加任务
1) 请求地址
2) 调用方式: HTTP post
3) 请求参数
{
"id": "46b9d5cd60382f100b336b17d6817f8eda255f73",
"type": "Fight",
"params": {
"stage": "LastBattle"
}
}
Post 参数
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| id | 创建连接返回的实例ID | String | Y | - |
| type | 任务类型,此次示例为理智作战战斗,详情参考集成文档 | String | Y | - |
| params | 任务参数 | Json | Y | - |
4) 请求返回结果
{
"data": {
"id": "46b9d5cd60382f100b336b17d6817f8eda255f73",
"taskId": 0
},
"code": 0,
"message": "success"
}
5) 请求返回结果参数说明
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| id | 实例ID | String | - |
| taskId | 任务ID,为0则失败 | Int | - |
接口名称 设定任务参数
1) 请求地址
2) 调用方式: HTTP post
3) 请求参数
{
"id": "46b9d5cd60382f100b336b17d6817f8eda255f73",
"type": "Fight",
"taskId": 0,
"params": {
"stage": "LastBattle"
}
}
Post 参数
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| id | 创建连接返回的实例ID | String | Y | - |
| taskId | 任务ID | Int | Y | - |
| type | 任务类型,此次示例为理智作战战斗,详情参考集成文档 | String | Y | - |
| params | 任务参数 | Json | Y | - |
4) 请求返回结果
{
"data": {
"id": "46b9d5cd60382f100b336b17d6817f8eda255f73",
"result": false
},
"code": 0,
"message": "success"
}
5) 请求返回结果参数说明
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| id | 给连接实例创建的ID | String | - |
| result | 是否成功 | Boolean | - |
接口名称 开始执行
1) 请求地址
2) 调用方式: HTTP post
3) 请求参数
{
"id": "ccd76e0c367511158ca774ff951a22e8bb62f5d3"
}
Post 参数
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| id | 创建连接返回的实例ID | String | Y | - |
4) 请求返回结果
{
"data": {
"id": "ccd76e0c367511158ca774ff951a22e8bb62f5d3",
"result": true
},
"code": 0,
"message": "success"
}
5) 请求返回结果参数说明
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| id | 给连接实例创建的ID | String | - |
| result | 是否成功 | Boolean | - |
接口名称 停止执行,清空任务链
1) 请求地址
2) 调用方式: HTTP post
3) 请求参数
{
"id": "ccd76e0c367511158ca774ff951a22e8bb62f5d3"
}
Post 参数
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| id | 创建连接返回的实例ID | String | Y | - |
4) 请求返回结果
{
"data": {
"id": "ccd76e0c367511158ca774ff951a22e8bb62f5d3",
"result": true
},
"code": 0,
"message": "success"
}
5) 请求返回结果参数说明
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| id | 给连接实例创建的ID | String | - |
| result | 是否成功 | Boolean | - |
接口名称 销毁实例
1) 请求地址
2) 调用方式: HTTP post
3) 请求参数
{
"id": "ccd76e0c367511158ca774ff951a22e8bb62f5d3"
}
Post 参数
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| id | 创建连接返回的实例ID | String | Y | - |
4) 请求返回结果
{
"data": {
"id": "ccd76e0c367511158ca774ff951a22e8bb62f5d3",
"result": true
},
"code": 0,
"message": "success"
}
5) 请求返回结果参数说明
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| id | 给连接实例创建的ID | String | - |
| result | 是否成功 | Boolean | - |
接口名称 列出实例连接
1) 请求地址
2) 调用方式: HTTP get
3) 请求参数: 无
4) 请求返回结果
{
"data": {
"list": [
{
"id": "ccd76e0c367511158ca774ff951a22e8bb62f5d3",
"host": "127.0.0.1:62026",
"adbPath": "C:\\Users\\atmzx\\Desktop\\MaaCoreArknights3\\platform-tools\\adb.exe",
"uuid": "",
"status": 0
}
]
},
"code": 0,
"message": "success"
}
5) 请求返回结果参数说明
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| id | 实例ID | String | - |
| host | 连接的Host | String | - |
| adbPath | 使用的Adb地址 | String | - |
| uuid | 设备备ID,保留 | String | - |
| status | 0待机中,1任务执行中 | Int | - |
接口名称 获取截图
1) 请求地址
2) 调用方式: HTTP get
3) 请求参数
Get参数
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| id | 创建连接返回的实例ID | String | Y | - |
4) 请求返回结果: 图片内容, PNG 格式
WebSocket 部分
请求地址(没错跟HTTP同样是8848钛金端口
提供了如下功能
| 功能名称 | 命令 |
|---|---|
| 获取版本号 | getVersion |
| 创建连接 | connect |
| 添加任务 | appendTask |
| 设定任务参数 | setTaskParams |
| 开始执行 | start |
| 停止执行 | stop |
| 销毁实例 | destroy |
| 列出实例连接 | listInstance |
| 消息回调通知 | callBack |
所有的的WebSocket接口跟HTTP接口请求响应参数均完全一致
接口名称 获取版本号
{
"command": "getVersion",
"msgId": 114514,
"data": {}
}
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| command | 操作命令 | String | ,Y | - |
| msgId | 消息ID,服务端收到此次请求,会用同一个ID答复,便于请求响应关联 | Int | Y | - |
| data | 请求参数,请参考同名接口的HTTP接口文档,与HTTP接口完全一致 | Json | Y | - |
请求返回结果
{
"data": {
"version": "v3.9.0-beta"
},
"command": "getVersion",
"msgId": 114514,
"code": 0,
"message": "success"
}
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| command | 操作命令,与请求一致 | String | - |
| msgId | 消息ID,此次请求的消息ID为114514则响应也是114514 | Int | - |
| data | 响应内容,请参考同名接口的HTTP接口文档,与HTTP接口完全一致 | Json | - |
接口名称 创建连接
{
"command": "connect",
"msgId": 114514,
"data": {
"adbPath": "C:\\Users\\atmzx\\Desktop\\MaaCoreArknights3\\platform-tools\\adb.exe",
"host": "127.0.0.1:62001"
}
}
| 字段名称 | 字段说明 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| command | 操作命令 | String | ,Y | - |
| msgId | 消息ID,服务端收到此次请求,会用同一个ID答复,便于请求响应关联 | Int | Y | - |
| data | 请求参数,请参考同名接口的HTTP文档,与HTTP接口完全一致 | Json | Y | - |
请求返回结果
{
"data": {
"id": "46b9d5cd60382f100b336b17d6817f8eda255f73",
"result": true
},
"command": "connect",
"msgId": 114514,
"code": 0,
"message": "success"
}
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| command | 操作命令,与请求一致 | String | - |
| msgId | 消息ID,此次请求的消息ID为114514则响应也是114514 | Int | - |
| data | 响应内容,请参考同名接口的HTTP接口文档,与HTTP接口完全一致 | Json | - |
appendTask setTaskParams start stop等接口不再描述,均可遵循以上规则,参考HTTP接口文档实现。
接口名称 回调消息
返回结果示例
{
"data": {
"id": "46b9d5cd60382f100b336b17d6817f8eda255f73",
"logId": 1,
"msg": 2,
"details": {
"uuid": "",
"details": {
"adb": "C:\\MaaCoreArknights3\\platform-tools\\adb.exe",
"address": "127.0.0.1:62001",
"config": "General",
"width": 1280,
"height": 720
},
"what": "ResolutionGot",
"why": ""
}
},
"command": "callBack",
"msgId": 0,
"code": 0,
"message": "success"
}
| 字段名称 | 字段说明 | 类型 | 备注 |
|---|---|---|---|
| command | 操作命令,callBack类型 | String | - |
| msgId | 消息ID,callBack 一律为0 | Int | - |
| data | 响应内容,详情参考集成文档 | Json | - |