From bc0b3916bdcde07cf3e4b7dc86b5822357de730f Mon Sep 17 00:00:00 2001 From: iguigui Date: Tue, 31 May 2022 20:47:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8C=85=E4=BC=98=E5=8C=96=E4=B8=80?= =?UTF-8?q?=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Java/Maaj/Maa-HTTP-Server-startup.bat | 18 ++++++++++++++++ src/Java/Maaj/Readme.md | 17 +++++++++++++++ src/Java/Maaj/build.gradle.kts | 17 ++++++++++++++- .../main/java/com/iguigui/maaj/Application.kt | 1 - .../com/iguigui/maaj/routing/HttpRouting.kt | 1 - .../com/iguigui/maaj/routing/WsRouting.kt | 1 - .../com/iguigui/maaj/service/MaaInstance.kt | 7 +------ .../com/iguigui/maaj/service/MaaService.kt | 21 +++++++------------ .../iguigui/maaj/routing/HttpRoutingKtTest.kt | 18 ++++++++-------- 9 files changed, 69 insertions(+), 32 deletions(-) create mode 100644 src/Java/Maaj/Maa-HTTP-Server-startup.bat create mode 100644 src/Java/Maaj/Readme.md diff --git a/src/Java/Maaj/Maa-HTTP-Server-startup.bat b/src/Java/Maaj/Maa-HTTP-Server-startup.bat new file mode 100644 index 0000000000..4d73f416e4 --- /dev/null +++ b/src/Java/Maaj/Maa-HTTP-Server-startup.bat @@ -0,0 +1,18 @@ +@echo off +cd /d %~dp0 +set javaPath=%cd% +cd .. +::显示上级目录路径 + +::设置要临时加入到path环境变量中的路径 +set My_PATH=%cd% + +set PATH=%PATH%;%My_PATH% + +cd javaPath + +::下面写你其它脚本命令 + +java -jar .\Maa-HTTP-0.0.1.jar -port=8848 + +pause diff --git a/src/Java/Maaj/Readme.md b/src/Java/Maaj/Readme.md new file mode 100644 index 0000000000..63e2c6b06c --- /dev/null +++ b/src/Java/Maaj/Readme.md @@ -0,0 +1,17 @@ +# Maa-HTTP接口实现 + +本项目为通过JNA(Java-Native-Access)调用Maa核心实现的HTTP+WebSocket接口实现. + +## 环境依赖 +1. JDK1.8 + +2. Maa v3.9.0-alpha + + +## 如何编译 +.\gradlew.bat jar + +## 使用方法 + +1. 把他丢进 +2. 双击Maa-HTTP-Server-startup.bat启动. +3. 默认端口号8848钛金端口. +4. diff --git a/src/Java/Maaj/build.gradle.kts b/src/Java/Maaj/build.gradle.kts index 4d95a45e33..d70713c67c 100644 --- a/src/Java/Maaj/build.gradle.kts +++ b/src/Java/Maaj/build.gradle.kts @@ -61,7 +61,6 @@ tasks.jar { val sourcesMain = sourceSets.main.get() sourcesMain.allSource.forEach { println("add from sources: ${it.name}") } from(sourcesMain.output) - } launch4j { @@ -86,3 +85,19 @@ tasks.register("MyApp-memory") { fileDescription = "The default implementation with increased heap size" maxHeapPercent = 50 } + + +tasks.withType { + options.encoding = "UTF-8" +} + +val compileKotlin: org.jetbrains.kotlin.gradle.tasks.KotlinCompile by tasks +compileKotlin.kotlinOptions { + jvmTarget = "1.8" +} + + +val compileTestKotlin: org.jetbrains.kotlin.gradle.tasks.KotlinCompile by tasks +compileTestKotlin.kotlinOptions { + jvmTarget = "1.8" +} diff --git a/src/Java/Maaj/src/main/java/com/iguigui/maaj/Application.kt b/src/Java/Maaj/src/main/java/com/iguigui/maaj/Application.kt index 3fb75ad732..fb8d51edbf 100644 --- a/src/Java/Maaj/src/main/java/com/iguigui/maaj/Application.kt +++ b/src/Java/Maaj/src/main/java/com/iguigui/maaj/Application.kt @@ -25,7 +25,6 @@ fun Application.module() { configure() httpRouting() wsRouting() - log.info("Maa HTTP Server 启动成功 ! ") } diff --git a/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/HttpRouting.kt b/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/HttpRouting.kt index 4517eb55ef..fe3e5baaf7 100644 --- a/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/HttpRouting.kt +++ b/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/HttpRouting.kt @@ -38,7 +38,6 @@ fun Application.httpRouting() { with(call.receive()) { val result = MaaService.setTaskParams( id, - type, taskId, params.jsonObject.toString() ) diff --git a/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/WsRouting.kt b/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/WsRouting.kt index 780080b85d..0b00587522 100644 --- a/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/WsRouting.kt +++ b/src/Java/Maaj/src/main/java/com/iguigui/maaj/routing/WsRouting.kt @@ -51,7 +51,6 @@ fun Application.wsRouting() { with(Json.decodeFromJsonElement(SetTaskParamsRequest.serializer(), wsRequest.data)) { val result = MaaService.setTaskParams( id, - type, taskId, params.jsonObject.toString() ) diff --git a/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaInstance.kt b/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaInstance.kt index 6a32fabba7..7209468f40 100644 --- a/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaInstance.kt +++ b/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaInstance.kt @@ -72,7 +72,7 @@ class MaaInstance( fun appendTask(type: String, params: String) = instance.AsstAppendTask(pointer, type, params) - fun setTaskParams(type: String, taskId: Int, params: String) = instance.AsstSetTaskParams(pointer, taskId, params) + fun setTaskParams(taskId: Int, params: String) = instance.AsstSetTaskParams(pointer, taskId, params) fun start(): Boolean { msgId.set(0) @@ -82,9 +82,4 @@ class MaaInstance( fun stop() = instance.AsstStop(pointer) fun destroy() = instance.AsstDestroy(pointer) - //todo - private fun addLog(callBackLog: CallBackLog) { - - } - } diff --git a/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaService.kt b/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaService.kt index ee0bd621b9..16645b345c 100644 --- a/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaService.kt +++ b/src/Java/Maaj/src/main/java/com/iguigui/maaj/service/MaaService.kt @@ -2,17 +2,14 @@ package com.iguigui.maaj.service import com.iguigui.maaj.dto.* import com.iguigui.maaj.easySample.MeoAssistant +import com.iguigui.maaj.logger import com.sun.jna.Native import io.ktor.websocket.* -import kotlinx.coroutines.DelicateCoroutinesApi -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking import java.io.File import java.security.MessageDigest import java.util.* import java.util.concurrent.ConcurrentHashMap -import kotlin.collections.LinkedHashSet object MaaService { @@ -22,10 +19,9 @@ object MaaService { private val wsConnection = Collections.synchronizedSet(LinkedHashSet()) val meoAssistant: MeoAssistant by lazy { - val f = File(this.javaClass.getResource("")?.path ?: "") - var maaPath = f.path - println(maaPath) - maaPath = "C:\\Users\\atmzx\\Desktop\\MeoAssistantArknights3" + var maaPath = File(File("").absolutePath).parent + logger.info("maaPath $maaPath") +// maaPath = "C:\\Users\\atmzx\\Desktop\\MeoAssistantArknights3" System.setProperty("jna.library.path", maaPath) val load = Native.load("MeoAssistant", MeoAssistant::class.java) load.AsstLoadResource(maaPath) @@ -51,8 +47,8 @@ object MaaService { instancePool[id]?.appendTask(type, detailJson) ?: 0 - fun setTaskParams(id: String, type: String, taskId: Int, detailJson: String) = - instancePool[id]?.setTaskParams(type, taskId, detailJson) ?: false + fun setTaskParams(id: String, taskId: Int, detailJson: String) = + instancePool[id]?.setTaskParams(taskId, detailJson) ?: false fun start(id: String) = instancePool[id]?.start() ?: false @@ -85,9 +81,8 @@ object MaaService { } - @OptIn(DelicateCoroutinesApi::class) fun callBackLog(message: CallBackLog) { - GlobalScope.launch(Dispatchers.IO) { + runBlocking { wsConnection.forEach { it.session.send(message.wapperToWsResponse("callBack", 0).toJsonString()) } } } diff --git a/src/Java/Maaj/src/test/java/com/iguigui/maaj/routing/HttpRoutingKtTest.kt b/src/Java/Maaj/src/test/java/com/iguigui/maaj/routing/HttpRoutingKtTest.kt index 80599e3743..bfb1401860 100644 --- a/src/Java/Maaj/src/test/java/com/iguigui/maaj/routing/HttpRoutingKtTest.kt +++ b/src/Java/Maaj/src/test/java/com/iguigui/maaj/routing/HttpRoutingKtTest.kt @@ -13,15 +13,15 @@ import kotlin.test.Test class HttpRoutingKtTest { - @Test - fun testGetApiV1Getversion() = testApplication { - application { - httpRouting() - } - client.get("/API/V1/getVersion").apply { - Assert.assertEquals(status,OK) - } - } +// @Test +// fun testGetApiV1Getversion() = testApplication { +// application { +// httpRouting() +// } +// client.get("/API/V1/getVersion").apply { +// Assert.assertEquals(status,OK) +// } +// } // // @Test // fun testPostApiV1Connect() = testApplication {