diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index ef4060e..8fb6b55 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -8,6 +8,7 @@
+
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 2a65317..7e0a09a 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -9,6 +9,7 @@
diff --git a/.idea/modules.xml b/.idea/modules.xml
index f55fa3e..9260d95 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,6 +3,7 @@
+
\ No newline at end of file
diff --git a/.idea/modules/mybot-api/MyBot.mybot-api.main.iml b/.idea/modules/mybot-api/MyBot.mybot-api.main.iml
new file mode 100644
index 0000000..4acdb19
--- /dev/null
+++ b/.idea/modules/mybot-api/MyBot.mybot-api.main.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index 601fce8..93c9844 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,39 +2,58 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer
val projectName = rootProject.name
-val groupName by extra("cn.wzpmc")
-val projectArtifactId by extra("my-bot")
-val projectVersion by extra("1.0.1")
+val groupName: String by extra
+val projectArtifactId: String by extra
+val projectVersion: String by extra
plugins {
id("java")
- id("maven-publish")
id("com.github.johnrengelman.shadow") version "8.1.1"
}
+allprojects {
+ apply(plugin = "java")
+ val groupName by extra("cn.wzpmc")
+ val projectArtifactId by extra("my-bot")
+ val projectVersion by extra("1.0.1")
+ repositories {
+ mavenCentral()
+ maven("https://libraries.minecraft.net")
+ }
+ dependencies {
+ // https://mvnrepository.com/artifact/org.projectlombok/lombok
+ compileOnly("org.projectlombok:lombok:1.18.34")
+ annotationProcessor("org.projectlombok:lombok:1.18.34")
+ // https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2
+ implementation("com.alibaba.fastjson2:fastjson2:2.0.52")
+ implementation("com.mojang:brigadier:1.0.18")
+ // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api
+ implementation("org.apache.logging.log4j:log4j-api:2.23.1")
+ testImplementation(platform("org.junit:junit-bom:5.10.0"))
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ }
+ tasks.compileJava {
+ options.encoding = "UTF-8"
+ }
+ tasks.javadoc {
+ options.encoding = "UTF-8"
+ }
+}
group = groupName
version = projectVersion
-repositories {
- mavenCentral()
- maven("https://libraries.minecraft.net")
-}
dependencies {
+ implementation(project(":mybot-api"))
implementation("net.minecrell:terminalconsoleappender:1.3.0") {
exclude(group = "org.apache.logging.log4j", module = "log4j-core")
exclude(group = "org.apache.logging.log4j", module = "log4j-api")
}
- implementation("com.mojang:brigadier:1.0.18")
// https://mvnrepository.com/artifact/io.netty/netty-all
implementation("io.netty:netty-all:4.1.112.Final")
// https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core
implementation("org.apache.logging.log4j:log4j-core:2.23.1")
- // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api
- implementation("org.apache.logging.log4j:log4j-api:2.23.1")
// https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jul
implementation("org.apache.logging.log4j:log4j-jul:2.23.1")
- // https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2
- implementation("com.alibaba.fastjson2:fastjson2:2.0.52")
// https://mvnrepository.com/artifact/org.yaml/snakeyaml
implementation("org.yaml:snakeyaml:2.2")
// https://mvnrepository.com/artifact/org.jline/jline
@@ -46,22 +65,6 @@ dependencies {
implementation("org.jline:jline-terminal-jansi:3.26.3")
// https://mvnrepository.com/artifact/org.fusesource.jansi/jansi
implementation("org.fusesource.jansi:jansi:2.4.1")
- /*// https://mvnrepository.com/artifact/org.jline/jline-terminal-jna
- implementation("org.jline:jline-terminal-jna:3.26.3")
- // https://mvnrepository.com/artifact/net.java.dev.jna/jna
- implementation("net.java.dev.jna:jna:5.14.0")*/
- // https://mvnrepository.com/artifact/org.projectlombok/lombok
- compileOnly("org.projectlombok:lombok:1.18.34")
- annotationProcessor("org.projectlombok:lombok:1.18.34")
- testImplementation(platform("org.junit:junit-bom:5.10.0"))
- testImplementation("org.junit.jupiter:junit-jupiter")
-}
-
-tasks.compileJava {
- options.encoding = "UTF-8"
-}
-tasks.javadoc {
- options.encoding = "UTF-8"
}
tasks.register("javadocJar") {
archiveClassifier.set("javadoc")
@@ -86,57 +89,6 @@ tasks.withType {
tasks.named("build") {
dependsOn(tasks.named("shadowJar"))
}
-publishing {
- publications {
- create("mavenJava") {
- from(components["java"])
-
- groupId = groupName
- artifactId = projectArtifactId
- version = projectVersion
- artifact(tasks.named("javadocJar"))
- artifact(tasks.named("sourcesJar"))
- pom {
- name.set(projectName)
- description.set("A Java-based OneBot11-compatible robot framework")
-
- licenses {
- license {
- name.set("The MIT License")
- url.set("https://opensource.org/licenses/MIT")
- }
- }
-
- developers {
- developer {
- id.set("wzp")
- name.set("wzp")
- email.set("minecraftwzpmc@gmail.com")
- }
- }
-
- scm {
- connection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git")
- developerConnection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git")
- url.set("https://wzpmc.cn:3000/wzp/MyBot")
- }
- }
- }
- }
-
- repositories {
- maven {
- val releasesRepoUrl = uri("https://wzpmc.cn:90/repository/maven-releases")
- val snapshotsRepoUrl = uri("https://wzpmc.cn:90/repository/maven-snapshots")
- url = if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl
-
- credentials {
- username = project.findProperty("repo.user") as String? ?: ""
- password = project.findProperty("repo.password") as String? ?: ""
- }
- }
- }
-}
tasks.test {
useJUnitPlatform()
}
\ No newline at end of file
diff --git a/mybot-api/build.gradle.kts b/mybot-api/build.gradle.kts
new file mode 100644
index 0000000..2f872ff
--- /dev/null
+++ b/mybot-api/build.gradle.kts
@@ -0,0 +1,79 @@
+val projectName = rootProject.name
+val groupName: String by extra
+val projectArtifactId = "mybot-api"
+val projectVersion: String by extra
+plugins {
+ id("java")
+ id("maven-publish")
+}
+
+group = "cn.wzpmc"
+version = projectVersion
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {}
+tasks.register("javadocJar") {
+ archiveClassifier.set("javadoc")
+ from(tasks.named("javadoc"))
+}
+tasks.register("sourcesJar") {
+ archiveClassifier.set("sources")
+ from(sourceSets.main.get().allSource)
+}
+publishing {
+ publications {
+ create("mavenJava") {
+ from(components["java"])
+
+ groupId = groupName
+ artifactId = projectArtifactId
+ version = projectVersion
+ artifact(tasks.named("javadocJar"))
+ artifact(tasks.named("sourcesJar"))
+ pom {
+ name.set(projectName)
+ description.set("A Java-based OneBot11-compatible robot framework")
+
+ licenses {
+ license {
+ name.set("The MIT License")
+ url.set("https://opensource.org/licenses/MIT")
+ }
+ }
+
+ developers {
+ developer {
+ id.set("wzp")
+ name.set("wzp")
+ email.set("minecraftwzpmc@gmail.com")
+ }
+ }
+
+ scm {
+ connection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git")
+ developerConnection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git")
+ url.set("https://wzpmc.cn:3000/wzp/MyBot")
+ }
+ }
+ }
+ }
+
+ repositories {
+ maven {
+ val releasesRepoUrl = uri("https://wzpmc.cn:90/repository/maven-releases")
+ val snapshotsRepoUrl = uri("https://wzpmc.cn:90/repository/maven-snapshots")
+ url = if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl
+
+ credentials {
+ username = project.findProperty("repo.user") as String? ?: ""
+ password = project.findProperty("repo.password") as String? ?: ""
+ }
+ }
+ }
+}
+tasks.test {
+ useJUnitPlatform()
+}
\ No newline at end of file
diff --git a/src/main/java/cn/wzpmc/api/api/Action.java b/mybot-api/src/main/java/cn/wzpmc/api/Action.java
similarity index 93%
rename from src/main/java/cn/wzpmc/api/api/Action.java
rename to mybot-api/src/main/java/cn/wzpmc/api/Action.java
index 008f929..96b9e89 100644
--- a/src/main/java/cn/wzpmc/api/api/Action.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/Action.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.api;
+package cn.wzpmc.api;
import lombok.*;
@@ -6,9 +6,10 @@ import java.util.UUID;
/**
* 抽象请求体
+ *
* @author wzp
- * @since 2024/8/16 21:36
* @version 0.0.5-dev
+ * @since 2024/8/16 21:36
*/
@Getter
@ToString
@@ -16,19 +17,22 @@ import java.util.UUID;
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Setter(AccessLevel.PROTECTED)
public class Action {
+ /**
+ * 请求回调值(默认随机生成,不建议自己修改)
+ *
+ * @since 2024/8/23 21:29 v0.0.5-dev
+ */
+ private final UUID echo = UUID.randomUUID();
/**
* 请求操作类型
+ *
* @since 2024/8/23 21:29 v0.0.5-dev
*/
private Actions action;
/**
* 请求参数
+ *
* @since 2024/8/23 21:29 v0.0.5-dev
*/
private REQUEST params;
- /**
- * 请求回调值(默认随机生成,不建议自己修改)
- * @since 2024/8/23 21:29 v0.0.5-dev
- */
- private final UUID echo = UUID.randomUUID();
}
diff --git a/src/main/java/cn/wzpmc/api/api/ActionResponse.java b/mybot-api/src/main/java/cn/wzpmc/api/ActionResponse.java
similarity index 92%
rename from src/main/java/cn/wzpmc/api/api/ActionResponse.java
rename to mybot-api/src/main/java/cn/wzpmc/api/ActionResponse.java
index 8ff65ce..3e610f7 100644
--- a/src/main/java/cn/wzpmc/api/api/ActionResponse.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/ActionResponse.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.api;
+package cn.wzpmc.api;
import lombok.Data;
@@ -6,6 +6,7 @@ import java.util.UUID;
/**
* 请求操作返回
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/16 17:43
@@ -14,21 +15,25 @@ import java.util.UUID;
public class ActionResponse {
/**
* 请求返回消息
+ *
* @since 2024/8/23 21:30 v0.0.5-dev
*/
private final String status;
/**
* 请求返回码
+ *
* @since 2024/8/23 21:30 v0.0.5-dev
*/
private final short retcode;
/**
* 请求返回数据
+ *
* @since 2024/8/23 21:31 v0.0.5-dev
*/
private final RESPONSE data;
/**
* 请求返回回调
+ *
* @since 2024/8/23 21:31 v0.0.5-dev
*/
private final UUID echo;
diff --git a/src/main/java/cn/wzpmc/api/api/Actions.java b/mybot-api/src/main/java/cn/wzpmc/api/Actions.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/api/Actions.java
rename to mybot-api/src/main/java/cn/wzpmc/api/Actions.java
index 83e781c..09f82b9 100644
--- a/src/main/java/cn/wzpmc/api/api/Actions.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/Actions.java
@@ -1,212 +1,253 @@
-package cn.wzpmc.api.api;
+package cn.wzpmc.api;
-import cn.wzpmc.api.api.actions.message.send.SendMessageActionResponseData;
-import cn.wzpmc.api.entities.*;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.IUser;
+import cn.wzpmc.api.actions.message.send.SendMessageActionResponseData;
+import cn.wzpmc.entities.*;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.IUser;
/**
* 操作类型
+ *
* @author wzp
- * @since 2024/8/16 22:24
* @version 0.0.5-dev
+ * @since 2024/8/16 22:24
*/
public enum Actions {
/**
* 发送私聊消息
+ *
* @since 2024/8/23 21:07 v0.0.5-dev
*/
SEND_PRIVATE_MSG(SendMessageActionResponseData.class),
/**
* 发送群消息
+ *
* @since 2024/8/23 21:07 v0.0.5-dev
*/
SEND_GROUP_MSG(SendMessageActionResponseData.class),
/**
* 撤回消息
+ *
* @since 2024/8/23 21:07 v0.0.5-dev
*/
DELETE_MSG,
/**
* 获取消息
+ *
* @since 2024/8/23 21:07 v0.0.5-dev
*/
GET_MSG(MessageInformation.class),
/**
* 获取合并转发消息
+ *
* @since 2024/8/23 21:08 v0.0.5-dev
*/
GET_FORWARD_MSG(MessageInformation.class),
/**
* 发送好友赞
+ *
* @since 2024/8/23 21:08 v0.0.5-dev
*/
SEND_LIKE,
/**
* 群组踢人
+ *
* @since 2024/8/23 21:08 v0.0.5-dev
*/
SET_GROUP_KICK,
/**
* 群组单人禁言
+ *
* @since 2024/8/23 21:08 v0.0.5-dev
*/
SET_GROUP_BAN,
/**
* 群组匿名用户禁言
+ *
* @since 2024/8/23 21:08 v0.0.5-dev
*/
SET_GROUP_ANONYMOUS_BAN,
/**
* 群组全员禁言
+ *
* @since 2024/8/23 21:09 v0.0.5-dev
*/
SET_GROUP_WHOLE_BAN,
/**
* 群组设置管理员
+ *
* @since 2024/8/23 21:09 v0.0.5-dev
*/
SET_GROUP_ADMIN,
/**
* 群组匿名
+ *
* @since 2024/8/23 21:09 v0.0.5-dev
*/
SET_GROUP_ANONYMOUS,
/**
* 设置群名片(群备注)
+ *
* @since 2024/8/23 21:09 v0.0.5-dev
*/
SET_GROUP_CARD,
/**
* 设置群名
+ *
* @since 2024/8/24 19:04 v0.0.6-dev
*/
SET_GROUP_NAME,
/**
* 退出群组
+ *
* @since 2024/8/24 20:01 v0.0.6-dev
*/
SET_GROUP_LEAVE,
/**
* 设置群组专属头衔
+ *
* @since 2024/8/24 20:01 v0.0.6-dev
*/
SET_GROUP_SPECIAL_TITLE,
/**
* 处理加好友请求
+ *
* @since 2024/8/24 20:01 v0.0.6-dev
*/
SET_FRIEND_ADD_REQUEST,
/**
* 处理加群请求/邀请
+ *
* @since 2024/8/24 20:02 v0.0.6-dev
*/
SET_GROUP_ADD_REQUEST,
/**
* 获取登录号信息
+ *
* @since 2024/8/24 20:02 v0.0.6-dev
*/
GET_LOGIN_INFO(IBot.class),
/**
* 获取陌生人信息
+ *
* @since 2024/8/24 20:02 v0.0.6-dev
*/
GET_STRANGER_INFO(IUser.class),
/**
* 获取好友列表
+ *
* @since 2024/8/24 20:02 v0.0.6-dev
*/
GET_FRIEND_LIST(MessageInformation.class, true),
/**
* 获取群信息
+ *
* @since 2024/8/24 20:02 v0.0.6-dev
*/
GET_GROUP_INFO(GroupInformation.class),
/**
* 获取群列表
+ *
* @since 2024/8/24 20:02 v0.0.6-dev
*/
GET_GROUP_LIST(GroupInformation.class, true),
/**
* 获取群成员信息
+ *
* @since 2024/8/24 20:02 v0.0.6-dev
*/
GET_GROUP_MEMBER_INFO(GroupMemberInformation.class),
/**
* 获取群成员列表
+ *
* @since 2024/8/24 20:03 v0.0.6-dev
*/
GET_GROUP_MEMBER_LIST(GroupMemberInformation.class, true),
/**
* 获取群荣誉信息
+ *
* @since 2024/8/24 20:03 v0.0.6-dev
*/
GET_GROUP_HONOR_INFO(HonorInformation.class),
/**
* 获取 Cookies
+ *
* @since 2024/8/24 20:03 v0.0.6-dev
*/
GET_COOKIES(CookiesInformation.class),
/**
* 获取 CSRF Token
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
GET_CSRF_TOKEN(CsrfTokenInformation.class),
/**
* 获取 QQ 相关接口凭证
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
GET_CREDENTIALS(CredentialsInformation.class),
/**
* 获取语音
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
GET_RECORD(FilePathInformation.class),
/**
* 获取图片
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
GET_IMAGE(FilePathInformation.class),
/**
* 检查是否可以发送图片
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
CAN_SEND_IMAGE(YesNo.class),
/**
* 检查是否可以发送语音
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
CAN_SEND_RECORD(YesNo.class),
/**
* 获取运行状态
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
GET_STATUS(BotStatus.class),
/**
* 获取版本信息
+ *
* @since 2024/8/24 20:04 v0.0.6-dev
*/
GET_VERSION_INFO(VersionInformation.class),
/**
* 重启 OneBot 实现
+ *
* @since 2024/8/24 20:05 v0.0.6-dev
*/
SET_RESTART,
/**
* 清理缓存
+ *
* @since 2024/8/24 20:05 v0.0.6-dev
*/
CLEAN_CACHE;
public final Class> responseClass;
public final boolean array;
+
Actions(Class> responseClass, boolean array) {
this.responseClass = responseClass;
this.array = array;
}
+
Actions(Class> responseClass) {
this(responseClass, false);
}
- Actions(){
+
+ Actions() {
this(Void.class);
}
}
diff --git a/src/main/java/cn/wzpmc/api/api/IMainApi.java b/mybot-api/src/main/java/cn/wzpmc/api/IMainApi.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/api/IMainApi.java
rename to mybot-api/src/main/java/cn/wzpmc/api/IMainApi.java
index 269b8bb..b209256 100644
--- a/src/main/java/cn/wzpmc/api/api/IMainApi.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/IMainApi.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.api;
+package cn.wzpmc.api;
/**
* 主Api接口
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/16 17:31
@@ -9,13 +10,14 @@ package cn.wzpmc.api.api;
public interface IMainApi {
/**
* 进行请求操作
+ *
+ * @param packet 请求包
+ * @param 请求类型
+ * @param 返回类型
+ * @return 请求返回包
+ * @throws InterruptedException 请求过程中出现Ctrl+C时抛出
* @author wzp
* @since 2024/8/23 21:32 v0.0.5-dev
- * @param packet 请求包
- * @return 请求返回包
- * @param 请求类型
- * @param 返回类型
- * @throws InterruptedException 请求过程中出现Ctrl+C时抛出
*/
ActionResponse doApiCall(Action packet) throws InterruptedException;
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/CleanCacheAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/CleanCacheAction.java
similarity index 75%
rename from src/main/java/cn/wzpmc/api/api/actions/message/CleanCacheAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/CleanCacheAction.java
index 0ec2406..9e227c9 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/CleanCacheAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/CleanCacheAction.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.api.actions.message;
+package cn.wzpmc.api.actions.message;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
/**
* 清理缓存
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:46
@@ -12,6 +13,7 @@ import cn.wzpmc.api.api.Actions;
public class CleanCacheAction extends Action {
/**
* 清理缓存
+ *
* @author wzp
* @since 2024/8/24 23:59 v0.0.6-dev
*/
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendImageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendImageAction.java
similarity index 65%
rename from src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendImageAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendImageAction.java
index 10c8a35..a93ba27 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendImageAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendImageAction.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.api.actions.message.can;
+package cn.wzpmc.api.actions.message.can;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.YesNo;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.YesNo;
/**
* 检查是否可以发送图片
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:45
@@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.YesNo;
public class CanSendImageAction extends Action {
/**
* 检查是否可以发送图片
+ *
* @author wzp
* @since 2024/8/24 23:51 v0.0.6-dev
*/
- public CanSendImageAction(){
+ public CanSendImageAction() {
super.setAction(Actions.CAN_SEND_IMAGE);
}
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendRecordAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendRecordAction.java
similarity index 65%
rename from src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendRecordAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendRecordAction.java
index c30184a..d27fe91 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendRecordAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendRecordAction.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.api.actions.message.can;
+package cn.wzpmc.api.actions.message.can;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.YesNo;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.YesNo;
/**
* 检查是否可以发送语音
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:45
@@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.YesNo;
public class CanSendRecordAction extends Action {
/**
* 检查是否可以发送语音
+ *
* @author wzp
* @since 2024/8/24 23:51 v0.0.6-dev
*/
- public CanSendRecordAction(){
+ public CanSendRecordAction() {
super.setAction(Actions.CAN_SEND_RECORD);
}
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/delete/DeleteMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/delete/DeleteMessageAction.java
similarity index 80%
rename from src/main/java/cn/wzpmc/api/api/actions/message/delete/DeleteMessageAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/delete/DeleteMessageAction.java
index 2e627cc..59ca959 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/delete/DeleteMessageAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/delete/DeleteMessageAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.delete;
+package cn.wzpmc.api.actions.message.delete;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 撤回消息
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/17 23:02
@@ -15,19 +16,22 @@ import lombok.Data;
public class DeleteMessageAction extends Action {
/**
* 撤回消息
+ *
+ * @param messageId 消息ID
* @author wzp
* @since 2024/8/23 21:09 v0.0.5-dev
- * @param messageId 消息ID
*/
- public DeleteMessageAction(Integer messageId){
+ public DeleteMessageAction(Integer messageId) {
super.setAction(Actions.DELETE_MSG);
super.setParams(new Params(messageId));
}
+
@Data
@AllArgsConstructor
public static class Params {
/**
* 消息ID
+ *
* @since 2024/8/17 23:03 v0.0.5-dev
*/
@JSONField(name = "message_id")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetCookiesAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetCookiesAction.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetCookiesAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetCookiesAction.java
index c994aea..adf8500 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetCookiesAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetCookiesAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.CookiesInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.CookiesInformation;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取 Cookies
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:43
@@ -15,9 +16,10 @@ import lombok.Data;
public class GetCookiesAction extends Action {
/**
* 获取 Cookies
+ *
+ * @param domain 需要获取 cookies 的域名
* @author wzp
* @since 2024/8/24 23:51 v0.0.6-dev
- * @param domain 需要获取 cookies 的域名
*/
public GetCookiesAction(String domain) {
super.setAction(Actions.GET_COOKIES);
@@ -26,17 +28,20 @@ public class GetCookiesAction extends Action {
/**
* 获取 QQ 相关接口凭证
+ *
+ * @param domain 需要获取 cookies 的域名
* @author wzp
* @since 2024/8/24 23:51 v0.0.6-dev
- * @param domain 需要获取 cookies 的域名
*/
public GetCredentialsAction(String domain) {
super.setAction(Actions.GET_COOKIES);
@@ -26,17 +28,20 @@ public class GetCredentialsAction extends Action {
/**
* 获取 CSRF Token
+ *
* @author wzp
* @since 2024/8/24 23:52 v0.0.6-dev
*/
- public GetCsrfTokenAction(){
+ public GetCsrfTokenAction() {
super.setAction(Actions.GET_CSRF_TOKEN);
}
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetForwardMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetForwardMessageAction.java
similarity index 77%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetForwardMessageAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetForwardMessageAction.java
index 2a5de92..a96e121 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetForwardMessageAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetForwardMessageAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.MessageInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.MessageInformation;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取合并转发消息
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/23 19:46
@@ -15,19 +16,22 @@ import lombok.Data;
public class GetForwardMessageAction extends Action {
/**
* 获取合并转发消息
+ *
+ * @param id 合并转发ID
* @author wzp
* @since 2024/8/23 21:10 v0.0.5-dev
- * @param id 合并转发ID
*/
- public GetForwardMessageAction(String id){
+ public GetForwardMessageAction(String id) {
super.setAction(Actions.GET_FORWARD_MSG);
super.setParams(new GetForwardMessageAction.Params(id));
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 合并转发ID
+ *
* @since 2024/8/23 19:47 v0.0.5-dev
*/
private String id;
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetFriendListAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetFriendListAction.java
similarity index 65%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetFriendListAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetFriendListAction.java
index ba12a10..076198a 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetFriendListAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetFriendListAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.MessageInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.MessageInformation;
import java.util.List;
/**
* 获取好友列表
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:41
@@ -15,10 +16,11 @@ import java.util.List;
public class GetFriendListAction extends Action> {
/**
* 获取好友列表
+ *
* @author wzp
* @since 2024/8/24 23:52 v0.0.6-dev
*/
- public GetFriendListAction(){
+ public GetFriendListAction() {
super.setAction(Actions.GET_FRIEND_LIST);
}
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupHonorInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupHonorInfoAction.java
similarity index 76%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupHonorInfoAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupHonorInfoAction.java
index 97e0ae4..0268153 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupHonorInfoAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupHonorInfoAction.java
@@ -1,15 +1,16 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.HonorInformation;
-import cn.wzpmc.api.entities.HonorType;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.HonorInformation;
+import cn.wzpmc.entities.HonorType;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取群荣誉信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:43
@@ -17,10 +18,11 @@ import lombok.Data;
public class GetGroupHonorInfoAction extends Action {
/**
* 获取群荣誉信息
+ *
+ * @param groupId 群号
+ * @param type 要获取的群荣誉类型,可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据,或传入 all 获取所有数据
* @author wzp
* @since 2024/8/24 23:52 v0.0.6-dev
- * @param groupId 群号
- * @param type 要获取的群荣誉类型,可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据,或传入 all 获取所有数据
*/
public GetGroupHonorInfoAction(Long groupId, HonorType type) {
this.setAction(Actions.GET_GROUP_HONOR_INFO);
@@ -29,24 +31,28 @@ public class GetGroupHonorInfoAction extends Action {
/**
* 获取群信息
- * @author wzp
- * @since 2024/8/24 23:53 v0.0.6-dev
+ *
* @param groupId 群号
* @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
+ * @author wzp
+ * @since 2024/8/24 23:53 v0.0.6-dev
*/
- public GetGroupInfoAction(Long groupId, Boolean noCache){
+ public GetGroupInfoAction(Long groupId, Boolean noCache) {
super.setAction(Actions.GET_GROUP_INFO);
super.setParams(new Params(groupId, noCache));
}
/**
* 获取群信息
+ *
+ * @param groupId 群号
* @author wzp
* @since 2024/8/24 23:53 v0.0.6-dev
- * @param groupId 群号
*/
- public GetGroupInfoAction(Long groupId){
+ public GetGroupInfoAction(Long groupId) {
this(groupId, false);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/24 22:58 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
+ *
* @since 2024/8/24 22:58 v0.0.6-dev
*/
@JSONField(name = "no_cache", defaultValue = "false")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupListAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupListAction.java
similarity index 64%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupListAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupListAction.java
index 561acc7..bfea338 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupListAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupListAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.GroupInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.GroupInformation;
import java.util.List;
/**
* 获取群列表
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:42
@@ -15,10 +16,11 @@ import java.util.List;
public class GetGroupListAction extends Action> {
/**
* 获取群列表
+ *
* @author wzp
* @since 2024/8/24 23:54 v0.0.6-dev
*/
- public GetGroupListAction(){
+ public GetGroupListAction() {
super.setAction(Actions.GET_GROUP_LIST);
}
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberInfoAction.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberInfoAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberInfoAction.java
index c453923..65835f2 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberInfoAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberInfoAction.java
@@ -1,14 +1,15 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.GroupMemberInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.GroupMemberInformation;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取群成员信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:42
@@ -16,44 +17,50 @@ import lombok.Data;
public class GetGroupMemberInfoAction extends Action {
/**
* 获取群成员信息
+ *
+ * @param groupId 群号
+ * @param userId QQ 号
+ * @param noCache 是否不使用缓存
* @author wzp
* @since 2024/8/24 23:54 v0.0.6-dev
- * @param groupId 群号
- * @param userId QQ 号
- * @param noCache 是否不使用缓存
*/
- public GetGroupMemberInfoAction(Long groupId, Long userId, Boolean noCache){
+ public GetGroupMemberInfoAction(Long groupId, Long userId, Boolean noCache) {
super.setAction(Actions.GET_GROUP_MEMBER_INFO);
super.setParams(new Params(groupId, userId, noCache));
}
/**
* 获取群成员信息
+ *
+ * @param groupId 群号
+ * @param userId QQ 号
* @author wzp
* @since 2024/8/24 23:54 v0.0.6-dev
- * @param groupId 群号
- * @param userId QQ 号
*/
public GetGroupMemberInfoAction(Long groupId, Long userId) {
this(groupId, userId, false);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/24 23:02 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* QQ 号
+ *
* @since 2024/8/24 23:02 v0.0.6-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 是否不使用缓存
+ *
* @since 2024/8/24 23:02 v0.0.6-dev
*/
@JSONField(name = "no_cache", defaultValue = "false")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberListAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberListAction.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberListAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberListAction.java
index 3f5a1d1..88e0b19 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberListAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberListAction.java
@@ -1,8 +1,8 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.GroupMemberInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.GroupMemberInformation;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -11,6 +11,7 @@ import java.util.List;
/**
* 获取群成员列表
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:42
@@ -18,19 +19,22 @@ import java.util.List;
public class GetGroupMemberListAction extends Action> {
/**
* 获取群成员列表
+ *
+ * @param groupId 群号
* @author wzp
* @since 2024/8/24 23:54 v0.0.6-dev
- * @param groupId 群号
*/
public GetGroupMemberListAction(Long groupId) {
super.setAction(Actions.GET_GROUP_MEMBER_LIST);
super.setParams(new Params(groupId));
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/24 23:08 v0.0.6-dev
*/
@JSONField(name = "group_id")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetImageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetImageAction.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetImageAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetImageAction.java
index 6273806..ab6ec7c 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetImageAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetImageAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.FilePathInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.FilePathInformation;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取图片
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:44
@@ -15,19 +16,22 @@ import lombok.Data;
public class GetImageAction extends Action {
/**
* 获取图片
+ *
+ * @param file 收到的图片文件名(消息段的 file 参数),如 6B4DE3DFD1BD271E3297859D41C530F5.jpg
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
- * @param file 收到的图片文件名(消息段的 file 参数),如 6B4DE3DFD1BD271E3297859D41C530F5.jpg
*/
public GetImageAction(String file) {
super.setAction(Actions.GET_IMAGE);
super.setParams(new Params(file));
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 收到的图片文件名(消息段的 file 参数),如 6B4DE3DFD1BD271E3297859D41C530F5.jpg
+ *
* @since 2024/8/24 23:41 v0.0.6-dev
*/
private String file;
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetLoginInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetLoginInfoAction.java
similarity index 71%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetLoginInfoAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetLoginInfoAction.java
index b18650f..8565ba7 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetLoginInfoAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetLoginInfoAction.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.user.IBot;
/**
* 获取登录号信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:18
@@ -13,6 +14,7 @@ import cn.wzpmc.api.user.IBot;
public class GetLoginInfoAction extends Action {
/**
* 获取登录号信息
+ *
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
*/
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetMessageAction.java
similarity index 77%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetMessageAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetMessageAction.java
index 9702841..a3f9c9a 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetMessageAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetMessageAction.java
@@ -1,14 +1,15 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.MessageInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.MessageInformation;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取消息
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/17 23:07
@@ -16,19 +17,22 @@ import lombok.Data;
public class GetMessageAction extends Action {
/**
* 获取消息
+ *
+ * @param messageId 消息 ID
* @author wzp
* @since 2024/8/23 21:11 v0.0.5-dev
- * @param messageId 消息 ID
*/
- public GetMessageAction(Integer messageId){
+ public GetMessageAction(Integer messageId) {
super.setAction(Actions.GET_MSG);
super.setParams(new Params(messageId));
}
+
@Data
@AllArgsConstructor
public static class Params {
/**
* 消息 ID
+ *
* @since 2024/8/23 21:11 v0.0.5-dev
*/
@JSONField(name = "message_id")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetRecordAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetRecordAction.java
similarity index 75%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetRecordAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetRecordAction.java
index bbb0ea2..86d2ad7 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetRecordAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetRecordAction.java
@@ -1,14 +1,15 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.FilePathInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.FilePathInformation;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取语音
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:44
@@ -16,25 +17,29 @@ import lombok.Data;
public class GetRecordAction extends Action {
/**
* 获取语音
+ *
+ * @param file 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk
+ * @param outFormat 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
- * @param file 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk
- * @param outFormat 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac
*/
- public GetRecordAction(String file, String outFormat){
+ public GetRecordAction(String file, String outFormat) {
super.setAction(Actions.GET_RECORD);
super.setParams(new Params(file, outFormat));
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk
+ *
* @since 2024/8/24 23:35 v0.0.6-dev
*/
private String file;
/**
* 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac
+ *
* @since 2024/8/24 23:35 v0.0.6-dev
*/
@JSONField(name = "out_format")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStatusAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStatusAction.java
similarity index 63%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetStatusAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStatusAction.java
index 1d8dda7..be4676e 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStatusAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStatusAction.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.BotStatus;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.BotStatus;
/**
* 获取运行状态
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:45
@@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.BotStatus;
public class GetStatusAction extends Action {
/**
* 获取运行状态
+ *
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
*/
- public GetStatusAction(){
+ public GetStatusAction() {
super.setAction(Actions.GET_STATUS);
}
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStrangerInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStrangerInfoAction.java
similarity index 80%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetStrangerInfoAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStrangerInfoAction.java
index e66c922..3a613fa 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStrangerInfoAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStrangerInfoAction.java
@@ -1,14 +1,15 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.user.IUser;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.user.IUser;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取陌生人信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:41
@@ -16,36 +17,41 @@ import lombok.Data;
public class GetStrangerInfoAction extends Action {
/**
* 获取陌生人信息
+ *
+ * @param userId QQ 号
+ * @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
- * @param userId QQ 号
- * @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
*/
- public GetStrangerInfoAction(Long userId, boolean noCache){
+ public GetStrangerInfoAction(Long userId, boolean noCache) {
super.setAction(Actions.GET_STRANGER_INFO);
super.setParams(new GetStrangerInfoAction.Params(userId, noCache));
}
/**
* 获取陌生人信息
+ *
+ * @param userId QQ 号
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
- * @param userId QQ 号
*/
- public GetStrangerInfoAction(Long userId){
+ public GetStrangerInfoAction(Long userId) {
this(userId, false);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* QQ 号
+ *
* @since 2024/8/24 22:52 v0.0.6-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
+ *
* @since 2024/8/24 22:52 v0.0.6-dev
*/
@JSONField(name = "no_cache", defaultValue = "false")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetVersionInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetVersionInfoAction.java
similarity index 63%
rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetVersionInfoAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetVersionInfoAction.java
index 7c97fe8..3ee55b9 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetVersionInfoAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetVersionInfoAction.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.api.actions.message.get;
+package cn.wzpmc.api.actions.message.get;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.VersionInformation;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.VersionInformation;
/**
* 获取版本信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:45
@@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.VersionInformation;
public class GetVersionInfoAction extends Action {
/**
* 获取版本信息
+ *
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
*/
- public GetVersionInfoAction(){
+ public GetVersionInfoAction() {
super.setAction(Actions.GET_VERSION_INFO);
}
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendGroupMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendGroupMessageAction.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendGroupMessageAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendGroupMessageAction.java
index ce9d753..a1795b6 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendGroupMessageAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendGroupMessageAction.java
@@ -1,14 +1,15 @@
-package cn.wzpmc.api.api.actions.message.send;
+package cn.wzpmc.api.actions.message.send;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.message.MessageComponent;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.message.MessageComponent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 发送群消息
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/17 22:52
@@ -16,43 +17,49 @@ import lombok.Data;
public class SendGroupMessageAction extends Action {
/**
* 发送群消息
+ *
+ * @param groupId 群号
+ * @param message 要发送的内容
+ * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效
* @author wzp
* @since 2024/8/23 21:11 v0.0.5-dev
- * @param groupId 群号
- * @param message 要发送的内容
- * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效
*/
- public SendGroupMessageAction(Long groupId, MessageComponent message, boolean autoEscape){
+ public SendGroupMessageAction(Long groupId, MessageComponent message, boolean autoEscape) {
super.setAction(Actions.SEND_GROUP_MSG);
super.setParams(new SendGroupMessageAction.Params(groupId, message, autoEscape));
}
/**
* 发送群消息
- * @author wzp
- * @since 2024/8/23 21:11 v0.0.5-dev
+ *
* @param groupId 群号
* @param message 要发送的内容
+ * @author wzp
+ * @since 2024/8/23 21:11 v0.0.5-dev
*/
- public SendGroupMessageAction(Long groupId, MessageComponent message){
+ public SendGroupMessageAction(Long groupId, MessageComponent message) {
this(groupId, message, false);
}
+
@Data
@AllArgsConstructor
public static class Params {
/**
* 群号
+ *
* @since 2024/8/17 22:54 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 要发送的内容
+ *
* @since 2024/8/17 22:54 v0.0.5-dev
*/
private MessageComponent message;
/**
* 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效
+ *
* @since 2024/8/17 22:51 v0.0.5-dev
*/
@JSONField(name = "auto_escape")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendLikeAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendLikeAction.java
similarity index 78%
rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendLikeAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendLikeAction.java
index a0ed4d4..82dd400 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendLikeAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendLikeAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.send;
+package cn.wzpmc.api.actions.message.send;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 发送好友赞
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/23 19:49
@@ -15,36 +16,41 @@ import lombok.Data;
public class SendLikeAction extends Action {
/**
* 发送好友赞
+ *
+ * @param userId 对方 QQ 号
+ * @param times 赞的次数,每个好友每天最多 10 次
* @author wzp
* @since 2024/8/23 21:12 v0.0.5-dev
- * @param userId 对方 QQ 号
- * @param times 赞的次数,每个好友每天最多 10 次
*/
- public SendLikeAction(Long userId, Long times){
+ public SendLikeAction(Long userId, Long times) {
super.setAction(Actions.SEND_LIKE);
super.setParams(new Params(userId, times));
}
/**
* 发送好友赞
+ *
+ * @param userId 对方 QQ 号
* @author wzp
* @since 2024/8/23 21:12 v0.0.5-dev
- * @param userId 对方 QQ 号
*/
- public SendLikeAction(Long userId){
+ public SendLikeAction(Long userId) {
this(userId, 1L);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 对方 QQ 号
+ *
* @since 2024/8/23 21:12 v0.0.5-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 赞的次数,每个好友每天最多 10 次
+ *
* @since 2024/8/23 21:12 v0.0.5-dev
*/
@JSONField(defaultValue = "1")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendMessageActionResponseData.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendMessageActionResponseData.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendMessageActionResponseData.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendMessageActionResponseData.java
index 50dce4c..0949167 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendMessageActionResponseData.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendMessageActionResponseData.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.api.actions.message.send;
+package cn.wzpmc.api.actions.message.send;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
/**
* 发送私聊消息返回
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/17 21:55
@@ -13,6 +14,7 @@ import lombok.Data;
public class SendMessageActionResponseData {
/**
* 消息 ID
+ *
* @since 2024/8/17 22:51 v0.0.5-dev
*/
@JSONField(name = "message_id")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendPrivateMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendPrivateMessageAction.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendPrivateMessageAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendPrivateMessageAction.java
index a6dc8fe..5639721 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendPrivateMessageAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendPrivateMessageAction.java
@@ -1,14 +1,15 @@
-package cn.wzpmc.api.api.actions.message.send;
+package cn.wzpmc.api.actions.message.send;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.message.MessageComponent;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.message.MessageComponent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 发送私聊消息
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/17 21:54
@@ -16,43 +17,49 @@ import lombok.Data;
public class SendPrivateMessageAction extends Action {
/**
* 发送私聊消息
+ *
+ * @param userId 对方 QQ 号
+ * @param message 要发送的内容
+ * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效
* @author wzp
* @since 2024/8/23 21:13 v0.0.5-dev
- * @param userId 对方 QQ 号
- * @param message 要发送的内容
- * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效
*/
- public SendPrivateMessageAction(Long userId, MessageComponent message, boolean autoEscape){
+ public SendPrivateMessageAction(Long userId, MessageComponent message, boolean autoEscape) {
super.setAction(Actions.SEND_PRIVATE_MSG);
super.setParams(new Params(userId, message, autoEscape));
}
/**
* 发送私聊消息
+ *
+ * @param userId 对方 QQ 号
+ * @param message 要发送的内容
* @author wzp
* @since 2024/8/23 21:14 v0.0.5-dev
- * @param userId 对方 QQ 号
- * @param message 要发送的内容
*/
- public SendPrivateMessageAction(Long userId, MessageComponent message){
+ public SendPrivateMessageAction(Long userId, MessageComponent message) {
this(userId, message, false);
}
+
@Data
@AllArgsConstructor
public static class Params {
/**
* 对方 QQ 号
+ *
* @since 2024/8/17 22:51 v0.0.5-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 要发送的内容
+ *
* @since 2024/8/17 22:51 v0.0.5-dev
*/
private MessageComponent message;
/**
* 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效
+ *
* @since 2024/8/17 22:51 v0.0.5-dev
*/
@JSONField(name = "auto_escape")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetFriendAddRequestAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetFriendAddRequestAction.java
similarity index 80%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetFriendAddRequestAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetFriendAddRequestAction.java
index 2dcb824..7dc7d3b 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetFriendAddRequestAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetFriendAddRequestAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 处理加好友请求
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:08
@@ -15,23 +16,25 @@ import lombok.Data;
public class SetFriendAddRequestAction extends Action {
/**
* 处理加好友请求
+ *
+ * @param flag 加好友请求的 flag(需从上报的数据中获得)
+ * @param approve 是否同意请求
+ * @param remark 添加后的好友备注(仅在同意时有效)
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
- * @param flag 加好友请求的 flag(需从上报的数据中获得)
- * @param approve 是否同意请求
- * @param remark 添加后的好友备注(仅在同意时有效)
*/
- public SetFriendAddRequestAction(String flag, boolean approve, String remark){
+ public SetFriendAddRequestAction(String flag, boolean approve, String remark) {
super.setAction(Actions.SET_FRIEND_ADD_REQUEST);
super.setParams(new Params(flag, approve, remark));
}
/**
* 处理加好友请求
+ *
+ * @param flag 加好友请求的 flag(需从上报的数据中获得)
+ * @param approve 是否同意请求
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
- * @param flag 加好友请求的 flag(需从上报的数据中获得)
- * @param approve 是否同意请求
*/
public SetFriendAddRequestAction(String flag, boolean approve) {
this(flag, approve, "");
@@ -39,10 +42,11 @@ public class SetFriendAddRequestAction extends Action {
/**
* 处理加群请求/邀请
+ *
+ * @param flag 加群请求的 flag(需从上报的数据中获得)
+ * @param type 请求类型
+ * @param approve 是否同意请求/邀请
+ * @param reason 拒绝理由(仅在拒绝时有效)
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
- * @param flag 加群请求的 flag(需从上报的数据中获得)
- * @param type 请求类型
- * @param approve 是否同意请求/邀请
- * @param reason 拒绝理由(仅在拒绝时有效)
*/
public SetGroupAddRequestAction(String flag, GroupJoinRequestEventSubType type, boolean approve, String reason) {
super.setAction(Actions.SET_GROUP_ADD_REQUEST);
@@ -30,11 +32,12 @@ public class SetGroupAddRequestAction extends Action {
/**
* 群组设置管理员
+ *
+ * @param groupId 群号
+ * @param userId 要设置管理员的 QQ 号
+ * @param enable true 为设置,false 为取消
* @author wzp
* @since 2024/8/23 21:14 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要设置管理员的 QQ 号
- * @param enable true 为设置,false 为取消
*/
- public SetGroupAdminAction(Long groupId, Long userId, Boolean enable){
+ public SetGroupAdminAction(Long groupId, Long userId, Boolean enable) {
super.setAction(Actions.SET_GROUP_ADMIN);
super.setParams(new Params(groupId, userId, enable));
}
/**
* 群组设置管理员
+ *
+ * @param groupId 群号
+ * @param userId 要设置管理员的 QQ 号
* @author wzp
* @since 2024/8/23 21:14 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要设置管理员的 QQ 号
*/
public SetGroupAdminAction(Long groupId, Long userId) {
this(groupId, userId, true);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/23 21:15 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 要设置管理员的 QQ 号
+ *
* @since 2024/8/23 21:15 v0.0.5-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* true 为设置,false 为取消
+ *
* @since 2024/8/23 21:15 v0.0.5-dev
*/
@JSONField(defaultValue = "true")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupAnonymousAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupAnonymousAction.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupAnonymousAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupAnonymousAction.java
index 63e46d4..661d3d1 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupAnonymousAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupAnonymousAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 群组匿名
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/23 20:55
@@ -15,10 +16,11 @@ import lombok.Data;
public class SetGroupAnonymousAction extends Action {
/**
* 群组匿名
+ *
+ * @param groupId 群号
+ * @param enable 是否允许匿名聊天
* @author wzp
* @since 2024/8/23 21:16 v0.0.5-dev
- * @param groupId 群号
- * @param enable 是否允许匿名聊天
*/
public SetGroupAnonymousAction(Long groupId, Boolean enable) {
super.setAction(Actions.SET_GROUP_ANONYMOUS);
@@ -27,24 +29,28 @@ public class SetGroupAnonymousAction extends Action {
/**
* 群组匿名用户禁言
+ *
+ * @param groupId 群号
+ * @param anonymous 可选,要禁言的匿名用户对象(群消息上报的 anonymous 字段)
+ * @param flag 可选,要禁言的匿名用户的 flag(需从群消息上报的数据中获得)
+ * @param duration 禁言时长,单位秒,无法取消匿名用户禁言(默认30 * 60)
* @author wzp
* @since 2024/8/23 21:17 v0.0.5-dev
- * @param groupId 群号
- * @param anonymous 可选,要禁言的匿名用户对象(群消息上报的 anonymous 字段)
- * @param flag 可选,要禁言的匿名用户的 flag(需从群消息上报的数据中获得)
- * @param duration 禁言时长,单位秒,无法取消匿名用户禁言(默认30 * 60)
*/
protected SetGroupAnonymousBanAction(Long groupId, Anonymous anonymous, String flag, Long duration) {
super.setAction(Actions.SET_GROUP_ANONYMOUS_BAN);
@@ -30,11 +32,12 @@ public class SetGroupAnonymousBanAction extends Action {
/**
* 群组单人禁言
+ *
+ * @param groupId 群号
+ * @param userId 要禁言的 QQ 号
+ * @param duration 禁言时长,单位秒,0 表示取消禁言
* @author wzp
* @since 2024/8/23 21:20 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要禁言的 QQ 号
- * @param duration 禁言时长,单位秒,0 表示取消禁言
*/
- public SetGroupBanAction(Long groupId, Long userId, Long duration){
+ public SetGroupBanAction(Long groupId, Long userId, Long duration) {
super.setAction(Actions.SET_GROUP_BAN);
super.setParams(new Params(groupId, userId, duration));
}
/**
* 群组单人禁言
+ *
+ * @param groupId 群号
+ * @param userId 要禁言的 QQ 号
* @author wzp
* @since 2024/8/23 21:20 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要禁言的 QQ 号
*/
- public SetGroupBanAction(Long groupId, Long userId){
+ public SetGroupBanAction(Long groupId, Long userId) {
this(groupId, userId, 1800L);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/23 21:20 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 要禁言的 QQ 号
+ *
* @since 2024/8/23 21:20 v0.0.5-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 禁言时长,单位秒,0 表示取消禁言(默认30 * 60)
+ *
* @since 2024/8/23 21:20 v0.0.5-dev
*/
@JSONField(defaultValue = "1800")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupCardAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupCardAction.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupCardAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupCardAction.java
index 7922976..6540e4d 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupCardAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupCardAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 设置群名片(群备注)
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/23 20:59
@@ -15,11 +16,12 @@ import lombok.Data;
public class SetGroupCardAction extends Action {
/**
* 设置群名片(群备注)
+ *
+ * @param groupId 群号
+ * @param userId 要设置的 QQ 号
+ * @param card 群名片内容,不填或空字符串表示删除群名片
* @author wzp
* @since 2024/8/23 21:22 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要设置的 QQ 号
- * @param card 群名片内容,不填或空字符串表示删除群名片
*/
public SetGroupCardAction(Long groupId, Long userId, String card) {
super.setAction(Actions.SET_GROUP_CARD);
@@ -28,31 +30,36 @@ public class SetGroupCardAction extends Action
/**
* 设置群名片(群备注)
+ *
+ * @param groupId 群号
+ * @param userId 要设置的 QQ 号
* @author wzp
* @since 2024/8/23 21:22 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要设置的 QQ 号
*/
public SetGroupCardAction(Long groupId, Long userId) {
this(groupId, userId, "");
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/23 21:23 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 要设置的 QQ 号
+ *
* @since 2024/8/23 21:23 v0.0.5-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 群名片内容,不填或空字符串表示删除群名片(默认为空)
+ *
* @since 2024/8/23 21:23 v0.0.5-dev
*/
private String card;
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupKickAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupKickAction.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupKickAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupKickAction.java
index 54d9297..26365fd 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupKickAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupKickAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 群组踢人
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/23 19:52
@@ -15,11 +16,12 @@ import lombok.Data;
public class SetGroupKickAction extends Action {
/**
* 群组踢人
+ *
+ * @param groupId 群号
+ * @param userId 要踢的 QQ 号
+ * @param rejectAddRequest 拒绝此人的加群请求
* @author wzp
* @since 2024/8/23 21:24 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要踢的 QQ 号
- * @param rejectAddRequest 拒绝此人的加群请求
*/
public SetGroupKickAction(Long groupId, Long userId, Boolean rejectAddRequest) {
super.setAction(Actions.SET_GROUP_KICK);
@@ -28,31 +30,36 @@ public class SetGroupKickAction extends Action
/**
* 群组踢人
+ *
+ * @param groupId 群号
+ * @param userId 要踢的 QQ 号
* @author wzp
* @since 2024/8/23 21:24 v0.0.5-dev
- * @param groupId 群号
- * @param userId 要踢的 QQ 号
*/
public SetGroupKickAction(Long groupId, Long userId) {
this(groupId, userId, false);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/23 21:25 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 要踢的 QQ 号
+ *
* @since 2024/8/23 21:25 v0.0.5-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 拒绝此人的加群请求(默认为false)
+ *
* @since 2024/8/23 21:25 v0.0.5-dev
*/
@JSONField(name = "reject_add_request", defaultValue = "false")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupLeaveAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupLeaveAction.java
similarity index 81%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupLeaveAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupLeaveAction.java
index 8d0b12e..dcea9ce 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupLeaveAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupLeaveAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 退出群组
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:07
@@ -15,36 +16,41 @@ import lombok.Data;
public class SetGroupLeaveAction extends Action {
/**
* 退出群组
+ *
+ * @param groupId 群号
+ * @param isDismiss 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散
* @author wzp
* @since 2024/8/24 23:57 v0.0.6-dev
- * @param groupId 群号
- * @param isDismiss 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散
*/
- public SetGroupLeaveAction(Long groupId, boolean isDismiss){
+ public SetGroupLeaveAction(Long groupId, boolean isDismiss) {
super.setAction(Actions.SET_GROUP_LEAVE);
super.setParams(new Params(groupId, isDismiss));
}
/**
* 退出群组
+ *
+ * @param groupId 群号
* @author wzp
* @since 2024/8/24 23:57 v0.0.6-dev
- * @param groupId 群号
*/
- public SetGroupLeaveAction(Long groupId){
+ public SetGroupLeaveAction(Long groupId) {
this(groupId, false);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/24 21:02 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散
+ *
* @since 2024/8/24 21:02 v0.0.6-dev
*/
@JSONField(name = "is_dismiss", defaultValue = "false")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupNameAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupNameAction.java
similarity index 80%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupNameAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupNameAction.java
index 9db7a20..f27b507 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupNameAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupNameAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 设置群名
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:07
@@ -15,26 +16,30 @@ import lombok.Data;
public class SetGroupNameAction extends Action {
/**
* 设置群名
+ *
+ * @param groupId 群号
+ * @param groupName 新群名
* @author wzp
* @since 2024/8/24 23:57 v0.0.6-dev
- * @param groupId 群号
- * @param groupName 新群名
*/
- public SetGroupNameAction(Long groupId, String groupName){
+ public SetGroupNameAction(Long groupId, String groupName) {
super.setAction(Actions.SET_GROUP_NAME);
super.setParams(new Params(groupId, groupName));
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/24 20:59 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 新群名
+ *
* @since 2024/8/24 21:00 v0.0.6-dev
*/
@JSONField(name = "group_name")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupSpecialTitleAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupSpecialTitleAction.java
similarity index 78%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupSpecialTitleAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupSpecialTitleAction.java
index 91934bd..0a9096e 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupSpecialTitleAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupSpecialTitleAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 设置群组专属头衔
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:08
@@ -15,75 +16,84 @@ import lombok.Data;
public class SetGroupSpecialTitleAction extends Action {
/**
* 设置群组专属头衔
+ *
+ * @param groupId 群号
+ * @param userId 要设置的 QQ 号
+ * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔
+ * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试
* @author wzp
* @since 2024/8/24 23:58 v0.0.6-dev
- * @param groupId 群号
- * @param userId 要设置的 QQ 号
- * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔
- * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试
*/
- public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle, Long duration){
+ public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle, Long duration) {
super.setAction(Actions.SET_GROUP_SPECIAL_TITLE);
super.setParams(new Params(groupId, userId, specialTitle, duration));
}
/**
* 设置群组专属头衔
+ *
+ * @param groupId 群号
+ * @param userId 要设置的 QQ 号
+ * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔
* @author wzp
* @since 2024/8/24 23:58 v0.0.6-dev
- * @param groupId 群号
- * @param userId 要设置的 QQ 号
- * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔
*/
- public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle){
+ public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle) {
this(groupId, userId, specialTitle, -1L);
}
/**
* 设置群组专属头衔
+ *
+ * @param groupId 群号
+ * @param userId 要设置的 QQ 号
* @author wzp
* @since 2024/8/24 23:58 v0.0.6-dev
- * @param groupId 群号
- * @param userId 要设置的 QQ 号
*/
- public SetGroupSpecialTitleAction(Long groupId, Long userId){
+ public SetGroupSpecialTitleAction(Long groupId, Long userId) {
this(groupId, userId, "");
}
/**
* 设置群组专属头衔
+ *
+ * @param groupId 群号
+ * @param userId 要设置的 QQ 号
+ * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试
* @author wzp
* @since 2024/8/24 23:58 v0.0.6-dev
- * @param groupId 群号
- * @param userId 要设置的 QQ 号
- * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试
*/
- public SetGroupSpecialTitleAction(Long groupId, Long userId, Long duration){
+ public SetGroupSpecialTitleAction(Long groupId, Long userId, Long duration) {
this(groupId, userId, "", duration);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
+ *
* @since 2024/8/24 21:04 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 要设置的 QQ 号
+ *
* @since 2024/8/24 21:04 v0.0.6-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 专属头衔,不填或空字符串表示删除专属头衔
+ *
* @since 2024/8/24 21:04 v0.0.6-dev
*/
@JSONField(name = "special_title")
private String specialTitle;
/**
* 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试
+ *
* @since 2024/8/24 21:04 v0.0.6-dev
*/
@JSONField(defaultValue = "-1")
diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupWholeBanAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupWholeBanAction.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupWholeBanAction.java
rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupWholeBanAction.java
index 2d33381..feefaf3 100644
--- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupWholeBanAction.java
+++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupWholeBanAction.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.api.actions.message.set;
+package cn.wzpmc.api.actions.message.set;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 群组全员禁言
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/23 20:06
@@ -15,10 +16,11 @@ import lombok.Data;
public class SetGroupWholeBanAction extends Action {
/**
* 群组全员禁言
+ *
+ * @param groupId 群号
+ * @param enable 是否禁言
* @author wzp
* @since 2024/8/23 21:27 v0.0.5-dev
- * @param groupId 群号
- * @param enable 是否禁言
*/
public SetGroupWholeBanAction(Long groupId, Boolean enable) {
super.setAction(Actions.SET_GROUP_WHOLE_BAN);
@@ -27,24 +29,28 @@ public class SetGroupWholeBanAction extends Action {
/**
* 重启 OneBot 实现
+ *
+ * @param delay 要延迟的毫秒数,如果默认情况下无法重启,可以尝试设置延迟为 2000 左右
* @author wzp
* @since 2024/8/24 23:59 v0.0.6-dev
- * @param delay 要延迟的毫秒数,如果默认情况下无法重启,可以尝试设置延迟为 2000 左右
*/
public SetRestartAction(Integer delay) {
super.setAction(Actions.SET_RESTART);
@@ -26,17 +28,20 @@ public class SetRestartAction extends Action {
/**
* 立即重启 OneBot 实现
+ *
* @author wzp
* @since 2024/8/24 23:58 v0.0.6-dev
*/
public SetRestartAction() {
this(0);
}
+
@Data
@AllArgsConstructor
public static final class Params {
/**
* 要延迟的毫秒数,如果默认情况下无法重启,可以尝试设置延迟为 2000 左右
+ *
* @since 2024/8/24 23:49 v0.0.6-dev
*/
@JSONField(defaultValue = "0")
diff --git a/src/main/java/cn/wzpmc/api/commands/BaseCommand.java b/mybot-api/src/main/java/cn/wzpmc/commands/BaseCommand.java
similarity index 80%
rename from src/main/java/cn/wzpmc/api/commands/BaseCommand.java
rename to mybot-api/src/main/java/cn/wzpmc/commands/BaseCommand.java
index b8f4396..fc968f4 100644
--- a/src/main/java/cn/wzpmc/api/commands/BaseCommand.java
+++ b/mybot-api/src/main/java/cn/wzpmc/commands/BaseCommand.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.commands;
+package cn.wzpmc.commands;
/**
* 指令基类
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午3:15
diff --git a/src/main/java/cn/wzpmc/api/commands/BrigadierCommand.java b/mybot-api/src/main/java/cn/wzpmc/commands/BrigadierCommand.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/commands/BrigadierCommand.java
rename to mybot-api/src/main/java/cn/wzpmc/commands/BrigadierCommand.java
index 72797a6..78cbb9a 100644
--- a/src/main/java/cn/wzpmc/api/commands/BrigadierCommand.java
+++ b/mybot-api/src/main/java/cn/wzpmc/commands/BrigadierCommand.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.commands;
+package cn.wzpmc.commands;
-import cn.wzpmc.api.user.CommandSender;
+import cn.wzpmc.user.CommandSender;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
/**
* Brigadier指令
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:59
@@ -12,9 +13,10 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder;
public interface BrigadierCommand extends BaseCommand {
/**
* 获取指令节点
+ *
+ * @return 指令节点
* @author wzp
* @since 2024/7/31 上午3:16 v0.0.1-dev
- * @return 指令节点
*/
LiteralArgumentBuilder getCommandNode();
}
diff --git a/src/main/java/cn/wzpmc/api/commands/RawCommand.java b/mybot-api/src/main/java/cn/wzpmc/commands/RawCommand.java
similarity index 72%
rename from src/main/java/cn/wzpmc/api/commands/RawCommand.java
rename to mybot-api/src/main/java/cn/wzpmc/commands/RawCommand.java
index 110a526..84f2701 100644
--- a/src/main/java/cn/wzpmc/api/commands/RawCommand.java
+++ b/mybot-api/src/main/java/cn/wzpmc/commands/RawCommand.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.commands;
+package cn.wzpmc.commands;
-import cn.wzpmc.api.user.CommandSender;
+import cn.wzpmc.user.CommandSender;
import java.util.List;
/**
* 原始指令
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:27
@@ -13,21 +14,23 @@ import java.util.List;
public interface RawCommand extends BaseCommand {
/**
* 当指令执行时
+ *
+ * @param commandSender 指令发送者
+ * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"}
+ * @return 指令是否执行成功
* @author wzp
* @since 2024/7/31 上午2:57 v0.0.1-dev
- * @param commandSender 指令发送者
- * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"}
- * @return 指令是否执行成功
*/
boolean onExecute(CommandSender commandSender, List arguments);
/**
* 指令补全
+ *
+ * @param commandSender 指令发送者
+ * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"}
+ * @return 当前需要提示的子命令
* @author wzp
* @since 2024/7/31 上午2:58 v0.0.1-dev
- * @param commandSender 指令发送者
- * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"}
- * @return 当前需要提示的子命令
*/
default List onTabComplete(CommandSender commandSender, List arguments) {
return List.of();
diff --git a/src/main/java/cn/wzpmc/api/commands/arguments/MessagePartArgument.java b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/MessagePartArgument.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/commands/arguments/MessagePartArgument.java
rename to mybot-api/src/main/java/cn/wzpmc/commands/arguments/MessagePartArgument.java
index 4016ad7..689154d 100644
--- a/src/main/java/cn/wzpmc/api/commands/arguments/MessagePartArgument.java
+++ b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/MessagePartArgument.java
@@ -1,7 +1,7 @@
-package cn.wzpmc.api.commands.arguments;
+package cn.wzpmc.commands.arguments;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.utils.CqCodeUtils;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.utils.CqCodeUtils;
import com.mojang.brigadier.LiteralMessage;
import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.arguments.ArgumentType;
@@ -10,6 +10,7 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
/**
* 消息段参数类型
+ *
* @author wzp
* @version 1.0.0
* @since 2024/8/25 01:18
@@ -18,7 +19,7 @@ public class MessagePartArgument implements ArgumentType {
@Override
public JsonMessagePart parse(StringReader stringReader) throws CommandSyntaxException {
String s = stringReader.readStringUntil(' ');
- if (!CqCodeUtils.isCQ(s)){
+ if (!CqCodeUtils.isCQ(s)) {
throw new CommandSyntaxException(new SimpleCommandExceptionType(new LiteralMessage("MessagePart")), new LiteralMessage("Cannot read message part"));
}
return CqCodeUtils.parseToPart(s);
diff --git a/src/main/java/cn/wzpmc/api/commands/arguments/UserIdArguments.java b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/UserIdArguments.java
similarity index 81%
rename from src/main/java/cn/wzpmc/api/commands/arguments/UserIdArguments.java
rename to mybot-api/src/main/java/cn/wzpmc/commands/arguments/UserIdArguments.java
index 5759c3e..18a6938 100644
--- a/src/main/java/cn/wzpmc/api/commands/arguments/UserIdArguments.java
+++ b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/UserIdArguments.java
@@ -1,9 +1,9 @@
-package cn.wzpmc.api.commands.arguments;
+package cn.wzpmc.commands.arguments;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.At;
-import cn.wzpmc.api.utils.CqCodeUtils;
-import cn.wzpmc.console.commands.exceptions.CqCodeException;
+import cn.wzpmc.commands.exceptions.CqCodeException;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.At;
+import cn.wzpmc.utils.CqCodeUtils;
import com.mojang.brigadier.LiteralMessage;
import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.arguments.ArgumentType;
@@ -12,6 +12,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException;
/**
* 用户ID消息类型
+ *
* @author wzp
* @version 1.0.0
* @since 2024/8/25 21:02
@@ -33,7 +34,7 @@ public class UserIdArguments implements ArgumentType {
String s = builder.toString();
if (CqCodeUtils.isCQ(s)) {
JsonMessagePart jsonMessagePart = CqCodeUtils.parseToPart(s);
- if (jsonMessagePart instanceof At){
+ if (jsonMessagePart instanceof At) {
return ((At) jsonMessagePart).getQq();
}
throw new CqCodeException();
@@ -43,7 +44,8 @@ public class UserIdArguments implements ArgumentType {
String s1 = read + s;
try {
return Long.parseLong(s1);
- }catch (NumberFormatException ignored) {}
+ } catch (NumberFormatException ignored) {
+ }
}
throw new CommandSyntaxException(new BuiltInExceptions().readerInvalidLong(), new LiteralMessage("Cannot read long from user id"));
}
diff --git a/src/main/java/cn/wzpmc/console/commands/exceptions/CqCodeException.java b/mybot-api/src/main/java/cn/wzpmc/commands/exceptions/CqCodeException.java
similarity index 94%
rename from src/main/java/cn/wzpmc/console/commands/exceptions/CqCodeException.java
rename to mybot-api/src/main/java/cn/wzpmc/commands/exceptions/CqCodeException.java
index e3c3d5a..e2d7752 100644
--- a/src/main/java/cn/wzpmc/console/commands/exceptions/CqCodeException.java
+++ b/mybot-api/src/main/java/cn/wzpmc/commands/exceptions/CqCodeException.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.console.commands.exceptions;
+package cn.wzpmc.commands.exceptions;
import com.mojang.brigadier.LiteralMessage;
import com.mojang.brigadier.Message;
@@ -12,10 +12,12 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
*/
public class CqCodeException extends CommandSyntaxException {
private static final Message errorMessage = new LiteralMessage("Cannot read cq code");
+
public CqCodeException() {
super(new CqCodeExceptionType(errorMessage), errorMessage);
}
+
private static final class CqCodeExceptionType extends SimpleCommandExceptionType {
public CqCodeExceptionType(Message message) {
super(message);
diff --git a/src/main/java/cn/wzpmc/api/entities/BotStatus.java b/mybot-api/src/main/java/cn/wzpmc/entities/BotStatus.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/entities/BotStatus.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/BotStatus.java
index 84a09fd..69e581e 100644
--- a/src/main/java/cn/wzpmc/api/entities/BotStatus.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/BotStatus.java
@@ -1,9 +1,10 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import lombok.Data;
/**
* bot运行状态
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:30
@@ -12,11 +13,13 @@ import lombok.Data;
public class BotStatus {
/**
* 当前 QQ 在线,null 表示无法查询到在线状态
+ *
* @since 2024/8/23 21:33 v0.0.5-dev
*/
private boolean online;
/**
* 状态符合预期,意味着各模块正常运行、功能正常,且 QQ 在线
+ *
* @since 2024/8/23 21:34 v0.0.5-dev
*/
private boolean good;
diff --git a/src/main/java/cn/wzpmc/api/entities/CookiesInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/CookiesInformation.java
similarity index 89%
rename from src/main/java/cn/wzpmc/api/entities/CookiesInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/CookiesInformation.java
index 2350d84..c3a1467 100644
--- a/src/main/java/cn/wzpmc/api/entities/CookiesInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/CookiesInformation.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* Cookie信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:45
@@ -14,6 +15,7 @@ import lombok.Data;
public class CookiesInformation {
/**
* Cookies
+ *
* @since 2024/8/24 23:59 v0.0.6-dev
*/
private String cookies;
diff --git a/src/main/java/cn/wzpmc/api/entities/CredentialsInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/CredentialsInformation.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/entities/CredentialsInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/CredentialsInformation.java
index 17b3f8f..ab91ec4 100644
--- a/src/main/java/cn/wzpmc/api/entities/CredentialsInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/CredentialsInformation.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -6,6 +6,7 @@ import lombok.Data;
/**
* QQ认证信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:46
@@ -15,11 +16,13 @@ import lombok.Data;
public class CredentialsInformation {
/**
* Cookies
+ *
* @since 2024/8/24 23:59 v0.0.6-dev
*/
private String cookies;
/**
* CSRF Token
+ *
* @since 2024/8/24 23:59 v0.0.6-dev
*/
@JSONField(name = "csrf_token")
diff --git a/src/main/java/cn/wzpmc/api/entities/CsrfTokenInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/CsrfTokenInformation.java
similarity index 89%
rename from src/main/java/cn/wzpmc/api/entities/CsrfTokenInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/CsrfTokenInformation.java
index e2c546a..37fd108 100644
--- a/src/main/java/cn/wzpmc/api/entities/CsrfTokenInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/CsrfTokenInformation.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* CSRF信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:45
@@ -14,6 +15,7 @@ import lombok.Data;
public class CsrfTokenInformation {
/**
* CSRF Token
+ *
* @since 2024/8/24 23:59 v0.0.6-dev
*/
private Integer token;
diff --git a/src/main/java/cn/wzpmc/api/entities/FilePathInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/FilePathInformation.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/entities/FilePathInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/FilePathInformation.java
index 292da1b..0b77f43 100644
--- a/src/main/java/cn/wzpmc/api/entities/FilePathInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/FilePathInformation.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -13,6 +13,7 @@ import lombok.Data;
public class FilePathInformation {
/**
* 转换后的语音文件路径,如 /home/somebody/cqhttp/data/record/0B38145AA44505000B38145AA4450500.mp3
+ *
* @since 2024/8/24 23:35 v0.0.6-dev
*/
private String file;
diff --git a/src/main/java/cn/wzpmc/api/entities/FriendInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/FriendInformation.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/entities/FriendInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/FriendInformation.java
index b29ce17..fc6447c 100644
--- a/src/main/java/cn/wzpmc/api/entities/FriendInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/FriendInformation.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
-import cn.wzpmc.api.user.IUser;
+import cn.wzpmc.user.IUser;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 简略好友信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:13
@@ -17,6 +18,7 @@ import lombok.EqualsAndHashCode;
public class FriendInformation extends IUser {
/**
* 添加后的好友备注(仅在同意时有效)
+ *
* @since 2024/8/24 23:59 v0.0.6-dev
*/
private String remark;
diff --git a/src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java b/mybot-api/src/main/java/cn/wzpmc/entities/GroupHonorUser.java
similarity index 92%
rename from src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/GroupHonorUser.java
index b55f634..7a3203d 100644
--- a/src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/GroupHonorUser.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -6,6 +6,7 @@ import lombok.Data;
/**
* 群成员荣耀信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:39
@@ -15,22 +16,26 @@ import lombok.Data;
public class GroupHonorUser {
/**
* QQ 号
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 昵称
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
private String nickname;
/**
* 头像 URL
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
private String avatar;
/**
* 荣誉描述
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
private String description;
diff --git a/src/main/java/cn/wzpmc/api/entities/GroupInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/GroupInformation.java
similarity index 93%
rename from src/main/java/cn/wzpmc/api/entities/GroupInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/GroupInformation.java
index c362900..e184c48 100644
--- a/src/main/java/cn/wzpmc/api/entities/GroupInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/GroupInformation.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -6,6 +6,7 @@ import lombok.Data;
/**
* 群信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:15
@@ -15,24 +16,28 @@ import lombok.Data;
public class GroupInformation {
/**
* 群号
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 群名称
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
@JSONField(name = "group_name")
private String groupName;
/**
* 成员数
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
@JSONField(name = "member_count")
private Integer memberCount;
/**
* 最大成员数(群容量)
+ *
* @since 2024/8/25 00:00 v0.0.6-dev
*/
@JSONField(name = "max_member_count")
diff --git a/src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/GroupMemberInformation.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/GroupMemberInformation.java
index 1c14b5f..743d402 100644
--- a/src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/GroupMemberInformation.java
@@ -1,7 +1,7 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
-import cn.wzpmc.api.user.Sex;
-import cn.wzpmc.api.user.permission.Permissions;
+import cn.wzpmc.user.Sex;
+import cn.wzpmc.user.permission.Permissions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -10,6 +10,7 @@ import java.util.Date;
/**
* 群成员信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:22
@@ -19,81 +20,96 @@ import java.util.Date;
public class GroupMemberInformation {
/**
* 群号
+ *
* @since 2024/8/24 19:29 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* QQ 号
+ *
* @since 2024/8/24 19:29 v0.0.6-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 昵称
+ *
* @since 2024/8/24 19:29 v0.0.6-dev
*/
private String nickname;
/**
* 群名片/备注
+ *
* @since 2024/8/24 19:29 v0.0.6-dev
*/
private String card;
/**
* 性别
+ *
* @since 2024/8/24 19:29 v0.0.6-dev
*/
private Sex sex;
/**
* 年龄
+ *
* @since 2024/8/24 19:29 v0.0.6-dev
*/
private Integer age;
/**
* 地区
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
private String area;
/**
* 加群时间
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
@JSONField(name = "join_time")
private Date joinTime;
/**
* 最后发言时间
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
@JSONField(name = "last_sent_time")
private Date lastSentTime;
/**
* 成员等级
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
private String level;
/**
* 角色
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
private Permissions role;
/**
* 是否不良记录成员
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
private boolean unfriendly;
/**
* 专属头衔
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
private String title;
/**
* 专属头衔过期时间
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
@JSONField(name = "title_expire_time")
private Date titleExpireTime;
/**
* 是否允许修改群名片
+ *
* @since 2024/8/24 19:30 v0.0.6-dev
*/
@JSONField(name = "card_changeable")
diff --git a/src/main/java/cn/wzpmc/api/entities/HonorInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/HonorInformation.java
similarity index 95%
rename from src/main/java/cn/wzpmc/api/entities/HonorInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/HonorInformation.java
index 615c31f..4ebe843 100644
--- a/src/main/java/cn/wzpmc/api/entities/HonorInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/HonorInformation.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -8,6 +8,7 @@ import java.util.List;
/**
* 群荣耀信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:36
@@ -17,42 +18,49 @@ import java.util.List;
public class HonorInformation {
/**
* 群号
+ *
* @since 2024/8/24 23:17 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 当前龙王,仅 type 为 talkative 或 all 时有数据
+ *
* @since 2024/8/24 23:17 v0.0.6-dev
*/
@JSONField(name = "current_talkative")
private HonorTalkative currentTalkative;
/**
* 历史龙王,仅 type 为 talkative 或 all 时有数据
+ *
* @since 2024/8/24 23:17 v0.0.6-dev
*/
@JSONField(name = "talkative_list")
private List talkativeList;
/**
* 群聊之火,仅 type 为 performer 或 all 时有数据
+ *
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "performer_list")
private List performerList;
/**
* 群聊炽焰,仅 type 为 legend 或 all 时有数据
+ *
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "legend_list")
private List legendList;
/**
* 冒尖小春笋,仅 type 为 strong_newbie 或 all 时有数据
+ *
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "strong_newbie_list")
private List strongNewbieList;
/**
* 快乐之源,仅 type 为 emotion 或 all 时有数据
+ *
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "emotion_list")
diff --git a/src/main/java/cn/wzpmc/api/entities/HonorTalkative.java b/mybot-api/src/main/java/cn/wzpmc/entities/HonorTalkative.java
similarity index 92%
rename from src/main/java/cn/wzpmc/api/entities/HonorTalkative.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/HonorTalkative.java
index 97495d8..9aaffae 100644
--- a/src/main/java/cn/wzpmc/api/entities/HonorTalkative.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/HonorTalkative.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -6,6 +6,7 @@ import lombok.Data;
/**
* 龙王信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:38
@@ -15,22 +16,26 @@ import lombok.Data;
public class HonorTalkative {
/**
* QQ 号
+ *
* @since 2024/8/25 00:01 v0.0.6-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 昵称
+ *
* @since 2024/8/25 00:01 v0.0.6-dev
*/
private String nickname;
/**
* 头像 URL
+ *
* @since 2024/8/25 00:01 v0.0.6-dev
*/
private String avatar;
/**
* 持续天数
+ *
* @since 2024/8/25 00:01 v0.0.6-dev
*/
@JSONField(name = "day_count")
diff --git a/src/main/java/cn/wzpmc/api/entities/HonorType.java b/mybot-api/src/main/java/cn/wzpmc/entities/HonorType.java
similarity index 88%
rename from src/main/java/cn/wzpmc/api/entities/HonorType.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/HonorType.java
index 296eef8..c730ee0 100644
--- a/src/main/java/cn/wzpmc/api/entities/HonorType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/HonorType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
/**
* 荣耀类型
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 23:11
@@ -9,32 +10,38 @@ package cn.wzpmc.api.entities;
public enum HonorType {
/**
* 龙王
+ *
* @since 2024/8/24 23:12 v0.0.6-dev
*/
TALKATIVE,
/**
* 群聊之火
+ *
* @since 2024/8/24 23:12 v0.0.6-dev
*/
PERFORMER,
/**
* 群聊炽焰
+ *
* @since 2024/8/24 23:12 v0.0.6-dev
*/
LEGEND,
/**
* 冒尖小春笋
+ *
* @since 2024/8/24 23:13 v0.0.6-dev
*/
STRONG_NEWBIE,
/**
* 快乐之源
+ *
* @since 2024/8/24 23:13 v0.0.6-dev
*/
EMOTION,
/**
* 全部
+ *
* @since 2024/8/24 23:13 v0.0.6-dev
*/
- ALL;
+ ALL
}
diff --git a/src/main/java/cn/wzpmc/api/entities/MessageInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/MessageInformation.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/entities/MessageInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/MessageInformation.java
index 1ec7b7e..58732d0 100644
--- a/src/main/java/cn/wzpmc/api/entities/MessageInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/MessageInformation.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
-import cn.wzpmc.api.events.message.MessageType;
-import cn.wzpmc.api.message.MessageComponent;
-import cn.wzpmc.api.user.IUser;
+import cn.wzpmc.events.message.MessageType;
+import cn.wzpmc.message.MessageComponent;
+import cn.wzpmc.user.IUser;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
/**
* 获取消息操作返回
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/17 23:08
@@ -16,33 +17,39 @@ import lombok.Data;
public class MessageInformation {
/**
* 发送时间
+ *
* @since 2024/8/23 21:34 v0.0.5-dev
*/
private Integer time;
/**
* 消息类型
+ *
* @since 2024/8/23 21:34 v0.0.5-dev
*/
private MessageType type;
/**
* 消息 ID
+ *
* @since 2024/8/23 21:34 v0.0.5-dev
*/
@JSONField(name = "message_id")
private Integer messageId;
/**
* 消息真实 ID
+ *
* @since 2024/8/23 21:34 v0.0.5-dev
*/
@JSONField(name = "real_id")
private Integer realId;
/**
* 发送人信息
+ *
* @since 2024/8/23 21:35 v0.0.5-dev
*/
private IUser sender;
/**
* 消息内容
+ *
* @since 2024/8/23 21:35 v0.0.5-dev
*/
private MessageComponent message;
diff --git a/src/main/java/cn/wzpmc/api/entities/Ops.java b/mybot-api/src/main/java/cn/wzpmc/entities/Ops.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/entities/Ops.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/Ops.java
index 79adf2c..0abf044 100644
--- a/src/main/java/cn/wzpmc/api/entities/Ops.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/Ops.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import lombok.Getter;
@@ -6,6 +6,7 @@ import java.util.*;
/**
* 分群op列表
+ *
* @author wzp
* @version 1.0.0
* @since 2024/8/25 20:16
@@ -14,29 +15,32 @@ import java.util.*;
public final class Ops {
/**
* BOT总管理员
+ *
* @since 2024/8/25 20:17 v1.0.0
*/
private final Set admins = new HashSet<>();
/**
* 群内管理员
+ *
* @since 2024/8/25 20:17 v1.0.0
*/
private final Map> groupAdmins = new HashMap<>();
/**
* 判断此用户在群中是否为管理
+ *
+ * @param groupId 群ID
+ * @param id 用户ID
+ * @return 是否管理
* @author wzp
* @since 2024/8/25 20:20 v1.0.0
- * @param groupId 群ID
- * @param id 用户ID
- * @return 是否管理
*/
- public boolean isAdmin(Long groupId, Long id){
- if (admins.contains(id)){
+ public boolean isAdmin(Long groupId, Long id) {
+ if (admins.contains(id)) {
return true;
}
List longs = groupAdmins.get(groupId.toString());
- if (longs == null){
+ if (longs == null) {
return false;
}
return longs.contains(id);
@@ -44,10 +48,11 @@ public final class Ops {
/**
* 判断此用户是否为管理
- * @author wzp
- * @since 2024/8/25 20:20 v1.0.0
+ *
* @param id 用户ID
* @return 是否管理
+ * @author wzp
+ * @since 2024/8/25 20:20 v1.0.0
*/
public boolean isAdmin(Long id) {
return admins.contains(id);
diff --git a/src/main/java/cn/wzpmc/api/entities/VersionInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/VersionInformation.java
similarity index 93%
rename from src/main/java/cn/wzpmc/api/entities/VersionInformation.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/VersionInformation.java
index 87d5d8d..c2efa5a 100644
--- a/src/main/java/cn/wzpmc/api/entities/VersionInformation.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/VersionInformation.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -6,6 +6,7 @@ import lombok.Data;
/**
* CQ服务端版本信息
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:54
@@ -15,18 +16,21 @@ import lombok.Data;
public class VersionInformation {
/**
* 应用标识,如 mirai-native
+ *
* @since 2024/8/25 00:02 v0.0.6-dev
*/
@JSONField(name = "app_name")
private String appName;
/**
* 应用版本,如 1.2.3
+ *
* @since 2024/8/25 00:02 v0.0.6-dev
*/
@JSONField(name = "app_version")
private String appVersion;
/**
* OneBot 标准版本,如 v11
+ *
* @since 2024/8/25 00:02 v0.0.6-dev
*/
@JSONField(name = "protocol_version")
diff --git a/src/main/java/cn/wzpmc/api/entities/YesNo.java b/mybot-api/src/main/java/cn/wzpmc/entities/YesNo.java
similarity index 88%
rename from src/main/java/cn/wzpmc/api/entities/YesNo.java
rename to mybot-api/src/main/java/cn/wzpmc/entities/YesNo.java
index 58c63fc..3f884da 100644
--- a/src/main/java/cn/wzpmc/api/entities/YesNo.java
+++ b/mybot-api/src/main/java/cn/wzpmc/entities/YesNo.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.entities;
+package cn.wzpmc.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 是或否
+ *
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 19:53
@@ -14,6 +15,7 @@ import lombok.Data;
public class YesNo {
/**
* 是或否
+ *
* @since 2024/8/25 00:02 v0.0.6-dev
*/
private boolean yes;
diff --git a/src/main/java/cn/wzpmc/api/events/Event.java b/mybot-api/src/main/java/cn/wzpmc/events/Event.java
similarity index 93%
rename from src/main/java/cn/wzpmc/api/events/Event.java
rename to mybot-api/src/main/java/cn/wzpmc/events/Event.java
index 59b1a89..fa6444c 100644
--- a/src/main/java/cn/wzpmc/api/events/Event.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/Event.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events;
+package cn.wzpmc.events;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
/**
* 事件基类
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午5:46
@@ -17,17 +18,20 @@ import lombok.NoArgsConstructor;
public class Event {
/**
* 事件发生的时间戳
+ *
* @since 2024/8/1 下午5:52 v0.0.2-dev
*/
private Long time;
/**
* 收到事件的机器人的QQ号
+ *
* @since 2024/8/1 下午5:52 v0.0.2-dev
*/
@JSONField(name = "self_id")
private Long selfId;
/**
* 事件类型
+ *
* @since 2024/8/1 下午5:52 v0.0.2-dev
*/
@JSONField(name = "post_type")
diff --git a/src/main/java/cn/wzpmc/api/events/EventPostType.java b/mybot-api/src/main/java/cn/wzpmc/events/EventPostType.java
similarity index 70%
rename from src/main/java/cn/wzpmc/api/events/EventPostType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/EventPostType.java
index b6e3b77..62f5fd5 100644
--- a/src/main/java/cn/wzpmc/api/events/EventPostType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/EventPostType.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events;
+package cn.wzpmc.events;
-import cn.wzpmc.api.events.message.MessageEvent;
-import cn.wzpmc.api.events.meta.MetaEvent;
-import cn.wzpmc.api.events.notice.NoticeEvent;
-import cn.wzpmc.api.events.request.RequestEvent;
+import cn.wzpmc.events.message.MessageEvent;
+import cn.wzpmc.events.meta.MetaEvent;
+import cn.wzpmc.events.notice.NoticeEvent;
+import cn.wzpmc.events.request.RequestEvent;
/**
* 事件类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午5:47
@@ -14,26 +15,31 @@ import cn.wzpmc.api.events.request.RequestEvent;
public enum EventPostType {
/**
* 消息事件
+ *
* @since 2024/8/1 下午5:48 v0.0.2-dev
*/
MESSAGE(MessageEvent.class),
/**
* 通知事件
+ *
* @since 2024/8/1 下午5:47 v0.0.2-dev
*/
NOTICE(NoticeEvent.class),
/**
* 请求事件
+ *
* @since 2024/8/1 下午5:47 v0.0.2-dev
*/
REQUEST(RequestEvent.class),
/**
* 元事件
+ *
* @since 2024/8/1 下午5:47 v0.0.2-dev
*/
META_EVENT(MetaEvent.class);
public final Class extends Event> clazz;
- EventPostType(Class extends Event> clazz){
+
+ EventPostType(Class extends Event> clazz) {
this.clazz = clazz;
}
}
diff --git a/src/main/java/cn/wzpmc/api/events/message/MessageEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageEvent.java
similarity index 88%
rename from src/main/java/cn/wzpmc/api/events/message/MessageEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/message/MessageEvent.java
index e80b8f1..df0b917 100644
--- a/src/main/java/cn/wzpmc/api/events/message/MessageEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageEvent.java
@@ -1,8 +1,8 @@
-package cn.wzpmc.api.events.message;
+package cn.wzpmc.events.message;
-import cn.wzpmc.api.events.Event;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.message.json.JsonMessage;
+import cn.wzpmc.events.Event;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.message.json.JsonMessage;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
/**
* 消息事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午5:49
@@ -22,46 +23,54 @@ import lombok.NoArgsConstructor;
public class MessageEvent extends Event {
/**
* 消息子类型
+ *
* @since 2024/8/1 下午11:11 v0.0.2-dev
*/
@JSONField(name = "sub_type")
private E subType;
/**
* 消息类型
+ *
* @since 2024/8/1 下午11:24 v0.0.2-dev
*/
@JSONField(name = "message_type")
private MessageType messageType;
/**
* 消息ID
+ *
* @since 2024/8/1 下午11:11 v0.0.2-dev
*/
@JSONField(name = "message_id")
private Integer messageId;
/**
* 发送者ID
+ *
* @since 2024/8/1 下午11:11 v0.0.2-dev
*/
@JSONField(name = "user_id")
private Integer userId;
/**
* 消息详细内容
+ *
* @since 2024/8/1 下午11:11 v0.0.2-dev
*/
private JsonMessage message;
/**
* 文本格式消息
+ *
* @since 2024/8/1 下午11:11 v0.0.2-dev
*/
@JSONField(name = "raw_message")
private StringMessage rawMessage;
/**
* 消息使用字体
+ *
* @since 2024/8/1 下午11:11 v0.0.2-dev
*/
private Integer font;
/**
* 发送者详细信息
+ *
* @since 2024/8/1 下午11:12 v0.0.2-dev
*/
private U sender;
diff --git a/src/main/java/cn/wzpmc/api/events/message/MessageType.java b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageType.java
similarity index 66%
rename from src/main/java/cn/wzpmc/api/events/message/MessageType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/message/MessageType.java
index 90f22ef..0320227 100644
--- a/src/main/java/cn/wzpmc/api/events/message/MessageType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageType.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.events.message;
+package cn.wzpmc.events.message;
-import cn.wzpmc.api.events.message.group.GroupMessageEvent;
-import cn.wzpmc.api.events.message.priv.PrivateMessageEvent;
+import cn.wzpmc.events.message.group.GroupMessageEvent;
+import cn.wzpmc.events.message.priv.PrivateMessageEvent;
/**
* 消息类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午5:54
@@ -12,16 +13,19 @@ import cn.wzpmc.api.events.message.priv.PrivateMessageEvent;
public enum MessageType {
/**
* 私聊
+ *
* @since 2024/8/1 下午5:55 v0.0.2-dev
*/
PRIVATE(PrivateMessageEvent.class),
/**
* 群
+ *
* @since 2024/8/1 下午5:55 v0.0.2-dev
*/
GROUP(GroupMessageEvent.class);
public final Class extends MessageEvent, ?>> clazz;
- MessageType(Class extends MessageEvent, ?>> clazz){
+
+ MessageType(Class extends MessageEvent, ?>> clazz) {
this.clazz = clazz;
}
}
diff --git a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageEvent.java
similarity index 76%
rename from src/main/java/cn/wzpmc/api/events/message/group/GroupMessageEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageEvent.java
index 434d7fe..a7392cf 100644
--- a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageEvent.java
@@ -1,14 +1,15 @@
-package cn.wzpmc.api.events.message.group;
+package cn.wzpmc.events.message.group;
-import cn.wzpmc.api.events.message.MessageEvent;
-import cn.wzpmc.api.user.group.GroupUser;
-import cn.wzpmc.api.user.group.GroupUserAnonymousInfo;
+import cn.wzpmc.events.message.MessageEvent;
+import cn.wzpmc.user.group.GroupUser;
+import cn.wzpmc.user.group.GroupUserAnonymousInfo;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群消息事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午8:59
@@ -18,12 +19,14 @@ import lombok.EqualsAndHashCode;
public class GroupMessageEvent extends MessageEvent {
/**
* 群号
+ *
* @since 2024/8/1 下午11:11 v0.0.2-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 匿名消息消息(当非匿名消息时为null)
+ *
* @since 2024/8/1 下午11:10 v0.0.2-dev
*/
private GroupUserAnonymousInfo anonymous;
diff --git a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageSubType.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/events/message/group/GroupMessageSubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageSubType.java
index a904992..17ecda1 100644
--- a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageSubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageSubType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.events.message.group;
+package cn.wzpmc.events.message.group;
/**
* 群消息子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午6:02
@@ -9,16 +10,19 @@ package cn.wzpmc.api.events.message.group;
public enum GroupMessageSubType {
/**
* 好友
+ *
* @since 2024/8/1 下午6:03 v0.0.2-dev
*/
FRIEND,
/**
* 群临时会话
+ *
* @since 2024/8/1 下午6:03 v0.0.2-dev
*/
GROUP,
/**
* 其他
+ *
* @since 2024/8/1 下午6:03 v0.0.2-dev
*/
OTHER
diff --git a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageEvent.java
similarity index 53%
rename from src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageEvent.java
index 84d5a6a..5b047c1 100644
--- a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageEvent.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.events.message.priv;
+package cn.wzpmc.events.message.priv;
-import cn.wzpmc.api.events.message.MessageEvent;
-import cn.wzpmc.api.user.Friend;
+import cn.wzpmc.events.message.MessageEvent;
+import cn.wzpmc.user.Friend;
/**
- * 饲料消息事件
+ * 私聊消息事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:02
diff --git a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageSubType.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageSubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageSubType.java
index ecf93bb..b7bdd2a 100644
--- a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageSubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageSubType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.events.message.priv;
+package cn.wzpmc.events.message.priv;
/**
* 私聊消息子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午6:04
@@ -9,16 +10,19 @@ package cn.wzpmc.api.events.message.priv;
public enum PrivateMessageSubType {
/**
* 正常消息
+ *
* @since 2024/8/1 下午6:07 v0.0.2-dev
*/
NORMAL,
/**
* 匿名消息
+ *
* @since 2024/8/1 下午6:06 v0.0.2-dev
*/
ANONYMOUS,
/**
* 系统提示
+ *
* @since 2024/8/1 下午6:06 v0.0.2-dev
*/
NOTICE
diff --git a/src/main/java/cn/wzpmc/api/events/meta/HeartBeatEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/HeartBeatEvent.java
similarity index 76%
rename from src/main/java/cn/wzpmc/api/events/meta/HeartBeatEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/meta/HeartBeatEvent.java
index 6ff805d..7c75e12 100644
--- a/src/main/java/cn/wzpmc/api/events/meta/HeartBeatEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/HeartBeatEvent.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.events.meta;
+package cn.wzpmc.events.meta;
-import cn.wzpmc.api.entities.BotStatus;
+import cn.wzpmc.entities.BotStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -11,14 +11,16 @@ import lombok.EqualsAndHashCode;
*/
@EqualsAndHashCode(callSuper = true)
@Data
-public class HeartBeatEvent extends MetaEvent{
+public class HeartBeatEvent extends MetaEvent {
/**
* 状态信息
+ *
* @since 2024/8/1 下午10:32 v0.0.2-dev
*/
private BotStatus status;
/**
* 到下次心跳的间隔(ms)
+ *
* @since 2024/8/1 下午10:32 v0.0.2-dev
*/
private Long interval;
diff --git a/src/main/java/cn/wzpmc/api/events/meta/MetaEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEvent.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/events/meta/MetaEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEvent.java
index 8039a4b..13fa8f6 100644
--- a/src/main/java/cn/wzpmc/api/events/meta/MetaEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.meta;
+package cn.wzpmc.events.meta;
-import cn.wzpmc.api.events.Event;
+import cn.wzpmc.events.Event;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 元事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:26
@@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode;
public class MetaEvent extends Event {
/**
* 元事件子类型
+ *
* @since 2024/8/1 下午11:12 v0.0.2-dev
*/
@JSONField(name = "meta_event_type")
diff --git a/src/main/java/cn/wzpmc/api/events/meta/MetaEventType.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEventType.java
similarity index 64%
rename from src/main/java/cn/wzpmc/api/events/meta/MetaEventType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEventType.java
index 247f054..fd2bcda 100644
--- a/src/main/java/cn/wzpmc/api/events/meta/MetaEventType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEventType.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.events.meta;
+package cn.wzpmc.events.meta;
-import cn.wzpmc.api.events.meta.lifecycle.LifecycleEvent;
+import cn.wzpmc.events.meta.lifecycle.LifecycleEvent;
/**
* @author wzp
@@ -11,7 +11,8 @@ public enum MetaEventType {
LIFECYCLE(LifecycleEvent.class),
HEARTBEAT(HeartBeatEvent.class);
public final Class extends MetaEvent> clazz;
- MetaEventType(Class extends MetaEvent> clazz){
+
+ MetaEventType(Class extends MetaEvent> clazz) {
this.clazz = clazz;
}
}
diff --git a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEvent.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEvent.java
index f8c74d4..69ae2e7 100644
--- a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.meta.lifecycle;
+package cn.wzpmc.events.meta.lifecycle;
-import cn.wzpmc.api.events.meta.MetaEvent;
+import cn.wzpmc.events.meta.MetaEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 生命周期事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:28
@@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode;
public class LifecycleEvent extends MetaEvent {
/**
* 生命周期事件子类型
+ *
* @since 2024/8/1 下午10:29 v0.0.2-dev
*/
@JSONField(name = "sub_type")
diff --git a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEventSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEventSubType.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEventSubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEventSubType.java
index a2c6dc2..e9630b3 100644
--- a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEventSubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEventSubType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.events.meta.lifecycle;
+package cn.wzpmc.events.meta.lifecycle;
/**
* 生命周期事件子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:28
@@ -9,16 +10,19 @@ package cn.wzpmc.api.events.meta.lifecycle;
public enum LifecycleEventSubType {
/**
* OneBot被启用
+ *
* @since 2024/8/1 下午10:29 v0.0.2-dev
*/
ENABLE,
/**
* OneBot被禁用
+ *
* @since 2024/8/1 下午10:29 v0.0.2-dev
*/
DISABLE,
/**
* WebSocket连接成功
+ *
* @since 2024/8/1 下午10:29 v0.0.2-dev
*/
CONNECT
diff --git a/src/main/java/cn/wzpmc/api/events/notice/FriendAddEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/FriendAddEvent.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/events/notice/FriendAddEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/FriendAddEvent.java
index ebc43c7..b7690a7 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/FriendAddEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/FriendAddEvent.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events.notice;
+package cn.wzpmc.events.notice;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
/**
* 好友添加事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:42
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
public class FriendAddEvent extends NoticeEvent {
/**
* 用户ID
+ *
* @since 2024/8/1 下午11:13 v0.0.2-dev
*/
@JSONField(name = "user_id")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/GroupBanEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/GroupBanEvent.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/events/notice/GroupBanEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/GroupBanEvent.java
index a12fff7..ec4785c 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/GroupBanEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/GroupBanEvent.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events.notice;
+package cn.wzpmc.events.notice;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
@@ -6,33 +6,38 @@ import lombok.EqualsAndHashCode;
/**
* 群成员禁言事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:19
*/
@EqualsAndHashCode(callSuper = true)
@Data
-public class GroupBanEvent extends NoticeEvent{
+public class GroupBanEvent extends NoticeEvent {
/**
* 群号
+ *
* @since 2024/8/1 下午10:21 v0.0.2-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 操作者用户ID
+ *
* @since 2024/8/1 下午10:20 v0.0.2-dev
*/
@JSONField(name = "operator_id")
private Long operatorId;
/**
* 被禁言的用户ID
+ *
* @since 2024/8/1 下午10:20 v0.0.2-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 被禁言的时长(秒)
+ *
* @since 2024/8/1 下午10:20 v0.0.2-dev
*/
private Long duration;
diff --git a/src/main/java/cn/wzpmc/api/events/notice/NoticeEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeEvent.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/events/notice/NoticeEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeEvent.java
index 07d0a20..f1a730a 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/NoticeEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.notice;
+package cn.wzpmc.events.notice;
-import cn.wzpmc.api.events.Event;
+import cn.wzpmc.events.Event;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 通知基事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:21
@@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode;
public class NoticeEvent extends Event {
/**
* 通知类型
+ *
* @since 2024/8/1 下午11:12 v0.0.2-dev
*/
@JSONField(name = "notice_type")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/NoticeType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeType.java
similarity index 70%
rename from src/main/java/cn/wzpmc/api/events/notice/NoticeType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeType.java
index fca32c9..f5a4e5c 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/NoticeType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeType.java
@@ -1,15 +1,16 @@
-package cn.wzpmc.api.events.notice;
+package cn.wzpmc.events.notice;
-import cn.wzpmc.api.events.notice.admin.GroupAdminChangeEvent;
-import cn.wzpmc.api.events.notice.file.GroupFileUploadedEvent;
-import cn.wzpmc.api.events.notice.notify.NotifyEvent;
-import cn.wzpmc.api.events.notice.recall.GroupMessageRecallEvent;
-import cn.wzpmc.api.events.notice.recall.MessageRecallEvent;
-import cn.wzpmc.api.events.notice.user.decrease.GroupUserDecreaseEvent;
-import cn.wzpmc.api.events.notice.user.increase.GroupUserIncreaseEvent;
+import cn.wzpmc.events.notice.admin.GroupAdminChangeEvent;
+import cn.wzpmc.events.notice.file.GroupFileUploadedEvent;
+import cn.wzpmc.events.notice.notify.NotifyEvent;
+import cn.wzpmc.events.notice.recall.GroupMessageRecallEvent;
+import cn.wzpmc.events.notice.recall.MessageRecallEvent;
+import cn.wzpmc.events.notice.user.decrease.GroupUserDecreaseEvent;
+import cn.wzpmc.events.notice.user.increase.GroupUserIncreaseEvent;
/**
* 通知类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:12
@@ -17,52 +18,62 @@ import cn.wzpmc.api.events.notice.user.increase.GroupUserIncreaseEvent;
public enum NoticeType {
/**
* 群文件上传事件
+ *
* @since 2024/8/1 下午10:24 v0.0.2-dev
*/
GROUP_UPLOAD(GroupFileUploadedEvent.class),
/**
* 群管理变更事件
+ *
* @since 2024/8/1 下午10:24 v0.0.2-dev
*/
GROUP_ADMIN(GroupAdminChangeEvent.class),
/**
* 用户退群事件
+ *
* @since 2024/8/1 下午10:24 v0.0.2-dev
*/
GROUP_DECREASE(GroupUserDecreaseEvent.class),
/**
* 用户加群事件
+ *
* @since 2024/8/1 下午10:23 v0.0.2-dev
*/
GROUP_INCREASE(GroupUserIncreaseEvent.class),
/**
* 群组禁言事件
+ *
* @since 2024/8/1 下午10:23 v0.0.2-dev
*/
GROUP_BAN(GroupBanEvent.class),
/**
* 好友添加事件
+ *
* @since 2024/8/1 下午10:23 v0.0.2-dev
*/
FRIEND_ADD(FriendAddEvent.class),
/**
* 群消息撤回事件
+ *
* @since 2024/8/1 下午10:23 v0.0.2-dev
*/
GROUP_RECALL(GroupMessageRecallEvent.class),
/**
* 好友消息撤回事件
+ *
* @since 2024/8/1 下午10:23 v0.0.2-dev
*/
FRIEND_RECALL(MessageRecallEvent.class),
/**
* 群提醒事件
+ *
+ * @see NotifyEvent
* @since 2024/8/1 下午10:22 v0.0.2-dev
- * @see cn.wzpmc.api.events.notice.notify.NotifyEvent
*/
NOTIFY(NotifyEvent.class);
public final Class extends NoticeEvent> clazz;
- NoticeType(Class extends NoticeEvent> clazz){
+
+ NoticeType(Class extends NoticeEvent> clazz) {
this.clazz = clazz;
}
}
diff --git a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeEvent.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeEvent.java
index 9a1ac5b..302a885 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.notice.admin;
+package cn.wzpmc.events.notice.admin;
-import cn.wzpmc.api.events.notice.NoticeEvent;
+import cn.wzpmc.events.notice.NoticeEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群管理员更改事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:26
@@ -16,18 +17,21 @@ import lombok.EqualsAndHashCode;
public class GroupAdminChangeEvent extends NoticeEvent {
/**
* 事件子类型
+ *
* @since 2024/8/1 下午9:28 v0.0.2-dev
*/
@JSONField(name = "sub_type")
private GroupAdminChangeSubType subType;
/**
* 群号
+ *
* @since 2024/8/1 下午9:29 v0.0.2-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 被操作者QQ号
+ *
* @since 2024/8/1 下午9:29 v0.0.2-dev
*/
@JSONField(name = "user_id")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeSubType.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeSubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeSubType.java
index ed5d596..6749e86 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeSubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeSubType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.events.notice.admin;
+package cn.wzpmc.events.notice.admin;
/**
* 管理员更改子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:27
@@ -9,11 +10,13 @@ package cn.wzpmc.api.events.notice.admin;
public enum GroupAdminChangeSubType {
/**
* 设置管理员
+ *
* @since 2024/8/1 下午9:27 v0.0.2-dev
*/
SET,
/**
* 取消管理员
+ *
* @since 2024/8/1 下午9:28 v0.0.2-dev
*/
UNSET
diff --git a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFile.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFile.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/events/notice/file/GroupFile.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFile.java
index 99247f4..2260385 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFile.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFile.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events.notice.file;
+package cn.wzpmc.events.notice.file;
import lombok.Data;
@@ -11,21 +11,25 @@ import lombok.Data;
public class GroupFile {
/**
* 文件ID
+ *
* @since 2024/8/1 下午9:24 v0.0.2-dev
*/
private String id;
/**
* 文件名
+ *
* @since 2024/8/1 下午9:24 v0.0.2-dev
*/
private String name;
/**
* 文件大小
+ *
* @since 2024/8/1 下午9:24 v0.0.2-dev
*/
private Long size;
/**
* BUSID(具体见OneBot文档)
+ *
* @since 2024/8/1 下午9:24 v0.0.2-dev
*/
private Long busid;
diff --git a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFileUploadedEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFileUploadedEvent.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/events/notice/file/GroupFileUploadedEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFileUploadedEvent.java
index 1920597..aabb2a8 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFileUploadedEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFileUploadedEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.notice.file;
+package cn.wzpmc.events.notice.file;
-import cn.wzpmc.api.events.notice.NoticeEvent;
+import cn.wzpmc.events.notice.NoticeEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群文件上传事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:21
@@ -16,18 +17,21 @@ import lombok.EqualsAndHashCode;
public class GroupFileUploadedEvent extends NoticeEvent {
/**
* 群组ID
+ *
* @since 2024/8/1 下午9:25 v0.0.2-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 用户ID
+ *
* @since 2024/8/1 下午9:25 v0.0.2-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 文件详细消息
+ *
* @since 2024/8/1 下午9:25 v0.0.2-dev
*/
@JSONField(name = "group_file")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/LuckyKingNotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/LuckyKingNotifyEvent.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/events/notice/notify/LuckyKingNotifyEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/LuckyKingNotifyEvent.java
index 913051a..6c10299 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/notify/LuckyKingNotifyEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/LuckyKingNotifyEvent.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events.notice.notify;
+package cn.wzpmc.events.notice.notify;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
/**
* 红包幸运王事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:03
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
public class LuckyKingNotifyEvent extends NotifyEvent {
/**
* 运气王ID
+ *
* @since 2024/8/1 下午10:04 v0.0.2-dev
*/
@JSONField(name = "target_id")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifyEvent.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/events/notice/notify/NotifyEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifyEvent.java
index ea9c1a2..ac8179d 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifyEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifyEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.notice.notify;
+package cn.wzpmc.events.notice.notify;
-import cn.wzpmc.api.events.notice.NoticeEvent;
+import cn.wzpmc.events.notice.NoticeEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群提醒事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:59
@@ -16,18 +17,21 @@ import lombok.EqualsAndHashCode;
public class NotifyEvent extends NoticeEvent {
/**
* 群号
+ *
* @since 2024/8/1 下午10:01 v0.0.2-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 相关用户ID
+ *
* @since 2024/8/1 下午10:00 v0.0.2-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 群提醒事件子类型
+ *
* @since 2024/8/1 下午11:26 v0.0.2-dev
*/
@JSONField(name = "sub_type")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifySubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifySubType.java
similarity index 77%
rename from src/main/java/cn/wzpmc/api/events/notice/notify/NotifySubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifySubType.java
index bc3c622..80ff308 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifySubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifySubType.java
@@ -1,9 +1,10 @@
-package cn.wzpmc.api.events.notice.notify;
+package cn.wzpmc.events.notice.notify;
-import cn.wzpmc.api.events.notice.notify.honor.HonorNotifyEvent;
+import cn.wzpmc.events.notice.notify.honor.HonorNotifyEvent;
/**
* 群提醒事件子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:58
@@ -11,21 +12,25 @@ import cn.wzpmc.api.events.notice.notify.honor.HonorNotifyEvent;
public enum NotifySubType {
/**
* 群内戳一戳事件
+ *
* @since 2024/8/1 下午10:16 v0.0.2-dev
*/
POKE(PokeNotifyEvent.class),
/**
* 红包运气王事件
+ *
* @since 2024/8/1 下午10:16 v0.0.2-dev
*/
LUCKY_KING(LuckyKingNotifyEvent.class),
/**
* 群内荣耀变更事件
+ *
* @since 2024/8/1 下午10:16 v0.0.2-dev
*/
HONOR(HonorNotifyEvent.class);
public final Class extends NotifyEvent> clazz;
- NotifySubType(Class extends NotifyEvent> clazz){
+
+ NotifySubType(Class extends NotifyEvent> clazz) {
this.clazz = clazz;
}
}
diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/PokeNotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/PokeNotifyEvent.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/events/notice/notify/PokeNotifyEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/PokeNotifyEvent.java
index 38369bf..e0f6205 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/notify/PokeNotifyEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/PokeNotifyEvent.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events.notice.notify;
+package cn.wzpmc.events.notice.notify;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
/**
* 群内戳一戳事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:02
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
public class PokeNotifyEvent extends NotifyEvent {
/**
* 被戳者ID
+ *
* @since 2024/8/1 下午10:02 v0.0.2-dev
*/
@JSONField(name = "target_id")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorNotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorNotifyEvent.java
similarity index 81%
rename from src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorNotifyEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorNotifyEvent.java
index 2a0192f..e4ddfde 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorNotifyEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorNotifyEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.notice.notify.honor;
+package cn.wzpmc.events.notice.notify.honor;
-import cn.wzpmc.api.events.notice.notify.NotifyEvent;
+import cn.wzpmc.events.notice.notify.NotifyEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群荣耀变更事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:04
@@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode;
public class HonorNotifyEvent extends NotifyEvent {
/**
* 荣耀类型
+ *
* @since 2024/8/1 下午10:06 v0.0.2-dev
*/
@JSONField(name = "honor_type")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorType.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorType.java
index c805dac..f1ba28e 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.events.notice.notify.honor;
+package cn.wzpmc.events.notice.notify.honor;
/**
* 荣耀类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:05
@@ -9,16 +10,19 @@ package cn.wzpmc.api.events.notice.notify.honor;
public enum HonorType {
/**
* 龙王
+ *
* @since 2024/8/1 下午10:05 v0.0.2-dev
*/
TALKACTIVE,
/**
* 群聊之火
+ *
* @since 2024/8/1 下午10:05 v0.0.2-dev
*/
PERFORMER,
/**
* 快乐源泉
+ *
* @since 2024/8/1 下午10:05 v0.0.2-dev
*/
EMOTION
diff --git a/src/main/java/cn/wzpmc/api/events/notice/recall/GroupMessageRecallEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/GroupMessageRecallEvent.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/events/notice/recall/GroupMessageRecallEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/recall/GroupMessageRecallEvent.java
index b7440c7..fb11276 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/recall/GroupMessageRecallEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/GroupMessageRecallEvent.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events.notice.recall;
+package cn.wzpmc.events.notice.recall;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
/**
* 群消息撤回事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:43
@@ -15,12 +16,14 @@ import lombok.EqualsAndHashCode;
public class GroupMessageRecallEvent extends MessageRecallEvent {
/**
* 群号
+ *
* @since 2024/8/1 下午9:46 v0.0.2-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 操作者ID
+ *
* @since 2024/8/1 下午9:45 v0.0.2-dev
*/
@JSONField(name = "operator_id")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/recall/MessageRecallEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/MessageRecallEvent.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/events/notice/recall/MessageRecallEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/recall/MessageRecallEvent.java
index bca59fc..4bd41d9 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/recall/MessageRecallEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/MessageRecallEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.notice.recall;
+package cn.wzpmc.events.notice.recall;
-import cn.wzpmc.api.events.notice.NoticeEvent;
+import cn.wzpmc.events.notice.NoticeEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 消息撤回事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:48
@@ -16,12 +17,14 @@ import lombok.EqualsAndHashCode;
public class MessageRecallEvent extends NoticeEvent {
/**
* 被撤回的用户ID
+ *
* @since 2024/8/1 下午9:49 v0.0.2-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 被撤回的消息ID
+ *
* @since 2024/8/1 下午9:49 v0.0.2-dev
*/
@JSONField(name = "message_id")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/GroupUserModifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/GroupUserModifyEvent.java
similarity index 89%
rename from src/main/java/cn/wzpmc/api/events/notice/user/GroupUserModifyEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/GroupUserModifyEvent.java
index ae93423..e9bada1 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/user/GroupUserModifyEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/GroupUserModifyEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.notice.user;
+package cn.wzpmc.events.notice.user;
-import cn.wzpmc.api.events.notice.NoticeEvent;
+import cn.wzpmc.events.notice.NoticeEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群成员更改事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:30
@@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode;
public class GroupUserModifyEvent extends NoticeEvent {
/**
* 消息子类型
+ *
* @since 2024/8/1 下午9:31 v0.0.2-dev
*/
@JSONField(name = "sub_type")
@@ -28,12 +30,14 @@ public class GroupUserModifyEvent extends NoticeEvent {
private Long groupId;
/**
* 操作者
+ *
* @since 2024/8/1 下午9:32 v0.0.2-dev
*/
@JSONField(name = "operator_id")
private Long operatorId;
/**
* 加入/退出用户ID
+ *
* @since 2024/8/1 下午9:35 v0.0.2-dev
*/
@JSONField(name = "user_id")
diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseEvent.java
similarity index 72%
rename from src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseEvent.java
index 015ba0a..318298e 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseEvent.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.events.notice.user.decrease;
+package cn.wzpmc.events.notice.user.decrease;
-import cn.wzpmc.api.events.notice.user.GroupUserModifyEvent;
+import cn.wzpmc.events.notice.user.GroupUserModifyEvent;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群成员减少事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:29
diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseSubType.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseSubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseSubType.java
index 3c81adc..b6a860a 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseSubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseSubType.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.events.notice.user.decrease;
+package cn.wzpmc.events.notice.user.decrease;
/**
* @author wzp
@@ -8,16 +8,19 @@ package cn.wzpmc.api.events.notice.user.decrease;
public enum GroupUserDecreaseSubType {
/**
* 主动退群
+ *
* @since 2024/8/1 下午9:37 v0.0.2-dev
*/
LEAVE,
/**
* 成员被踢出
+ *
* @since 2024/8/1 下午9:37 v0.0.2-dev
*/
KICK,
/**
* 机器人被踢
+ *
* @since 2024/8/1 下午9:37 v0.0.2-dev
*/
KICK_ME
diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseEvent.java
similarity index 72%
rename from src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseEvent.java
index b2142e8..b22fa95 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseEvent.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.events.notice.user.increase;
+package cn.wzpmc.events.notice.user.increase;
-import cn.wzpmc.api.events.notice.user.GroupUserModifyEvent;
+import cn.wzpmc.events.notice.user.GroupUserModifyEvent;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 群成员增加事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:38
diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseSubType.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseSubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseSubType.java
index cb685b7..9f76312 100644
--- a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseSubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseSubType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.events.notice.user.increase;
+package cn.wzpmc.events.notice.user.increase;
/**
* 用户增加事件子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午9:39
@@ -10,11 +11,13 @@ public enum GroupUserIncreaseSubType {
/**
* 群管理同意
+ *
* @since 2024/8/1 下午9:40 v0.0.2-dev
*/
APPROVE,
/**
* 被群管理邀请加群
+ *
* @since 2024/8/1 下午9:40 v0.0.2-dev
*/
INVITE
diff --git a/src/main/java/cn/wzpmc/api/events/request/FriendAddRequestEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/request/FriendAddRequestEvent.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/events/request/FriendAddRequestEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/request/FriendAddRequestEvent.java
index 6854851..93a3ac1 100644
--- a/src/main/java/cn/wzpmc/api/events/request/FriendAddRequestEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/request/FriendAddRequestEvent.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.events.request;
+package cn.wzpmc.events.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 加好友事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:13
diff --git a/src/main/java/cn/wzpmc/api/events/request/RequestEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEvent.java
similarity index 89%
rename from src/main/java/cn/wzpmc/api/events/request/RequestEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/request/RequestEvent.java
index 3ab3052..34ffb16 100644
--- a/src/main/java/cn/wzpmc/api/events/request/RequestEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.request;
+package cn.wzpmc.events.request;
-import cn.wzpmc.api.events.Event;
+import cn.wzpmc.events.Event;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 请求基事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:08
@@ -16,23 +17,27 @@ import lombok.EqualsAndHashCode;
public class RequestEvent extends Event {
/**
* 请求类型
+ *
* @since 2024/8/1 下午10:10 v0.0.2-dev
*/
@JSONField(name = "request_type")
private RequestEventType requestType;
/**
* 发送请求的用户ID
+ *
* @since 2024/8/1 下午10:10 v0.0.2-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 验证消息
+ *
* @since 2024/8/1 下午10:10 v0.0.2-dev
*/
private String comment;
/**
* 请求Flag
+ *
* @since 2024/8/1 下午10:10 v0.0.2-dev
*/
private String flag;
diff --git a/src/main/java/cn/wzpmc/api/events/request/RequestEventType.java b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEventType.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/events/request/RequestEventType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/request/RequestEventType.java
index ccdd7bf..4f02151 100644
--- a/src/main/java/cn/wzpmc/api/events/request/RequestEventType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEventType.java
@@ -1,9 +1,10 @@
-package cn.wzpmc.api.events.request;
+package cn.wzpmc.events.request;
-import cn.wzpmc.api.events.request.group.GroupJoinRequestEvent;
+import cn.wzpmc.events.request.group.GroupJoinRequestEvent;
/**
* 请求事件子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:09
@@ -11,15 +12,18 @@ import cn.wzpmc.api.events.request.group.GroupJoinRequestEvent;
public enum RequestEventType {
/**
* 加好友事件
+ *
* @since 2024/8/1 下午10:15 v0.0.2-dev
*/
FRIEND(FriendAddRequestEvent.class),
/**
* 申请加群事件
+ *
* @since 2024/8/1 下午10:15 v0.0.2-dev
*/
GROUP(GroupJoinRequestEvent.class);
public final Class extends RequestEvent> clazz;
+
RequestEventType(Class extends RequestEvent> clazz) {
this.clazz = clazz;
}
diff --git a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEvent.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEvent.java
rename to mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEvent.java
index c00125d..ca47459 100644
--- a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEvent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEvent.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.events.request.group;
+package cn.wzpmc.events.request.group;
-import cn.wzpmc.api.events.request.RequestEvent;
+import cn.wzpmc.events.request.RequestEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 加群请求事件
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:11
@@ -16,12 +17,14 @@ import lombok.EqualsAndHashCode;
public class GroupJoinRequestEvent extends RequestEvent {
/**
* 加群子类型
+ *
* @since 2024/8/1 下午11:17 v0.0.2-dev
*/
@JSONField(name = "sub_type")
private GroupJoinRequestEventSubType subType;
/**
* 群ID
+ *
* @since 2024/8/1 下午11:17 v0.0.2-dev
*/
@JSONField(name = "group_id")
diff --git a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEventSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEventSubType.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEventSubType.java
rename to mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEventSubType.java
index 4245e66..5a61cf3 100644
--- a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEventSubType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEventSubType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.events.request.group;
+package cn.wzpmc.events.request.group;
/**
* 请求加群事件请求子类型
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午10:12
@@ -9,11 +10,13 @@ package cn.wzpmc.api.events.request.group;
public enum GroupJoinRequestEventSubType {
/**
* 加群请求
+ *
* @since 2024/8/1 下午10:12 v0.0.2-dev
*/
ADD,
/**
* 邀请Bot加群
+ *
* @since 2024/8/1 下午10:12 v0.0.2-dev
*/
INVITE
diff --git a/src/main/java/cn/wzpmc/api/message/MessageComponent.java b/mybot-api/src/main/java/cn/wzpmc/message/MessageComponent.java
similarity index 89%
rename from src/main/java/cn/wzpmc/api/message/MessageComponent.java
rename to mybot-api/src/main/java/cn/wzpmc/message/MessageComponent.java
index a086fb7..3dceaf3 100644
--- a/src/main/java/cn/wzpmc/api/message/MessageComponent.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/MessageComponent.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.message;
+package cn.wzpmc.message;
/**
* 消息对象接口
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:33
@@ -9,9 +10,10 @@ package cn.wzpmc.api.message;
public interface MessageComponent {
/**
* 将其转换为发送的文本
+ *
+ * @return 消息文本
* @author wzp
* @since 2024/7/31 上午2:41 v0.0.1-dev
- * @return 消息文本
*/
String toMessageString();
}
diff --git a/src/main/java/cn/wzpmc/api/message/StringMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/StringMessage.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/message/StringMessage.java
rename to mybot-api/src/main/java/cn/wzpmc/message/StringMessage.java
index 2ec5d5c..6813fe4 100644
--- a/src/main/java/cn/wzpmc/api/message/StringMessage.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/StringMessage.java
@@ -1,7 +1,7 @@
-package cn.wzpmc.api.message;
+package cn.wzpmc.message;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.PartType;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.PartType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
/**
* 纯文本消息
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:34
@@ -20,22 +21,24 @@ import lombok.NoArgsConstructor;
public class StringMessage implements MessageComponent, JsonMessagePart {
@JSONField(name = "text")
private String message;
- @Override
- public String toMessageString() {
- return this.message;
- }
/**
* 构建纯文本消息
- * @author wzp
- * @since 2024/7/31 上午2:41 v0.0.1-dev
+ *
* @param message 消息文本
* @return 文本消息对象
+ * @author wzp
+ * @since 2024/7/31 上午2:41 v0.0.1-dev
*/
- public static StringMessage text(String message){
+ public static StringMessage text(String message) {
return new StringMessage(message);
}
+ @Override
+ public String toMessageString() {
+ return this.message;
+ }
+
@Override
public PartType getPartType() {
return PartType.TEXT;
diff --git a/src/main/java/cn/wzpmc/api/message/json/JsonMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessage.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/message/json/JsonMessage.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessage.java
index 201076a..56a3c18 100644
--- a/src/main/java/cn/wzpmc/api/message/json/JsonMessage.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessage.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.message.json;
+package cn.wzpmc.message.json;
-import cn.wzpmc.api.message.MessageComponent;
+import cn.wzpmc.message.MessageComponent;
import com.alibaba.fastjson2.JSON;
import lombok.Data;
@@ -10,6 +10,7 @@ import java.util.stream.Collectors;
/**
* JSON消息
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:34
@@ -20,9 +21,10 @@ public class JsonMessage implements MessageComponent {
/**
* 将消息转为JSON文本
+ *
+ * @return json文本
* @author wzp
* @since 2024/8/23 21:36 v0.0.5-dev
- * @return json文本
*/
@Override
public String toMessageString() {
@@ -31,9 +33,10 @@ public class JsonMessage implements MessageComponent {
/**
* 将JSON消息转化为纯文本显示方式
+ *
+ * @return 文本
* @author wzp
* @since 2024/8/23 21:35 v0.0.5-dev
- * @return 文本
*/
public String toTextDisplay() {
return this.messageParts.stream().map(JsonMessagePart::getTextDisplay).collect(Collectors.joining(""));
@@ -41,11 +44,12 @@ public class JsonMessage implements MessageComponent {
/**
* 将JSON消息转换为CQ文本消息
+ *
+ * @return 文本消息
* @author wzp
* @since 2024/8/2 下午9:36 v0.0.3-dev
- * @return 文本消息
*/
- public String toCqString(){
+ public String toCqString() {
StringBuilder stringBuilder = new StringBuilder();
this.messageParts.stream().map(JsonMessagePart::getCQCode).forEach(stringBuilder::append);
return stringBuilder.toString();
diff --git a/src/main/java/cn/wzpmc/api/message/json/JsonMessagePart.java b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessagePart.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/message/json/JsonMessagePart.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessagePart.java
index ff54325..6051a8c 100644
--- a/src/main/java/cn/wzpmc/api/message/json/JsonMessagePart.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessagePart.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json;
+package cn.wzpmc.message.json;
-import cn.wzpmc.api.message.json.parts.PartType;
+import cn.wzpmc.message.json.parts.PartType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.annotation.JSONType;
/**
* JSON消息段
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:36
@@ -15,31 +16,35 @@ import com.alibaba.fastjson2.annotation.JSONType;
public interface JsonMessagePart {
/**
* 获取消息的类型
+ *
+ * @return 消息类型
* @author wzp
* @since 2024/7/31 上午2:40 v0.0.1-dev
- * @return 消息类型
*/
PartType getPartType();
+
@JSONField(name = "type")
- default String getStringPartType(){
+ default String getStringPartType() {
return this.getPartType().toString().toLowerCase();
}
/**
* 获取消息附带的数据
+ *
+ * @return 数据
* @author wzp
* @since 2024/7/31 上午2:40 v0.0.1-dev
- * @return 数据
*/
JSONObject getData();
/**
* 获取当纯文本界面的代替文本
+ *
+ * @return 文本
* @author wzp
* @since 2024/7/31 上午2:45 v0.0.1-dev
- * @return 文本
*/
- default String getTextDisplay(){
+ default String getTextDisplay() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(this.getPartType())
.append('(')
@@ -54,11 +59,12 @@ public interface JsonMessagePart {
/**
* 获取消息段的CQ码
+ *
+ * @return CQ码
* @author wzp
* @since 2024/8/2 下午9:32 v0.0.3-dev
- * @return CQ码
*/
- default String getCQCode(){
+ default String getCQCode() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("[CQ:").append(this.getPartType().toString().toLowerCase()).append(',');
JSONObject data = getData();
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Anonymous.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Anonymous.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Anonymous.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Anonymous.java
index 3f5cf40..a716665 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Anonymous.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Anonymous.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 匿名发消息
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:19
@@ -16,9 +17,11 @@ import lombok.NoArgsConstructor;
public class Anonymous implements JsonMessagePart {
/**
* 可选,表示无法匿名时是否继续发送
+ *
* @since 2024/8/3 下午5:55 v0.0.3-dev
*/
private boolean ignore = false;
+
@Override
public PartType getPartType() {
return PartType.ANONYMOUS;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/At.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/At.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/message/json/parts/At.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/At.java
index e302530..4d96195 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/At.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/At.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
/**
* "@"某人
+ *
* @author MoYiJiangNan
* @version 0.0.3-dev
* @since 2024/8/2 下午11:22
@@ -18,6 +19,7 @@ import lombok.NoArgsConstructor;
public class At implements JsonMessagePart {
/**
* "@"的 QQ 号,all 表示全体成员
+ *
* @since 2024/8/2 下午11:50 v0.0.3-dev
*/
private Long qq;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/CustomJSONMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/CustomJSONMessage.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/message/json/parts/CustomJSONMessage.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/CustomJSONMessage.java
index 164406e..dd24ef8 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/CustomJSONMessage.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/CustomJSONMessage.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* JSON 消息
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:43
@@ -16,9 +17,11 @@ import lombok.NoArgsConstructor;
public class CustomJSONMessage implements JsonMessagePart {
/**
* JSON 内容
+ *
* @since 2024/8/3 下午6:11 v0.0.3-dev
*/
private JSONObject data;
+
@Override
public PartType getPartType() {
return PartType.JSON;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Dice.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Dice.java
similarity index 69%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Dice.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Dice.java
index c4f6eaf..d3775be 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Dice.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Dice.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 掷骰子魔法表情
+ *
* @author MoYiJiangNan
* @version 0.0.3-dev
* @since 2024/8/2 下午11:26
@@ -14,10 +15,11 @@ import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class Dice implements JsonMessagePart {
- public PartType getPartType(){
+ public PartType getPartType() {
return PartType.DICE;
}
- public JSONObject getData(){
+
+ public JSONObject getData() {
return JSONObject.of();
}
}
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Face.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Face.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Face.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Face.java
index 1d85264..a3ae7a7 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Face.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Face.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* QQ表情
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:00
@@ -16,9 +17,11 @@ import lombok.NoArgsConstructor;
public class Face implements JsonMessagePart {
/**
* qq表情ID
+ *
* @since 2024/8/2 下午11:46 v0.0.3-dev
*/
private Short id;
+
@Override
public PartType getPartType() {
return PartType.FACE;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Forward.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Forward.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Forward.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Forward.java
index e9327fd..dc1c7b6 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Forward.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Forward.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 合并转发
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:38
@@ -16,9 +17,11 @@ import lombok.NoArgsConstructor;
public class Forward implements JsonMessagePart {
/**
* 合并转发 ID,需通过 get_forward_msg API 获取具体内容
+ *
* @since 2024/8/3 下午6:10 v0.0.3-dev
*/
private Long id;
+
@Override
public PartType getPartType() {
return PartType.FORWARD;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Image.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Image.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Image.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Image.java
index 295d85a..3907eeb 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Image.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Image.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -9,6 +9,7 @@ import java.net.URL;
/**
* 图片
+ *
* @author MoYiJiangNan
* @version 0.0.3-dev
* @since 2024/8/2 下午11:06
@@ -18,31 +19,37 @@ import java.net.URL;
public class Image implements JsonMessagePart {
/**
* 图片文件名
+ *
* @since 2024/8/2 下午11:47 v0.0.3-dev
*/
private String file;
/**
* 图片类型,flash 表示闪照,无此参数表示普通图片
+ *
* @since 2024/8/2 下午11:47 v0.0.3-dev
*/
private String type = null;
/**
* 图片url
+ *
* @since 2024/8/2 下午11:47 v0.0.3-dev
*/
private URL url;
/**
* 只在通过网络 URL 发送时有效,表示是否使用已缓存的文件,默认 true
+ *
* @since 2024/8/2 下午11:47 v0.0.3-dev
*/
private Boolean cache = true;
/**
* 只在通过网络 URL 发送时有效,表示是否通过代理下载文件(需通过环境变量或配置文件配置代理),默认 true
+ *
* @since 2024/8/2 下午11:48 v0.0.3-dev
*/
private Boolean proxy = true;
/**
* 只在通过网络 URL 发送时有效,单位秒,表示下载网络文件的超时时间 ,默认不超时
+ *
* @since 2024/8/2 下午11:48 v0.0.3-dev
*/
private Float timeout = null;
@@ -52,7 +59,7 @@ public class Image implements JsonMessagePart {
return PartType.IMAGE;
}
- public JSONObject getData(){
+ public JSONObject getData() {
return new JSONObject()
.fluentPut("file", this.file)
.fluentPut("type", this.type)
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Location.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Location.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Location.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Location.java
index 549008d..2d9fc8b 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Location.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Location.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 位置
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:22
@@ -16,24 +17,29 @@ import lombok.NoArgsConstructor;
public class Location implements JsonMessagePart {
/**
* 纬度
+ *
* @since 2024/8/3 下午6:06 v0.0.3-dev
*/
private Double lat;
/**
* 经度
+ *
* @since 2024/8/3 下午6:07 v0.0.3-dev
*/
private Double lon;
/**
* 发送时可选,标题
+ *
* @since 2024/8/3 下午6:07 v0.0.3-dev
*/
private String title = "";
/**
* 发送时可选,内容描述
+ *
* @since 2024/8/3 下午6:07 v0.0.3-dev
*/
private String content = "";
+
@Override
public PartType getPartType() {
return PartType.LOCATION;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/MarkdownMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/MarkdownMessage.java
similarity index 77%
rename from src/main/java/cn/wzpmc/api/message/json/parts/MarkdownMessage.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/MarkdownMessage.java
index 17f1d86..3915ec5 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/MarkdownMessage.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/MarkdownMessage.java
@@ -1,24 +1,27 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
-import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
/**
* Markdown格式消息
+ *
* @author wzp
* @version 1.0.0
* @since 2024/8/25 15:19
*/
@Data
-@AllArgsConstructor
+@NoArgsConstructor
public class MarkdownMessage implements JsonMessagePart {
/**
* Markdown格式数据
+ *
* @since 2024/8/25 15:20 v1.0.0
*/
private String data;
+
@Override
public PartType getPartType() {
return PartType.MARKDOWN;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/PartType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/PartType.java
similarity index 80%
rename from src/main/java/cn/wzpmc/api/message/json/parts/PartType.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/PartType.java
index 915caf2..3499422 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/PartType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/PartType.java
@@ -1,126 +1,149 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.contact.Contact;
-import cn.wzpmc.api.message.json.parts.music.Music;
-import cn.wzpmc.api.message.json.parts.node.Node;
-import cn.wzpmc.api.message.json.parts.poke.Poke;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.contact.Contact;
+import cn.wzpmc.message.json.parts.music.Music;
+import cn.wzpmc.message.json.parts.node.Node;
+import cn.wzpmc.message.json.parts.poke.Poke;
/**
* 消息段类型
+ *
* @author wzp
- * @since 2024/8/3 下午6:18
* @version 0.0.3-dev
+ * @since 2024/8/3 下午6:18
*/
public enum PartType {
/**
* 文本消息
+ *
* @since 2024/8/23 21:37 v0.0.5-dev
*/
TEXT(StringMessage.class),
/**
* 表情消息
+ *
* @since 2024/8/23 21:37 v0.0.5-dev
*/
FACE(Face.class),
/**
* 图片消息
+ *
* @since 2024/8/23 21:37 v0.0.5-dev
*/
IMAGE(Image.class),
/**
* 语音
+ *
* @since 2024/8/23 21:37 v0.0.5-dev
*/
RECORD(Record.class),
/**
* 短视频
+ *
* @since 2024/8/23 21:37 v0.0.5-dev
*/
VIDEO(Video.class),
/**
* "@"某人
+ *
* @since 2024/8/23 21:37 v0.0.5-dev
*/
AT(At.class),
/**
* 拳魔法表情
+ *
* @since 2024/8/23 21:37 v0.0.5-dev
*/
- RPS(cn.wzpmc.api.message.json.parts.RPS.class),
+ RPS(cn.wzpmc.message.json.parts.RPS.class),
/**
* 掷骰子魔法表情
+ *
* @since 2024/8/23 21:38 v0.0.5-dev
*/
DICE(Dice.class),
/**
* 窗口抖动(戳一戳)
+ *
* @since 2024/8/23 21:38 v0.0.5-dev
*/
SHAKE(Shake.class),
/**
* 戳一戳
+ *
* @since 2024/8/23 21:38 v0.0.5-dev
*/
POKE(Poke.class),
/**
* 匿名发消息
+ *
* @since 2024/8/23 21:39 v0.0.5-dev
*/
ANONYMOUS(Anonymous.class),
/**
* 链接分享
+ *
* @since 2024/8/23 21:39 v0.0.5-dev
*/
SHARE(Share.class),
/**
* 推荐好友/群
+ *
* @since 2024/8/23 21:39 v0.0.5-dev
*/
CONTACT(Contact.class),
/**
* 位置
+ *
* @since 2024/8/23 21:40 v0.0.5-dev
*/
LOCATION(Location.class),
/**
* 音乐分享
+ *
* @since 2024/8/23 21:40 v0.0.5-dev
*/
MUSIC(Music.class),
/**
* 回复
+ *
* @since 2024/8/23 21:40 v0.0.5-dev
*/
REPLY(Reply.class),
/**
* 合并转发
+ *
* @since 2024/8/23 21:40 v0.0.5-dev
*/
FORWARD(Forward.class),
/**
* 合并转发节点
+ *
* @since 2024/8/23 21:40 v0.0.5-dev
*/
NODE(Node.class),
/**
* XML消息
+ *
* @since 2024/8/23 21:40 v0.0.5-dev
*/
XML(XMLMessage.class),
/**
* JSON消息
+ *
* @since 2024/8/23 21:40 v0.0.5-dev
*/
JSON(CustomJSONMessage.class),
/**
* Markdown消息
+ *
* @since 2024/8/25 15:20 v1.0.0
*/
MARKDOWN(MarkdownMessage.class);
public final Class extends JsonMessagePart> clazz;
- PartType(Class extends JsonMessagePart> clazz){
+
+ PartType(Class extends JsonMessagePart> clazz) {
this.clazz = clazz;
}
}
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/RPS.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/RPS.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/message/json/parts/RPS.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/RPS.java
index 2377c80..af907a0 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/RPS.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/RPS.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 拳魔法表情
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:17
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Record.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Record.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Record.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Record.java
index c59ed75..c2b6fb7 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Record.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Record.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -9,6 +9,7 @@ import java.net.URL;
/**
* 语音
+ *
* @author MoYiJiangNan
* @version 0.0.3-dev
* @since 2024/8/2 下午11:16
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Reply.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Reply.java
similarity index 85%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Reply.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Reply.java
index b8d65bc..6053d43 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Reply.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Reply.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 回复
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:33
@@ -16,9 +17,11 @@ import lombok.NoArgsConstructor;
public class Reply implements JsonMessagePart {
/**
* 回复时引用的消息 ID
+ *
* @since 2024/8/3 下午6:08 v0.0.3-dev
*/
private Long id;
+
@Override
public PartType getPartType() {
return PartType.REPLY;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Shake.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Shake.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Shake.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Shake.java
index 9c354a1..138220c 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Shake.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Shake.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 窗口抖动(戳一戳)
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:18
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Share.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Share.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Share.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Share.java
index efacadd..6482b0e 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Share.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Share.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -9,6 +9,7 @@ import java.net.URL;
/**
* 链接分享
+ *
* @author MoYiJiangNan
* @version 0.0.3-dev
* @since 2024/8/2 下午11:30
@@ -18,21 +19,25 @@ import java.net.URL;
public class Share implements JsonMessagePart {
/**
* URL
+ *
* @since 2024/8/3 下午5:56 v0.0.3-dev
*/
private URL url;
/**
* 标题
+ *
* @since 2024/8/3 下午5:56 v0.0.3-dev
*/
private String title;
/**
* 发送时可选,内容描述
+ *
* @since 2024/8/3 下午5:56 v0.0.3-dev
*/
private String content;
/**
* 发送时可选,图片 URL
+ *
* @since 2024/8/3 下午5:56 v0.0.3-dev
*/
private URL image;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Video.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Video.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/message/json/parts/Video.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Video.java
index 8294452..66f9c5d 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/Video.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Video.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -9,6 +9,7 @@ import java.net.URL;
/**
* 短视频
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:16
@@ -18,29 +19,35 @@ import java.net.URL;
public class Video implements JsonMessagePart {
/**
* 视频文件名
+ *
* @since 2024/8/2 下午11:49 v0.0.3-dev
*/
private String file;
/**
* 视频 URL
+ *
* @since 2024/8/2 下午11:49 v0.0.3-dev
*/
private URL url;
/**
* 只在通过网络 URL 发送时有效,表示是否使用已缓存的文件,默认 true
+ *
* @since 2024/8/2 下午11:49 v0.0.3-dev
*/
private Boolean cache = true;
/**
* 只在通过网络 URL 发送时有效,表示是否通过代理下载文件(需通过环境变量或配置文件配置代理),默认 true
+ *
* @since 2024/8/2 下午11:49 v0.0.3-dev
*/
private Boolean proxy = true;
/**
* 只在通过网络 URL 发送时有效,单位秒,表示下载网络文件的超时时间 ,默认不超时
+ *
* @since 2024/8/2 下午11:49 v0.0.3-dev
*/
private Float timeout = null;
+
@Override
public PartType getPartType() {
return PartType.VIDEO;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/XMLMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/XMLMessage.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/message/json/parts/XMLMessage.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/XMLMessage.java
index 69e81eb..d13da52 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/XMLMessage.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/XMLMessage.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.message.json.parts;
+package cn.wzpmc.message.json.parts;
-import cn.wzpmc.api.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.JsonMessagePart;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* XML消息
+ *
* @author MoYiJiangNan
* @version 0.0.3-dev
* @since 2024/8/2 下午11:40
@@ -16,6 +17,7 @@ import lombok.NoArgsConstructor;
public class XMLMessage implements JsonMessagePart {
/**
* XML 内容
+ *
* @since 2024/8/3 下午6:11 v0.0.3-dev
*/
private String data;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/contact/Contact.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/Contact.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/message/json/parts/contact/Contact.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/Contact.java
index aeb5f6f..2dbd070 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/contact/Contact.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/Contact.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.message.json.parts.contact;
+package cn.wzpmc.message.json.parts.contact;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.PartType;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.PartType;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 推荐好友/群
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:21
@@ -17,14 +18,17 @@ import lombok.NoArgsConstructor;
public class Contact implements JsonMessagePart {
/**
* 推荐类型
+ *
* @since 2024/8/3 下午5:57 v0.0.3-dev
*/
private ContactType type;
/**
* 被推荐人的 QQ 号
+ *
* @since 2024/8/3 下午5:57 v0.0.3-dev
*/
private Long id;
+
@Override
public PartType getPartType() {
return PartType.CONTACT;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/contact/ContactType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/ContactType.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/message/json/parts/contact/ContactType.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/ContactType.java
index 96f53a6..c1d5ee6 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/contact/ContactType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/ContactType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.message.json.parts.contact;
+package cn.wzpmc.message.json.parts.contact;
/**
* 推荐类型
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:34
@@ -9,11 +10,13 @@ package cn.wzpmc.api.message.json.parts.contact;
public enum ContactType {
/**
* 推荐qq
+ *
* @since 2024/8/2 下午11:36 v0.0.3-dev
*/
QQ,
/**
* 推荐群
+ *
* @since 2024/8/2 下午11:36 v0.0.3-dev
*/
GROUP
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/Music.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/Music.java
similarity index 80%
rename from src/main/java/cn/wzpmc/api/message/json/parts/music/Music.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/Music.java
index fc7c344..602559c 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/music/Music.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/Music.java
@@ -1,13 +1,14 @@
-package cn.wzpmc.api.message.json.parts.music;
+package cn.wzpmc.message.json.parts.music;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.PartType;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.PartType;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 音乐分享
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:24
@@ -17,9 +18,11 @@ import lombok.NoArgsConstructor;
public abstract class Music implements JsonMessagePart {
/**
* 音乐类型
+ *
* @since 2024/8/3 下午6:07 v0.0.3-dev
*/
protected MusicType musicType;
+
@Override
public PartType getPartType() {
return PartType.MUSIC;
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicAppShare.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicAppShare.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/message/json/parts/music/MusicAppShare.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicAppShare.java
index 83bbbb7..07fd501 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicAppShare.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicAppShare.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.message.json.parts.music;
+package cn.wzpmc.message.json.parts.music;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
/**
* 音乐App分享
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:28
@@ -17,9 +18,11 @@ import lombok.NoArgsConstructor;
public class MusicAppShare extends Music {
/**
* 歌曲 ID
+ *
* @since 2024/8/3 下午6:08 v0.0.3-dev
*/
private Long id;
+
@Override
public JSONObject getData() {
return super.getData().fluentPut("id", this.id);
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicCustomShare.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicCustomShare.java
similarity index 93%
rename from src/main/java/cn/wzpmc/api/message/json/parts/music/MusicCustomShare.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicCustomShare.java
index da24c5c..7b5e9b7 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicCustomShare.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicCustomShare.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.message.json.parts.music;
+package cn.wzpmc.message.json.parts.music;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
/**
* 音乐自定义分享
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:30
@@ -17,29 +18,35 @@ import lombok.NoArgsConstructor;
public class MusicCustomShare extends Music {
/**
* 点击后跳转目标 URL
+ *
* @since 2024/8/3 下午6:08 v0.0.3-dev
*/
private String url;
/**
* 音乐 URL
+ *
* @since 2024/8/3 下午6:08 v0.0.3-dev
*/
private String audio;
/**
* 标题
+ *
* @since 2024/8/3 下午6:08 v0.0.3-dev
*/
private String title;
/**
* 发送时可选,内容描述
+ *
* @since 2024/8/3 下午6:08 v0.0.3-dev
*/
private String content = "";
/**
* 发送时可选,图片 URL
+ *
* @since 2024/8/3 下午6:08 v0.0.3-dev
*/
private String image = "";
+
@Override
public JSONObject getData() {
return super.getData()
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicType.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/message/json/parts/music/MusicType.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicType.java
index f4ef080..7556e03 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.message.json.parts.music;
+package cn.wzpmc.message.json.parts.music;
/**
* 音乐类型
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:25
@@ -9,27 +10,32 @@ package cn.wzpmc.api.message.json.parts.music;
public enum MusicType {
/**
* qq音乐
+ *
* @since 2024/8/2 下午11:25 v0.0.3-dev
*/
QQ("qq", MusicAppShare.class),
/**
* 网易云音乐
+ *
* @since 2024/8/2 下午11:26 v0.0.3-dev
*/
NETEASE("163", MusicAppShare.class),
/**
* 虾米音乐
+ *
* @since 2024/8/2 下午11:27 v0.0.3-dev
*/
XM("xm", MusicAppShare.class),
/**
* 自定义
+ *
* @since 2024/8/2 下午11:30 v0.0.3-dev
*/
CUSTOM("custom", MusicCustomShare.class);
public final String name;
public final Class extends Music> clazz;
- MusicType(String name, Class extends Music> clazz){
+
+ MusicType(String name, Class extends Music> clazz) {
this.name = name;
this.clazz = clazz;
}
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/node/CustomNode.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/CustomNode.java
similarity index 89%
rename from src/main/java/cn/wzpmc/api/message/json/parts/node/CustomNode.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/CustomNode.java
index b7f1478..2b753f3 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/node/CustomNode.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/CustomNode.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.message.json.parts.node;
+package cn.wzpmc.message.json.parts.node;
-import cn.wzpmc.api.message.MessageComponent;
+import cn.wzpmc.message.MessageComponent;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
/**
* 合并转发自定义节点
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:42
@@ -19,20 +20,24 @@ import lombok.NoArgsConstructor;
public class CustomNode extends Node {
/**
* 发送者 QQ 号
+ *
* @since 2024/8/3 下午6:10 v0.0.3-dev
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 发送者昵称
+ *
* @since 2024/8/3 下午6:11 v0.0.3-dev
*/
private String nickname;
/**
* 消息内容
+ *
* @since 2024/8/3 下午6:11 v0.0.3-dev
*/
private MessageComponent content;
+
@Override
public JSONObject getData() {
return JSONObject.of("user_id", userId, "nickname", nickname, "content", content);
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/node/Node.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/Node.java
similarity index 67%
rename from src/main/java/cn/wzpmc/api/message/json/parts/node/Node.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/Node.java
index 4ebe010..3240e71 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/node/Node.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/Node.java
@@ -1,11 +1,12 @@
-package cn.wzpmc.api.message.json.parts.node;
+package cn.wzpmc.message.json.parts.node;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.PartType;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.PartType;
import lombok.NoArgsConstructor;
/**
* 合并转发节点
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:39
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/node/SingleNode.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/SingleNode.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/message/json/parts/node/SingleNode.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/SingleNode.java
index 0fcd90b..9f4f307 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/node/SingleNode.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/SingleNode.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.message.json.parts.node;
+package cn.wzpmc.message.json.parts.node;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
/**
* 合并转发节点
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:41
@@ -14,12 +15,14 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
-public class SingleNode extends Node{
+public class SingleNode extends Node {
/**
* 转发的消息 ID
+ *
* @since 2024/8/3 下午6:10 v0.0.3-dev
*/
private Long id;
+
@Override
public JSONObject getData() {
return JSONObject.of("id", this.id);
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/poke/Poke.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/Poke.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/message/json/parts/poke/Poke.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/Poke.java
index 687893b..e51f7f3 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/poke/Poke.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/Poke.java
@@ -1,7 +1,7 @@
-package cn.wzpmc.api.message.json.parts.poke;
+package cn.wzpmc.message.json.parts.poke;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.PartType;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.PartType;
import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
/**
* 戳一戳
+ *
* @author MoYiJiangNan
* @version 0.0.3-dev
* @since 2024/8/2 下午11:28
diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/poke/PokeType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/PokeType.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/message/json/parts/poke/PokeType.java
rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/PokeType.java
index 1c291f0..90c3ce4 100644
--- a/src/main/java/cn/wzpmc/api/message/json/parts/poke/PokeType.java
+++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/PokeType.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.message.json.parts.poke;
+package cn.wzpmc.message.json.parts.poke;
/**
* 戳一戳类型
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午11:51
@@ -25,20 +26,24 @@ public enum PokeType {
QIAO_MEN("敲门", 126, 2002);
/**
* 戳一戳名称
+ *
* @since 2024/8/3 下午6:18 v0.0.3-dev
*/
public final String name;
/**
* 戳一戳类型
+ *
* @since 2024/8/3 下午6:18 v0.0.3-dev
*/
public final Integer type;
/**
* 戳一戳ID
+ *
* @since 2024/8/3 下午6:18 v0.0.3-dev
*/
public final Integer id;
- PokeType(String name, Integer type, Integer id){
+
+ PokeType(String name, Integer type, Integer id) {
this.name = name;
this.type = type;
this.id = id;
diff --git a/src/main/java/cn/wzpmc/api/plugins/BasePlugin.java b/mybot-api/src/main/java/cn/wzpmc/plugins/BasePlugin.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/plugins/BasePlugin.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/BasePlugin.java
index b167e02..3707693 100644
--- a/src/main/java/cn/wzpmc/api/plugins/BasePlugin.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/BasePlugin.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.plugins;
+package cn.wzpmc.plugins;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.user.IBot;
import org.apache.logging.log4j.Logger;
import java.io.File;
@@ -8,6 +8,7 @@ import java.io.InputStream;
/**
* 插件基类
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/7/31 下午6:02
@@ -15,15 +16,16 @@ import java.io.InputStream;
public interface BasePlugin {
/**
* 获取插件主类
+ *
+ * @param pluginClass 插件主类类名
+ * @param 插件主类类型
+ * @return 插件主类
* @author wzp
* @since 2024/7/31 下午7:07 v0.0.2-dev
- * @param pluginClass 插件主类类名
- * @return 插件主类
- * @param 插件主类类型
*/
- static T getPlugin(Class pluginClass){
+ static T getPlugin(Class pluginClass) {
ClassLoader loader = pluginClass.getClassLoader();
- if (loader instanceof IPluginClassLoader){
+ if (loader instanceof IPluginClassLoader) {
BasePlugin plugin = ((IPluginClassLoader) loader).getPlugin();
if (pluginClass.isInstance(plugin)) {
return pluginClass.cast(plugin);
@@ -31,11 +33,13 @@ public interface BasePlugin {
}
throw new RuntimeException(new IllegalAccessException("You shouldn't load plugin class without PluginClassLoader!!!"));
}
+
/**
* 获取Bot
+ *
+ * @return Bot对象
* @author wzp
* @since 2024/7/31 下午7:06 v0.0.2-dev
- * @return Bot对象
*/
default IBot getBot() {
IPluginClassLoader classLoader = this.getClassLoader();
@@ -44,14 +48,16 @@ public interface BasePlugin {
/**
* 获取插件所使用的类加载器
+ *
+ * @return 类加载器
* @author wzp
* @since 2024/7/31 下午7:11 v0.0.2-dev
- * @return 类加载器
*/
IPluginClassLoader getClassLoader();
/**
* 当插件被加载时调用
+ *
* @author wzp
* @since 2024/8/16 13:14 v0.0.5-dev
*/
@@ -59,6 +65,7 @@ public interface BasePlugin {
/**
* 当插件被卸载时调用
+ *
* @author wzp
* @since 2024/8/16 13:14 v0.0.5-dev
*/
@@ -66,39 +73,44 @@ public interface BasePlugin {
/**
* 获取日志记录器
+ *
+ * @return 日志记录器
* @author wzp
* @since 2024/8/16 13:14 v0.0.5-dev
- * @return 日志记录器
*/
Logger getLogger();
/**
* 从插件中读取资源
- * @author wzp
- * @since 2024/8/16 13:14 v0.0.5-dev
+ *
* @param name 资源路径
* @return 资源流
+ * @author wzp
+ * @since 2024/8/16 13:14 v0.0.5-dev
*/
InputStream getResourceAsStream(String name);
/**
* 获取插件数据文件夹
+ *
+ * @return 插件数据文件夹
* @author wzp
* @since 2024/8/16 13:16 v0.0.5-dev
- * @return 插件数据文件夹
*/
File getDataFolder();
/**
* 获取默认配置文件
+ *
+ * @return 获取默认配置文件
* @author wzp
* @since 2024/8/16 13:16 v0.0.5-dev
- * @return 获取默认配置文件
*/
File getDefaultConfigFile();
/**
* 将插件默认配置文件保存到文件夹中
+ *
* @author wzp
* @since 2024/8/16 13:16 v0.0.5-dev
*/
diff --git a/src/main/java/cn/wzpmc/api/plugins/ICommandManager.java b/mybot-api/src/main/java/cn/wzpmc/plugins/ICommandManager.java
similarity index 77%
rename from src/main/java/cn/wzpmc/api/plugins/ICommandManager.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/ICommandManager.java
index 989e451..06d92fd 100644
--- a/src/main/java/cn/wzpmc/api/plugins/ICommandManager.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/ICommandManager.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.plugins;
+package cn.wzpmc.plugins;
-import cn.wzpmc.api.commands.BrigadierCommand;
-import cn.wzpmc.api.commands.RawCommand;
+import cn.wzpmc.commands.BrigadierCommand;
+import cn.wzpmc.commands.RawCommand;
/**
* 指令管理器
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午3:40
@@ -12,17 +13,20 @@ import cn.wzpmc.api.commands.RawCommand;
public interface ICommandManager {
/**
* 注册原始指令
+ *
+ * @param rawCommand 原始指令
+ * @param name 指令名称
* @author wzp
* @since 2024/7/31 上午3:34 v0.0.1-dev
- * @param rawCommand 原始指令
- * @param name 指令名称
*/
void registerCommand(RawCommand rawCommand, String name);
+
/**
* 注册Brigadier指令
+ *
+ * @param brigadierCommand 指令对象
* @author wzp
* @since 2024/7/31 上午3:35 v0.0.1-dev
- * @param brigadierCommand 指令对象
*/
void registerCommand(BrigadierCommand brigadierCommand);
}
diff --git a/src/main/java/cn/wzpmc/api/plugins/IPluginClassLoader.java b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginClassLoader.java
similarity index 92%
rename from src/main/java/cn/wzpmc/api/plugins/IPluginClassLoader.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/IPluginClassLoader.java
index 75089ee..56f7566 100644
--- a/src/main/java/cn/wzpmc/api/plugins/IPluginClassLoader.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginClassLoader.java
@@ -1,12 +1,13 @@
-package cn.wzpmc.api.plugins;
+package cn.wzpmc.plugins;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.user.IBot;
import java.net.URL;
import java.net.URLClassLoader;
/**
* 插件类加载器
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/7/31 下午6:59
@@ -14,9 +15,10 @@ import java.net.URLClassLoader;
public abstract class IPluginClassLoader extends URLClassLoader {
/**
* 创建插件类加载器
+ *
+ * @param urls jar文件路径
* @author wzp
* @since 2024/8/23 21:41 v0.0.5-dev
- * @param urls jar文件路径
*/
public IPluginClassLoader(URL[] urls) {
super(urls);
@@ -24,33 +26,37 @@ public abstract class IPluginClassLoader extends URLClassLoader {
/**
* 获取当前插件
+ *
+ * @return 插件
* @author wzp
* @since 2024/7/31 下午7:15 v0.0.2-dev
- * @return 插件
*/
abstract public BasePlugin getPlugin();
/**
* 获取Bot
+ *
+ * @return Bot对象
* @author wzp
* @since 2024/7/31 下午7:15 v0.0.2-dev
- * @return Bot对象
*/
abstract public IBot getBot();
/**
* 获取插件名称
+ *
+ * @return 插件名称
* @author wzp
* @since 2024/8/8 23:16 v0.0.4-dev
- * @return 插件名称
*/
abstract public String getName();
/**
* 获取插件版本
+ *
+ * @return 版本
* @author wzp
* @since 2024/8/8 23:16 v0.0.4-dev
- * @return 版本
*/
abstract public String getVersion();
}
diff --git a/src/main/java/cn/wzpmc/api/plugins/IPluginManager.java b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginManager.java
similarity index 70%
rename from src/main/java/cn/wzpmc/api/plugins/IPluginManager.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/IPluginManager.java
index 967416b..23be3bf 100644
--- a/src/main/java/cn/wzpmc/api/plugins/IPluginManager.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginManager.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.plugins;
+package cn.wzpmc.plugins;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
/**
* 插件管理器
+ *
* @author wzp
* @version 0.0.4-dev
* @since 2024/8/6 下午3:19
@@ -12,18 +13,20 @@ import java.util.List;
public interface IPluginManager {
/**
* 初始化插件主类
+ *
* @param 插件主类类型
* @param baseClass 插件主类
- * @param name 插件名称
- * @param version 插件版本
+ * @param name 插件名称
+ * @param version 插件版本
* @return 这个插件的实例
+ * @throws NoSuchMethodException 初始化插件错误
+ * @throws InvocationTargetException 初始化插件错误
+ * @throws InstantiationException 初始化插件错误
+ * @throws IllegalAccessException 初始化插件错误
* @author wzp
* @since 2024/8/5 上午12:58 v0.0.4-dev
- * @throws NoSuchMethodException 初始化插件错误
- * @throws InvocationTargetException 初始化插件错误
- * @throws InstantiationException 初始化插件错误
- * @throws IllegalAccessException 初始化插件错误
*/
T initPlugin(Class baseClass, String name, String version) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException;
+
List getPlugins();
}
diff --git a/src/main/java/cn/wzpmc/api/plugins/JavaPlugin.java b/mybot-api/src/main/java/cn/wzpmc/plugins/JavaPlugin.java
similarity index 84%
rename from src/main/java/cn/wzpmc/api/plugins/JavaPlugin.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/JavaPlugin.java
index ef12462..922d1d7 100644
--- a/src/main/java/cn/wzpmc/api/plugins/JavaPlugin.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/JavaPlugin.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.plugins;
+package cn.wzpmc.plugins;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.user.IBot;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.log4j.Log4j2;
@@ -14,6 +14,7 @@ import java.io.InputStream;
/**
* Java插件基类
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/7/31 下午7:01
@@ -24,14 +25,16 @@ import java.io.InputStream;
public abstract class JavaPlugin implements BasePlugin {
/**
* 日志处理器
+ *
* @since 2024/8/23 21:42 v0.0.5-dev
*/
private Logger logger;
+
@Override
public IPluginClassLoader getClassLoader() {
Class extends JavaPlugin> aClass = this.getClass();
ClassLoader loader = aClass.getClassLoader();
- if (loader instanceof IPluginClassLoader){
+ if (loader instanceof IPluginClassLoader) {
return (IPluginClassLoader) loader;
}
throw new RuntimeException(new IllegalAccessException("You shouldn't load plugin class without PluginClassLoader!!!"));
@@ -42,7 +45,7 @@ public abstract class JavaPlugin implements BasePlugin {
IPluginClassLoader classLoader = this.getClassLoader();
String name = classLoader.getName();
String version = classLoader.getVersion();
- if (this.logger == null){
+ if (this.logger == null) {
this.logger = LogManager.getLogger(name + "-" + version);
}
return this.logger;
@@ -57,7 +60,7 @@ public abstract class JavaPlugin implements BasePlugin {
IBot bot = this.getClassLoader().getBot();
File pluginsFolder = bot.getPluginsFolder();
File file = new File(pluginsFolder, this.getClassLoader().getName());
- if (!file.isDirectory()){
+ if (!file.isDirectory()) {
if (!file.mkdir()) {
log.error("Failed to create plugin data folder");
return null;
@@ -69,9 +72,9 @@ public abstract class JavaPlugin implements BasePlugin {
@Override
public File getDefaultConfigFile() {
File file = new File(this.getDataFolder(), "config.yml");
- if (!file.isFile()){
+ if (!file.isFile()) {
try {
- if (!file.createNewFile()){
+ if (!file.createNewFile()) {
log.error("cannot create default config file");
return null;
}
@@ -85,9 +88,9 @@ public abstract class JavaPlugin implements BasePlugin {
@Override
public void saveDefaultConfig() {
- try(InputStream resourceAsStream = this.getResourceAsStream("config.yml")){
+ try (InputStream resourceAsStream = this.getResourceAsStream("config.yml")) {
File defaultConfigFile = this.getDefaultConfigFile();
- try(FileOutputStream fileOutputStream = new FileOutputStream(defaultConfigFile)){
+ try (FileOutputStream fileOutputStream = new FileOutputStream(defaultConfigFile)) {
resourceAsStream.transferTo(fileOutputStream);
}
} catch (IOException e) {
diff --git a/src/main/java/cn/wzpmc/api/plugins/configuration/IAuthorizationConfiguration.java b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IAuthorizationConfiguration.java
similarity index 89%
rename from src/main/java/cn/wzpmc/api/plugins/configuration/IAuthorizationConfiguration.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IAuthorizationConfiguration.java
index 5695cf8..153f460 100644
--- a/src/main/java/cn/wzpmc/api/plugins/configuration/IAuthorizationConfiguration.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IAuthorizationConfiguration.java
@@ -1,23 +1,22 @@
-package cn.wzpmc.api.plugins.configuration;
+package cn.wzpmc.plugins.configuration;
/**
- *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午3:42
*/
public interface IAuthorizationConfiguration {
/**
+ * @return 是否启用
* @author wzp
* @since 2024/7/31 上午3:45 v0.0.1-dev
- * @return 是否启用
*/
boolean isEnable();
/**
+ * @return token
* @author wzp
* @since 2024/7/31 上午3:45 v0.0.1-dev
- * @return token
*/
String getToken();
}
diff --git a/src/main/java/cn/wzpmc/api/plugins/configuration/IConfiguration.java b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IConfiguration.java
similarity index 93%
rename from src/main/java/cn/wzpmc/api/plugins/configuration/IConfiguration.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IConfiguration.java
index 58d2217..dfae53f 100644
--- a/src/main/java/cn/wzpmc/api/plugins/configuration/IConfiguration.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IConfiguration.java
@@ -1,30 +1,31 @@
-package cn.wzpmc.api.plugins.configuration;
+package cn.wzpmc.plugins.configuration;
/**
* 配置
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午3:42
*/
public interface IConfiguration {
/**
+ * @return WebSocket连接URL
* @author wzp
* @since 2024/7/31 上午3:48 v0.0.1-dev
- * @return WebSocket连接URL
*/
String getWebsocket();
/**
+ * @return 通信验证
* @author wzp
* @since 2024/7/31 上午3:48 v0.0.1-dev
- * @return 通信验证
*/
IAuthorizationConfiguration getAuthorization();
/**
+ * @return 失败消息提示
* @author wzp
* @since 2024/7/31 上午3:49 v0.0.1-dev
- * @return 失败消息提示
*/
IFallbackConfiguration getFallback();
}
diff --git a/src/main/java/cn/wzpmc/api/plugins/configuration/IFallbackConfiguration.java b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IFallbackConfiguration.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/plugins/configuration/IFallbackConfiguration.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IFallbackConfiguration.java
index c1d279d..01103e8 100644
--- a/src/main/java/cn/wzpmc/api/plugins/configuration/IFallbackConfiguration.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IFallbackConfiguration.java
@@ -1,23 +1,24 @@
-package cn.wzpmc.api.plugins.configuration;
+package cn.wzpmc.plugins.configuration;
/**
* 通信验证配置
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午3:43
*/
public interface IFallbackConfiguration {
/**
+ * @return 当指令执行失败时
* @author wzp
* @since 2024/7/31 上午3:47 v0.0.1-dev
- * @return 当指令执行失败时
*/
String getCommand();
/**
+ * @return 当出现未捕获的异常时
* @author wzp
* @since 2024/7/31 上午3:47 v0.0.1-dev
- * @return 当出现未捕获的异常时
*/
String getErrorUncaught();
}
diff --git a/src/main/java/cn/wzpmc/api/plugins/event/EventHandler.java b/mybot-api/src/main/java/cn/wzpmc/plugins/event/EventHandler.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/plugins/event/EventHandler.java
rename to mybot-api/src/main/java/cn/wzpmc/plugins/event/EventHandler.java
index f4ecd40..1984f83 100644
--- a/src/main/java/cn/wzpmc/api/plugins/event/EventHandler.java
+++ b/mybot-api/src/main/java/cn/wzpmc/plugins/event/EventHandler.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.plugins.event;
+package cn.wzpmc.plugins.event;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -7,6 +7,7 @@ import java.lang.annotation.Target;
/**
* 使用此注解以指定一个方法为事件执行器
+ *
* @author wzp
* @version 0.0.4-dev
* @since 2024/8/15 23:47
diff --git a/src/main/java/cn/wzpmc/api/user/CommandSender.java b/mybot-api/src/main/java/cn/wzpmc/user/CommandSender.java
similarity index 88%
rename from src/main/java/cn/wzpmc/api/user/CommandSender.java
rename to mybot-api/src/main/java/cn/wzpmc/user/CommandSender.java
index 0805744..2be5956 100644
--- a/src/main/java/cn/wzpmc/api/user/CommandSender.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/CommandSender.java
@@ -1,10 +1,11 @@
-package cn.wzpmc.api.user;
+package cn.wzpmc.user;
-import cn.wzpmc.api.message.MessageComponent;
-import cn.wzpmc.api.user.permission.Permissions;
+import cn.wzpmc.message.MessageComponent;
+import cn.wzpmc.user.permission.Permissions;
/**
* 命令发送者
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:32
@@ -12,66 +13,75 @@ import cn.wzpmc.api.user.permission.Permissions;
public interface CommandSender {
/**
* 发送消息
+ *
+ * @param messageComponent 消息组件
* @author wzp
* @since 2024/7/31 上午2:42 v0.0.1-dev
- * @param messageComponent 消息组件
*/
void sendMessage(MessageComponent messageComponent);
/**
* 获取用户ID
+ *
+ * @return 用户ID
* @author wzp
* @since 2024/8/23 21:43 v0.0.5-dev
- * @return 用户ID
*/
Long getId();
- /**
- * 获取用户名
- * @author wzp
- * @since 2024/8/23 21:43 v0.0.5-dev
- * @return 用户名
- */
- String getName();
-
- /**
- * 获取用户权限
- * @author wzp
- * @since 2024/8/23 21:43 v0.0.5-dev
- * @return 权限
- */
- Permissions getPermissions();
-
/**
* 设置用户ID
+ *
+ * @param id 用户ID
* @author wzp
* @since 2024/8/23 21:43 v0.0.5-dev
- * @param id 用户ID
*/
void setId(Long id);
/**
- * 设置用户名
+ * 获取用户名
+ *
+ * @return 用户名
* @author wzp
* @since 2024/8/23 21:43 v0.0.5-dev
+ */
+ String getName();
+
+ /**
+ * 设置用户名
+ *
* @param name 用户名
+ * @author wzp
+ * @since 2024/8/23 21:43 v0.0.5-dev
*/
void setName(String name);
+ /**
+ * 获取用户权限
+ *
+ * @return 权限
+ * @author wzp
+ * @since 2024/8/23 21:43 v0.0.5-dev
+ */
+ Permissions getPermissions();
+
/**
* 设置用户权限
+ *
+ * @param permissions 用户权限
* @author wzp
* @since 2024/8/23 21:44 v0.0.5-dev
- * @param permissions 用户权限
*/
void setPermissions(Permissions permissions);
+
/**
* 指令发送者是否为管理员
+ *
+ * @return 是否为管理员
* @author wzp
* @since 2024/8/1 下午4:50 v0.0.2-dev
- * @return 是否为管理员
*/
- default boolean isAdmin(){
+ default boolean isAdmin() {
return this.getPermissions().isAdmin();
}
}
diff --git a/src/main/java/cn/wzpmc/api/user/Friend.java b/mybot-api/src/main/java/cn/wzpmc/user/Friend.java
similarity index 74%
rename from src/main/java/cn/wzpmc/api/user/Friend.java
rename to mybot-api/src/main/java/cn/wzpmc/user/Friend.java
index 4fe5cbe..1f3bec2 100644
--- a/src/main/java/cn/wzpmc/api/user/Friend.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/Friend.java
@@ -1,9 +1,9 @@
-package cn.wzpmc.api.user;
+package cn.wzpmc.user;
-import cn.wzpmc.api.api.IMainApi;
-import cn.wzpmc.api.api.actions.message.send.SendPrivateMessageAction;
-import cn.wzpmc.api.message.MessageComponent;
-import cn.wzpmc.api.user.permission.Permissions;
+import cn.wzpmc.api.IMainApi;
+import cn.wzpmc.api.actions.message.send.SendPrivateMessageAction;
+import cn.wzpmc.message.MessageComponent;
+import cn.wzpmc.user.permission.Permissions;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -11,6 +11,7 @@ import lombok.SneakyThrows;
/**
* 好友
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午8:41
@@ -18,16 +19,17 @@ import lombok.SneakyThrows;
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
-public class Friend extends IUser implements CommandSender{
+public class Friend extends IUser implements CommandSender {
public Friend(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age) {
super(id, name, permissions, nickname, sex, age);
}
/**
* 发送消息
+ *
+ * @param messageComponent 消息组件
* @author wzp
* @since 2024/8/23 21:44 v0.0.5-dev
- * @param messageComponent 消息组件
*/
@SneakyThrows
@Override
diff --git a/src/main/java/cn/wzpmc/api/user/IBot.java b/mybot-api/src/main/java/cn/wzpmc/user/IBot.java
similarity index 83%
rename from src/main/java/cn/wzpmc/api/user/IBot.java
rename to mybot-api/src/main/java/cn/wzpmc/user/IBot.java
index 1d98eb5..98d2775 100644
--- a/src/main/java/cn/wzpmc/api/user/IBot.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/IBot.java
@@ -1,10 +1,10 @@
-package cn.wzpmc.api.user;
+package cn.wzpmc.user;
-import cn.wzpmc.api.api.IMainApi;
-import cn.wzpmc.api.entities.Ops;
-import cn.wzpmc.api.events.Event;
-import cn.wzpmc.api.plugins.ICommandManager;
-import cn.wzpmc.api.plugins.configuration.IConfiguration;
+import cn.wzpmc.api.IMainApi;
+import cn.wzpmc.entities.Ops;
+import cn.wzpmc.events.Event;
+import cn.wzpmc.plugins.ICommandManager;
+import cn.wzpmc.plugins.configuration.IConfiguration;
import lombok.Getter;
import java.io.File;
@@ -12,6 +12,7 @@ import java.lang.reflect.InvocationTargetException;
/**
* 机器人接口
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:31
@@ -20,29 +21,45 @@ import java.lang.reflect.InvocationTargetException;
public abstract class IBot extends MessageSender implements CommandSender {
private static IBot instance = null;
private String nickname;
- protected IBot(){
- if (IBot.instance == null){
+
+ protected IBot() {
+ if (IBot.instance == null) {
IBot.instance = this;
}
}
+
+ /**
+ * 获取bot实例
+ *
+ * @return 一个bot实例对象
+ * @author wzp
+ * @since 2024/8/17 23:19 v0.0.5-dev
+ */
+ public static IBot getInstance() {
+ return IBot.instance;
+ }
+
/**
* 获取配置文件
+ *
+ * @return 配置文件
* @author wzp
* @since 2024/7/31 上午2:55 v0.0.1-dev
- * @return 配置文件
*/
public abstract IConfiguration getConfiguration();
/**
* 获取指令管理器
+ *
+ * @return 指令管理器
* @author wzp
* @since 2024/7/31 上午3:42 v0.0.1-dev
- * @return 指令管理器
*/
public abstract ICommandManager getCommandManager();
/**
* 停止Bot运行
+ *
* @author wzp
* @since 2024/8/1 下午4:57 v0.0.2-dev
*/
@@ -50,57 +67,53 @@ public abstract class IBot extends MessageSender implements CommandSender {
/**
* 注册事件执行器
+ *
+ * @param handler 事件执行器
* @author wzp
* @since 2024/8/15 23:46 v0.0.4-dev
- * @param handler 事件执行器
*/
public abstract void registerEventHandler(Object handler);
/**
* 触发一个事件
- * @author wzp
- * @since 2024/8/16 00:49 v0.0.4-dev
+ *
* @param event 事件
* @throws InvocationTargetException 处理时出现错误
- * @throws IllegalAccessException 处理时出现错误
+ * @throws IllegalAccessException 处理时出现错误
+ * @author wzp
+ * @since 2024/8/16 00:49 v0.0.4-dev
*/
public abstract void triggerEvent(Event event) throws InvocationTargetException, IllegalAccessException;
/**
* 获取插件文件夹
+ *
+ * @return 插件文件夹
* @author wzp
* @since 2024/8/16 12:49 v0.0.5-dev
- * @return 插件文件夹
*/
public abstract File getPluginsFolder();
/**
* 获取api接口
+ *
+ * @return api接口
* @author wzp
* @since 2024/8/16 17:34 v0.0.5-dev
- * @return api接口
*/
public abstract IMainApi getMainApi();
- /**
- * 获取bot实例
- * @author wzp
- * @since 2024/8/17 23:19 v0.0.5-dev
- * @return 一个bot实例对象
- */
- public static IBot getInstance(){
- return IBot.instance;
- }
- public void setNickname(String nickname){
- if (this.nickname == null){
+ public void setNickname(String nickname) {
+ if (this.nickname == null) {
this.nickname = nickname;
return;
}
throw new RuntimeException(new IllegalAccessException("Shouldn't set nickname after initialized"));
}
+
@Override
- public void setId(Long id){
- if (this.id == null){
+ public void setId(Long id) {
+ if (this.id == null) {
this.id = id;
return;
}
@@ -109,65 +122,73 @@ public abstract class IBot extends MessageSender implements CommandSender {
/**
* 获取OP列表
+ *
+ * @return OP列表
* @author wzp
* @since 2024/8/25 14:11 v1.0.0
- * @return OP列表
*/
abstract public Ops getOps();
/**
* 添加一个OP用户
+ *
+ * @param userId 用户ID
* @author wzp
* @since 2024/8/25 14:12 v1.0.0
- * @param userId 用户ID
*/
abstract public void addOp(Long userId);
/**
* 为一个群添加OP用户
+ *
+ * @param groupId 群ID
+ * @param userId 用户ID
* @author wzp
* @since 2024/8/25 20:21 v1.0.0
- * @param groupId 群ID
- * @param userId 用户ID
*/
abstract public void addOp(Long groupId, Long userId);
/**
* 移除一个用户的OP身份
- * @author wzp
- * @since 2024/8/25 20:23 v1.0.0
+ *
* @param userId 用户ID
* @return 是否移除
+ * @author wzp
+ * @since 2024/8/25 20:23 v1.0.0
*/
abstract public boolean removeOp(Long userId);
+
/**
* 移除一个用户在群内的OP身份
+ *
+ * @param groupId 群ID
+ * @param userId 用户ID
+ * @return 是否移除
* @author wzp
* @since 2024/8/25 20:23 v1.0.0
- * @param groupId 群ID
- * @param userId 用户ID
- * @return 是否移除
*/
abstract public boolean removeOp(Long groupId, Long userId);
/**
* 检查用户是否为OP
- * @author wzp
- * @since 2024/8/25 14:10 v1.0.0
+ *
* @param userId 用户ID
* @return 是否为OP
+ * @author wzp
+ * @since 2024/8/25 14:10 v1.0.0
*/
- public boolean isBotOp(Long userId){
+ public boolean isBotOp(Long userId) {
return getOps().isAdmin(userId);
}
/**
* 检查用户在群内是否为OP
+ *
+ * @param groupId 群ID
+ * @param userId 用户ID
+ * @return 是否为OP
* @author wzp
* @since 2024/8/25 20:22 v1.0.0
- * @param groupId 群ID
- * @param userId 用户ID
- * @return 是否为OP
*/
public boolean isBotOp(Long groupId, Long userId) {
return this.getOps().isAdmin(groupId, userId);
diff --git a/src/main/java/cn/wzpmc/api/user/IUser.java b/mybot-api/src/main/java/cn/wzpmc/user/IUser.java
similarity index 86%
rename from src/main/java/cn/wzpmc/api/user/IUser.java
rename to mybot-api/src/main/java/cn/wzpmc/user/IUser.java
index 9f3c559..eecf749 100644
--- a/src/main/java/cn/wzpmc/api/user/IUser.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/IUser.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.user;
+package cn.wzpmc.user;
-import cn.wzpmc.api.user.permission.Permissions;
+import cn.wzpmc.user.permission.Permissions;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
/**
* 用户接口
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/30 下午11:42
@@ -19,31 +20,37 @@ import lombok.NoArgsConstructor;
public abstract class IUser extends MessageSender {
/**
* 玩家昵称
+ *
* @since 2024/8/1 下午8:34 v0.0.2-dev
*/
protected String nickname;
/**
* 用户性别
+ *
* @since 2024/8/1 下午8:25 v0.0.2-dev
*/
protected Sex sex;
/**
* 用户年龄
+ *
* @since 2024/8/1 下午8:25 v0.0.2-dev
*/
protected Integer age;
+
protected IUser(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age) {
super(id, name, permissions);
this.nickname = nickname;
this.sex = sex;
this.age = age;
}
+
@Override
- public String getName(){
+ public String getName() {
return this.nickname;
}
+
@Override
- public void setName(String name){
+ public void setName(String name) {
this.nickname = name;
this.name = name;
}
diff --git a/src/main/java/cn/wzpmc/api/user/MessageSender.java b/mybot-api/src/main/java/cn/wzpmc/user/MessageSender.java
similarity index 88%
rename from src/main/java/cn/wzpmc/api/user/MessageSender.java
rename to mybot-api/src/main/java/cn/wzpmc/user/MessageSender.java
index c614fcf..8c94cfc 100644
--- a/src/main/java/cn/wzpmc/api/user/MessageSender.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/MessageSender.java
@@ -1,6 +1,6 @@
-package cn.wzpmc.api.user;
+package cn.wzpmc.user;
-import cn.wzpmc.api.user.permission.Permissions;
+import cn.wzpmc.user.permission.Permissions;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
/**
* 消息发送者
+ *
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/18 00:01
@@ -18,18 +19,21 @@ import lombok.NoArgsConstructor;
public class MessageSender {
/**
* 用户ID
+ *
* @since 2024/7/30 下午11:48 v0.0.1-dev
*/
@JSONField(name = "user_id")
protected Long id;
/**
* 用户名
+ *
* @since 2024/7/30 下午11:48 v0.0.1-dev
*/
@JSONField(name = "nickname")
protected String name;
/**
* 权限
+ *
* @since 2024/8/1 下午8:24 v0.0.2-dev
*/
protected Permissions permissions;
diff --git a/src/main/java/cn/wzpmc/api/user/Sex.java b/mybot-api/src/main/java/cn/wzpmc/user/Sex.java
similarity index 88%
rename from src/main/java/cn/wzpmc/api/user/Sex.java
rename to mybot-api/src/main/java/cn/wzpmc/user/Sex.java
index 8f65d73..591d814 100644
--- a/src/main/java/cn/wzpmc/api/user/Sex.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/Sex.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.user;
+package cn.wzpmc.user;
/**
* 用户性别
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午8:17
@@ -9,16 +10,19 @@ package cn.wzpmc.api.user;
public enum Sex {
/**
* 男性
+ *
* @since 2024/8/1 下午8:17 v0.0.2-dev
*/
MALE,
/**
* 女性
+ *
* @since 2024/8/1 下午8:18 v0.0.2-dev
*/
FEMALE,
/**
* 未知
+ *
* @since 2024/8/1 下午8:18 v0.0.2-dev
*/
UNKNOWN
diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupCommandSender.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupCommandSender.java
similarity index 78%
rename from src/main/java/cn/wzpmc/api/user/group/GroupCommandSender.java
rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupCommandSender.java
index 5f3c473..68c8116 100644
--- a/src/main/java/cn/wzpmc/api/user/group/GroupCommandSender.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupCommandSender.java
@@ -1,18 +1,17 @@
-package cn.wzpmc.api.user.group;
+package cn.wzpmc.user.group;
-import cn.wzpmc.api.api.IMainApi;
-import cn.wzpmc.api.api.actions.message.send.SendGroupMessageAction;
-import cn.wzpmc.api.events.message.group.GroupMessageEvent;
-import cn.wzpmc.api.message.MessageComponent;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.message.json.JsonMessage;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.At;
-import cn.wzpmc.api.user.CommandSender;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.Sex;
-import cn.wzpmc.api.user.permission.Permissions;
-import cn.wzpmc.entities.user.bot.MyBot;
+import cn.wzpmc.api.IMainApi;
+import cn.wzpmc.api.actions.message.send.SendGroupMessageAction;
+import cn.wzpmc.events.message.group.GroupMessageEvent;
+import cn.wzpmc.message.MessageComponent;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.message.json.JsonMessage;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.At;
+import cn.wzpmc.user.CommandSender;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.Sex;
+import cn.wzpmc.user.permission.Permissions;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -29,33 +28,22 @@ import java.util.List;
@Data
@AllArgsConstructor
public class GroupCommandSender extends GroupUser implements CommandSender {
- public GroupCommandSender(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age, String card, String area, String level, GroupUserRole role, String title, Long groupId){
- super(id, name, permissions, nickname, sex, age, card, area, level, role, title);
- this.groupId = groupId;
- }
private Long groupId;
- @SneakyThrows
- @Override
- public void sendMessage(MessageComponent messageComponent) {
- IBot instance = IBot.getInstance();
- IMainApi mainApi = instance.getMainApi();
- JsonMessage jsonMessage = new JsonMessage();
- List messageParts = jsonMessage.getMessageParts();
- messageParts.add(new At(this.getId()));
- messageParts.add(StringMessage.text(" " + messageComponent.toMessageString()));
- SendGroupMessageAction sendGroupMessageAction = new SendGroupMessageAction(this.groupId, jsonMessage);
- mainApi.doApiCall(sendGroupMessageAction);
+ public GroupCommandSender(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age, String card, String area, String level, GroupUserRole role, String title, Long groupId) {
+ super(id, name, permissions, nickname, sex, age, card, area, level, role, title);
+ this.groupId = groupId;
}
/**
* 将一个群消息事件转为一个群指令执行者
- * @author wzp
- * @since 2024/8/23 21:42 v0.0.5-dev
+ *
* @param event 群消息事件
* @return 指令执行者对象
+ * @author wzp
+ * @since 2024/8/23 21:42 v0.0.5-dev
*/
- public static GroupCommandSender of(GroupMessageEvent event){
+ public static GroupCommandSender of(GroupMessageEvent event) {
GroupUser sender = event.getSender();
Long eventGroupId = event.getGroupId();
Long id = sender.getId();
@@ -69,10 +57,23 @@ public class GroupCommandSender extends GroupUser implements CommandSender {
String level = sender.getLevel();
GroupUserRole role = sender.getRole();
String title = sender.getTitle();
- IBot instance = MyBot.getInstance();
+ IBot instance = IBot.getInstance();
if (!permissions.isAdmin() && instance.isBotOp(eventGroupId, id)) {
permissions = Permissions.ADMIN;
}
return new GroupCommandSender(id, name, permissions, nickname, sex, age, card, area, level, role, title, eventGroupId);
}
+
+ @SneakyThrows
+ @Override
+ public void sendMessage(MessageComponent messageComponent) {
+ IBot instance = IBot.getInstance();
+ IMainApi mainApi = instance.getMainApi();
+ JsonMessage jsonMessage = new JsonMessage();
+ List messageParts = jsonMessage.getMessageParts();
+ messageParts.add(new At(this.getId()));
+ messageParts.add(StringMessage.text(" " + messageComponent.toMessageString()));
+ SendGroupMessageAction sendGroupMessageAction = new SendGroupMessageAction(this.groupId, jsonMessage);
+ mainApi.doApiCall(sendGroupMessageAction);
+ }
}
diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupUser.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUser.java
similarity index 88%
rename from src/main/java/cn/wzpmc/api/user/group/GroupUser.java
rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupUser.java
index e93a05d..e4423d6 100644
--- a/src/main/java/cn/wzpmc/api/user/group/GroupUser.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUser.java
@@ -1,8 +1,8 @@
-package cn.wzpmc.api.user.group;
+package cn.wzpmc.user.group;
-import cn.wzpmc.api.user.IUser;
-import cn.wzpmc.api.user.Sex;
-import cn.wzpmc.api.user.permission.Permissions;
+import cn.wzpmc.user.IUser;
+import cn.wzpmc.user.Sex;
+import cn.wzpmc.user.permission.Permissions;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
/**
* 群内用户
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午8:19
@@ -21,29 +22,35 @@ import lombok.NoArgsConstructor;
public class GroupUser extends IUser {
/**
* 群名片/备注
+ *
* @since 2024/8/1 下午8:54 v0.0.2-dev
*/
private String card;
/**
* 地区
+ *
* @since 2024/8/1 下午8:54 v0.0.2-dev
*/
private String area;
/**
* 成员等级
+ *
* @since 2024/8/1 下午8:53 v0.0.2-dev
*/
private String level;
/**
* 群角色
+ *
* @since 2024/8/1 下午8:53 v0.0.2-dev
*/
private GroupUserRole role;
/**
* 专属头衔
+ *
* @since 2024/8/1 下午8:53 v0.0.2-dev
*/
private String title;
+
public GroupUser(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age, String card, String area, String level, GroupUserRole role, String title) {
super(id, name, permissions, nickname, sex, age);
this.card = card;
diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupUserAnonymousInfo.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserAnonymousInfo.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/user/group/GroupUserAnonymousInfo.java
rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserAnonymousInfo.java
index d363d06..062aa80 100644
--- a/src/main/java/cn/wzpmc/api/user/group/GroupUserAnonymousInfo.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserAnonymousInfo.java
@@ -1,9 +1,10 @@
-package cn.wzpmc.api.user.group;
+package cn.wzpmc.user.group;
import lombok.Data;
/**
* 匿名成员消息
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午8:57
@@ -12,16 +13,19 @@ import lombok.Data;
public class GroupUserAnonymousInfo {
/**
* 匿名ID
+ *
* @since 2024/8/1 下午8:58 v0.0.2-dev
*/
private Long id;
/**
* 匿名名称
+ *
* @since 2024/8/1 下午8:58 v0.0.2-dev
*/
private String name;
/**
* 匿名成员flag
+ *
* @since 2024/8/1 下午8:58 v0.0.2-dev
*/
private String flag;
diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupUserRole.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserRole.java
similarity index 87%
rename from src/main/java/cn/wzpmc/api/user/group/GroupUserRole.java
rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserRole.java
index d111cce..d97db65 100644
--- a/src/main/java/cn/wzpmc/api/user/group/GroupUserRole.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserRole.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.user.group;
+package cn.wzpmc.user.group;
/**
* 成员角色
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午8:52
@@ -9,16 +10,19 @@ package cn.wzpmc.api.user.group;
public enum GroupUserRole {
/**
* 群主
+ *
* @since 2024/8/1 下午8:52 v0.0.2-dev
*/
OWNER,
/**
* 群管理
+ *
* @since 2024/8/1 下午8:52 v0.0.2-dev
*/
ADMIN,
/**
* 群成员
+ *
* @since 2024/8/1 下午8:52 v0.0.2-dev
*/
MEMBER
diff --git a/src/main/java/cn/wzpmc/api/user/permission/Permissions.java b/mybot-api/src/main/java/cn/wzpmc/user/permission/Permissions.java
similarity index 79%
rename from src/main/java/cn/wzpmc/api/user/permission/Permissions.java
rename to mybot-api/src/main/java/cn/wzpmc/user/permission/Permissions.java
index b1ad3ec..843a011 100644
--- a/src/main/java/cn/wzpmc/api/user/permission/Permissions.java
+++ b/mybot-api/src/main/java/cn/wzpmc/user/permission/Permissions.java
@@ -1,7 +1,8 @@
-package cn.wzpmc.api.user.permission;
+package cn.wzpmc.user.permission;
/**
* 权限
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/8/1 下午4:48
@@ -9,24 +10,29 @@ package cn.wzpmc.api.user.permission;
public enum Permissions {
/**
* 普通用户
+ *
* @since 2024/8/1 下午4:49 v0.0.2-dev
*/
MEMBER(0),
/**
* 管理员
+ *
* @since 2024/8/1 下午4:49 v0.0.2-dev
*/
ADMIN(1),
/**
* 群主
+ *
* @since 2024/8/24 19:25 v0.0.6-dev
*/
OWNER(2);
final int level;
- Permissions(int level){
+
+ Permissions(int level) {
this.level = level;
}
- public boolean isAdmin(){
+
+ public boolean isAdmin() {
return this.level > 0;
}
}
diff --git a/src/main/java/cn/wzpmc/api/utils/CqCodeUtils.java b/mybot-api/src/main/java/cn/wzpmc/utils/CqCodeUtils.java
similarity index 82%
rename from src/main/java/cn/wzpmc/api/utils/CqCodeUtils.java
rename to mybot-api/src/main/java/cn/wzpmc/utils/CqCodeUtils.java
index 7108d80..58f9144 100644
--- a/src/main/java/cn/wzpmc/api/utils/CqCodeUtils.java
+++ b/mybot-api/src/main/java/cn/wzpmc/utils/CqCodeUtils.java
@@ -1,12 +1,12 @@
-package cn.wzpmc.api.utils;
+package cn.wzpmc.utils;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.message.json.parts.PartType;
-import cn.wzpmc.api.message.json.parts.music.MusicType;
-import cn.wzpmc.api.message.json.parts.node.CustomNode;
-import cn.wzpmc.api.message.json.parts.node.SingleNode;
-import cn.wzpmc.api.message.json.parts.poke.Poke;
-import cn.wzpmc.api.message.json.parts.poke.PokeType;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.message.json.parts.PartType;
+import cn.wzpmc.message.json.parts.music.MusicType;
+import cn.wzpmc.message.json.parts.node.CustomNode;
+import cn.wzpmc.message.json.parts.node.SingleNode;
+import cn.wzpmc.message.json.parts.poke.Poke;
+import cn.wzpmc.message.json.parts.poke.PokeType;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.annotation.JSONField;
@@ -22,6 +22,7 @@ import java.util.Objects;
/**
* CQ码相关工具类
+ *
* @author wzp
* @version 1.0.0
* @since 2024/8/26 14:06
@@ -30,23 +31,25 @@ import java.util.Objects;
public class CqCodeUtils {
/**
* 判断一个字符串是否为CQ码
- * @author wzp
- * @since 2024/8/26 14:08 v1.0.0
+ *
* @param word 一个词(不包含空格)
* @return 是否为CQ码
+ * @author wzp
+ * @since 2024/8/26 14:08 v1.0.0
*/
- public static boolean isCQ(String word){
+ public static boolean isCQ(String word) {
return word.startsWith("[") && word.endsWith("]");
}
/**
* 解析CQ码为Map
- * @author wzp
- * @since 2024/8/26 14:08 v1.0.0
+ *
* @param word 一个词(不包含空格)
* @return 解析后的Map
+ * @author wzp
+ * @since 2024/8/26 14:08 v1.0.0
*/
- public static Map parse(String word){
+ public static Map parse(String word) {
StringBuilder key = new StringBuilder();
boolean keyDone = false;
StringBuilder value = new StringBuilder();
@@ -58,7 +61,7 @@ public class CqCodeUtils {
result.put(key.toString(), value.toString());
}
if (keyDone) {
- if (c == ','){
+ if (c == ',') {
result.put(key.toString(), value.toString());
key = new StringBuilder();
value = new StringBuilder();
@@ -68,7 +71,7 @@ public class CqCodeUtils {
value.append(c);
continue;
}
- if (c == ':' || c == '='){
+ if (c == ':' || c == '=') {
keyDone = true;
continue;
}
@@ -79,10 +82,11 @@ public class CqCodeUtils {
/**
* 将文本转化为JsonMessagePart
- * @author wzp
- * @since 2024/8/26 14:34 v1.0.0
+ *
* @param word 一个词(不包含空格)
* @return 消息文本段
+ * @author wzp
+ * @since 2024/8/26 14:34 v1.0.0
*/
@SneakyThrows
public static JsonMessagePart parseToPart(String word) {
@@ -92,40 +96,42 @@ public class CqCodeUtils {
JSONObject jsonObj = JSONObject.of("type", cq, "data", jsonObject);
return parsePart(jsonObj);
}
+
/**
* 将json解析为单个消息段
- * @author wzp
- * @since 2024/8/26 14:40 v1.0.0
+ *
* @param jsonObject json数据
* @return 消息段
* @throws InvocationTargetException 调用构造方法失败时抛出
- * @throws InstantiationException 实例化错误时抛出
- * @throws IllegalAccessException 实例化错误时抛出
- * @throws NoSuchMethodException 找不到构造方法时抛出
+ * @throws InstantiationException 实例化错误时抛出
+ * @throws IllegalAccessException 实例化错误时抛出
+ * @throws NoSuchMethodException 找不到构造方法时抛出
+ * @author wzp
+ * @since 2024/8/26 14:40 v1.0.0
*/
public static JsonMessagePart parsePart(JSONObject jsonObject) throws InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchMethodException {
PartType type = jsonObject.getObject("type", PartType.class);
Class extends JsonMessagePart> clazz = type.clazz;
JSONObject dataObject = jsonObject.getJSONObject("data");
- if (type.equals(PartType.POKE)){
+ if (type.equals(PartType.POKE)) {
Integer pokeType = dataObject.getInteger("type");
Integer pokeId = dataObject.getInteger("id");
for (PokeType value : PokeType.values()) {
- if (value.type.equals(pokeType) && value.id.equals(pokeId)){
+ if (value.type.equals(pokeType) && value.id.equals(pokeId)) {
return new Poke(value);
}
}
log.warn("无法识别的戳一戳类型:type: {}, id: {}", pokeType, pokeId);
return new Poke();
}
- if (type.equals(PartType.NODE)){
- if (jsonObject.containsKey("content")){
+ if (type.equals(PartType.NODE)) {
+ if (jsonObject.containsKey("content")) {
clazz = CustomNode.class;
- }else{
+ } else {
clazz = SingleNode.class;
}
}
- if (type.equals(PartType.MUSIC)){
+ if (type.equals(PartType.MUSIC)) {
MusicType musicType = dataObject.getObject("type", MusicType.class);
dataObject.put("musicType", musicType);
clazz = musicType.clazz;
diff --git a/src/main/java/cn/wzpmc/api/utils/IncreasbleHashMap.java b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleHashMap.java
similarity index 91%
rename from src/main/java/cn/wzpmc/api/utils/IncreasbleHashMap.java
rename to mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleHashMap.java
index e81bf0e..ee659c3 100644
--- a/src/main/java/cn/wzpmc/api/utils/IncreasbleHashMap.java
+++ b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleHashMap.java
@@ -1,4 +1,4 @@
-package cn.wzpmc.api.utils;
+package cn.wzpmc.utils;
import java.util.ArrayList;
import java.util.Collection;
@@ -7,11 +7,12 @@ import java.util.List;
/**
* 一个单Key对应多Value的HashMap
+ *
* @author wzp
* @version 0.0.4-dev
* @since 2024/8/16 00:02
*/
-public class IncreasbleHashMap extends HashMap> implements IncreasbleMap>{
+public class IncreasbleHashMap extends HashMap> implements IncreasbleMap> {
@Override
public void add(K key, V value) {
List newArrayList = super.getOrDefault(key, new ArrayList<>());
@@ -32,7 +33,7 @@ public class IncreasbleHashMap extends HashMap> implements Incr
public boolean delete(V value) {
boolean has = false;
for (List vs : super.values()) {
- if (vs.contains(value)){
+ if (vs.contains(value)) {
has = true;
vs.remove(value);
}
@@ -46,6 +47,7 @@ public class IncreasbleHashMap extends HashMap> implements Incr
this.addAll(entry.getKey(), entry.getValue());
}
}
+
@Override
public void addAll(K key, Collection values) {
List list = this.getOrDefault(key, new ArrayList<>());
@@ -56,7 +58,7 @@ public class IncreasbleHashMap extends HashMap> implements Incr
@Override
public boolean containsValue(Object value) {
for (List vs : super.values()) {
- if (vs.contains(value)){
+ if (vs.contains(value)) {
return true;
}
}
diff --git a/src/main/java/cn/wzpmc/api/utils/IncreasbleMap.java b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleMap.java
similarity index 90%
rename from src/main/java/cn/wzpmc/api/utils/IncreasbleMap.java
rename to mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleMap.java
index 3a823ec..544deae 100644
--- a/src/main/java/cn/wzpmc/api/utils/IncreasbleMap.java
+++ b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleMap.java
@@ -1,60 +1,66 @@
-package cn.wzpmc.api.utils;
+package cn.wzpmc.utils;
import java.util.Collection;
import java.util.Map;
/**
* 一个单Key对应多Value的Map
- * @author wzp
- * @version 0.0.4-dev
- * @since 2024/8/15 23:57
+ *
* @param 集合类型
* @param key类型
* @param value类型
+ * @author wzp
+ * @version 0.0.4-dev
+ * @since 2024/8/15 23:57
*/
public interface IncreasbleMap> extends Map {
/**
* 向一个Key中添加元素
+ *
+ * @param key 键
+ * @param value 值
* @author wzp
* @since 2024/8/16 00:04 v0.0.4-dev
- * @param key 键
- * @param value 值
*/
void add(K key, V value);
/**
* 删除某个key中的对应元素
- * @author wzp
- * @since 2024/8/16 00:05 v0.0.4-dev
- * @param key 键
+ *
+ * @param key 键
* @param value 值
* @return 是否删除成功
+ * @author wzp
+ * @since 2024/8/16 00:05 v0.0.4-dev
*/
boolean delete(K key, V value);
/**
* 删除所有的对应value的值
- * @author wzp
- * @since 2024/8/16 00:05 v0.0.4-dev
+ *
* @param value 值
* @return 是否删除成功
+ * @author wzp
+ * @since 2024/8/16 00:05 v0.0.4-dev
*/
boolean delete(V value);
/**
* 将两个表融合
+ *
+ * @param increasbleMap 另一个表
* @author wzp
* @since 2024/8/16 00:35 v0.0.4-dev
- * @param increasbleMap 另一个表
*/
void addAll(IncreasbleMap increasbleMap);
/**
* 将所有value添加到此key中
+ *
+ * @param key 键
+ * @param values 所有要添加的值的集合
* @author wzp
* @since 2024/8/16 00:43 v0.0.4-dev
- * @param key 键
- * @param values 所有要添加的值的集合
*/
void addAll(K key, Collection values);
}
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 893e1f3..8fef55e 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,2 +1,3 @@
val projectName by extra("MyBot")
-rootProject.name = projectName
\ No newline at end of file
+rootProject.name = projectName
+include("mybot-api")
diff --git a/src/main/java/cn/wzpmc/Main.java b/src/main/java/cn/wzpmc/Main.java
index d89c481..2f59ae9 100644
--- a/src/main/java/cn/wzpmc/Main.java
+++ b/src/main/java/cn/wzpmc/Main.java
@@ -1,8 +1,7 @@
package cn.wzpmc;
-import cn.wzpmc.api.api.IMainApi;
-import cn.wzpmc.api.api.actions.message.get.GetLoginInfoAction;
-import cn.wzpmc.api.plugins.BasePlugin;
+import cn.wzpmc.api.IMainApi;
+import cn.wzpmc.api.actions.message.get.GetLoginInfoAction;
import cn.wzpmc.builtin.commands.DeOpCommand;
import cn.wzpmc.builtin.commands.HelpCommand;
import cn.wzpmc.builtin.commands.OpCommand;
@@ -12,6 +11,7 @@ import cn.wzpmc.configuration.Configuration;
import cn.wzpmc.console.MyBotConsole;
import cn.wzpmc.entities.user.bot.MyBot;
import cn.wzpmc.network.WebSocketConnectionHandler;
+import cn.wzpmc.plugins.BasePlugin;
import cn.wzpmc.plugins.CommandManager;
import cn.wzpmc.plugins.PluginClassLoader;
import cn.wzpmc.plugins.PluginManager;
@@ -32,14 +32,16 @@ import java.net.URL;
public class Main {
private static final String DEFAULT_CONFIGURATION_FILE_PATH = "templates/config.yaml";
- public static void initializeJVM(){
+ public static void initializeJVM() {
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
System.setProperty("terminal.jline", "true");
}
- public static void initializeJsonUtils(){
+
+ public static void initializeJsonUtils() {
JsonUtils.initReader();
JsonUtils.initWriter();
}
+
public static Configuration getConfiguration() {
File configurationFile = new File("config.yaml");
if (TemplateFileUtils.saveDefaultConfig(Main.class.getClassLoader(), DEFAULT_CONFIGURATION_FILE_PATH, configurationFile)) {
@@ -50,10 +52,12 @@ public class Main {
log.debug("读取配置文件 {}", configurationFile.getAbsolutePath());
return YamlUtils.readYamlFile(configurationFile, Configuration.class);
}
- public static MyBot createBot(Configuration configuration){
+
+ public static MyBot createBot(Configuration configuration) {
return new MyBot(configuration);
}
- public static URI getUriFromConfiguration(Configuration configuration){
+
+ public static URI getUriFromConfiguration(Configuration configuration) {
URI uri;
try {
uri = new URI(configuration.getWebsocket());
@@ -62,6 +66,7 @@ public class Main {
}
return uri;
}
+
public static void loadPlugins(MyBot myBot) throws MalformedURLException {
File pluginsDir = new File("plugins");
if (TemplateFileUtils.createDefaultDirectory(pluginsDir)) {
@@ -85,7 +90,7 @@ public class Main {
URI fileURI = file.toURI();
PluginClassLoader pluginClassLoader = new PluginClassLoader(new URL[]{fileURI.toURL()}, myBot);
BasePlugin load = ReflectionUtils.load(pluginClassLoader, file, pluginManager);
- if (load == null){
+ if (load == null) {
log.info("插件{}加载失败!", name);
continue;
}
@@ -98,27 +103,30 @@ public class Main {
commandManager.registerCommand(new HelpCommand());
commandManager.registerCommand(new DeOpCommand());
}
- public static WebSocketConnectionHandler createConnection(MyBot myBot, URI uri){
+
+ public static WebSocketConnectionHandler createConnection(MyBot myBot, URI uri) {
WebSocketConnectionHandler webSocketConnectionHandler = new WebSocketConnectionHandler(myBot);
webSocketConnectionHandler.connect(uri);
return webSocketConnectionHandler;
}
- public static void startConsole(MyBot myBot, WebSocketConnectionHandler webSocketConnectionHandler){
+
+ public static void startConsole(MyBot myBot, WebSocketConnectionHandler webSocketConnectionHandler) {
MyBotConsole myBotConsole = new MyBotConsole(myBot, webSocketConnectionHandler);
myBotConsole.start();
}
+
@SneakyThrows
public static void main(String[] args) {
initializeJVM();
initializeJsonUtils();
log.info("启动MyBot...");
Configuration configuration = getConfiguration();
- if (configuration == null){
+ if (configuration == null) {
return;
}
MyBot myBot = createBot(configuration);
URI uri = getUriFromConfiguration(configuration);
- if (uri == null){
+ if (uri == null) {
log.error("无法解析websocket地址");
return;
}
diff --git a/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java b/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java
index 8a11b4c..9bc4391 100644
--- a/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java
+++ b/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java
@@ -1,13 +1,13 @@
package cn.wzpmc.builtin.commands;
-import cn.wzpmc.api.commands.BrigadierCommand;
-import cn.wzpmc.api.commands.arguments.UserIdArguments;
-import cn.wzpmc.api.entities.Ops;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.user.CommandSender;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.group.GroupCommandSender;
+import cn.wzpmc.commands.BrigadierCommand;
+import cn.wzpmc.commands.arguments.UserIdArguments;
+import cn.wzpmc.entities.Ops;
import cn.wzpmc.entities.user.bot.MyBot;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.user.CommandSender;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.group.GroupCommandSender;
import com.mojang.brigadier.arguments.LongArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.builder.RequiredArgumentBuilder;
@@ -19,9 +19,11 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder;
*/
public class DeOpCommand implements BrigadierCommand {
private final IBot instance;
- public DeOpCommand(){
+
+ public DeOpCommand() {
this.instance = MyBot.getInstance();
}
+
@Override
public LiteralArgumentBuilder getCommandNode() {
return LiteralArgumentBuilder.
@@ -32,11 +34,11 @@ public class DeOpCommand implements BrigadierCommand {
Ops ops = instance.getOps();
CommandSender source = e.getSource();
Long targetId = e.getArgument("user", Long.class);
- if (source instanceof GroupCommandSender){
- if (ops.isAdmin(source.getId())){
+ if (source instanceof GroupCommandSender) {
+ if (ops.isAdmin(source.getId())) {
instance.removeOp(targetId);
source.sendMessage(StringMessage.text("已为用户:" + targetId + "移除总OP权限"));
- }else{
+ } else {
Long groupId = ((GroupCommandSender) source).getGroupId();
instance.removeOp(groupId, targetId);
source.sendMessage(StringMessage.text("已为用户:" + targetId + "移除群:" + groupId + "的OP权限"));
@@ -53,7 +55,7 @@ public class DeOpCommand implements BrigadierCommand {
Long targetGroupId = e.getArgument("group", Long.class);
Long targetId = e.getArgument("user", Long.class);
CommandSender source = e.getSource();
- if (source instanceof GroupCommandSender){
+ if (source instanceof GroupCommandSender) {
if (!instance.isBotOp(targetGroupId, source.getId())) {
source.sendMessage(StringMessage.text("权限不足!"));
return 0;
diff --git a/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java b/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java
index c588c04..86f8468 100644
--- a/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java
+++ b/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java
@@ -1,12 +1,12 @@
package cn.wzpmc.builtin.commands;
-import cn.wzpmc.api.commands.BrigadierCommand;
-import cn.wzpmc.api.commands.RawCommand;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.user.CommandSender;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.commands.BrigadierCommand;
+import cn.wzpmc.commands.RawCommand;
import cn.wzpmc.entities.user.bot.MyBot;
+import cn.wzpmc.message.StringMessage;
import cn.wzpmc.plugins.CommandManager;
+import cn.wzpmc.user.CommandSender;
+import cn.wzpmc.user.IBot;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.tree.CommandNode;
@@ -22,6 +22,15 @@ import java.util.concurrent.ConcurrentHashMap;
* @since 2024/8/25 15:07
*/
public class HelpCommand implements BrigadierCommand {
+ private static void handlerNode(Collection> node, int tabCount, StringBuilder builder) {
+ for (CommandNode commandSenderCommandNode : node) {
+ builder.append("\t".repeat(Math.max(0, tabCount)));
+ builder.append(commandSenderCommandNode.getUsageText());
+ builder.append('\n');
+ handlerNode(commandSenderCommandNode.getChildren(), tabCount + 1, builder);
+ }
+ }
+
@Override
public LiteralArgumentBuilder getCommandNode() {
return LiteralArgumentBuilder.literal("help").executes(e -> {
@@ -47,12 +56,4 @@ public class HelpCommand implements BrigadierCommand {
return 0;
});
}
- private static void handlerNode(Collection> node, int tabCount, StringBuilder builder){
- for (CommandNode commandSenderCommandNode : node) {
- builder.append("\t".repeat(Math.max(0, tabCount)));
- builder.append(commandSenderCommandNode.getUsageText());
- builder.append('\n');
- handlerNode(commandSenderCommandNode.getChildren(), tabCount + 1, builder);
- }
- }
}
diff --git a/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java b/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java
index 4e34685..d65f710 100644
--- a/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java
+++ b/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java
@@ -1,13 +1,13 @@
package cn.wzpmc.builtin.commands;
-import cn.wzpmc.api.commands.BrigadierCommand;
-import cn.wzpmc.api.commands.arguments.UserIdArguments;
-import cn.wzpmc.api.entities.Ops;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.user.CommandSender;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.group.GroupCommandSender;
+import cn.wzpmc.commands.BrigadierCommand;
+import cn.wzpmc.commands.arguments.UserIdArguments;
+import cn.wzpmc.entities.Ops;
import cn.wzpmc.entities.user.bot.MyBot;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.user.CommandSender;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.group.GroupCommandSender;
import com.mojang.brigadier.arguments.LongArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.builder.RequiredArgumentBuilder;
@@ -21,9 +21,34 @@ import java.util.*;
*/
public class OpCommand implements BrigadierCommand {
private final IBot instance;
- public OpCommand(){
+
+ public OpCommand() {
this.instance = MyBot.getInstance();
}
+
+ private static String getFullOpListString(Collection admins) {
+ return "总管理:" + '\n' +
+ getOpListString(admins);
+ }
+
+ private static String getGroupOpListString(Collection admins, Long groupId) {
+ return "群" + groupId + "的管理员:" + '\n' +
+ getOpListString(admins);
+ }
+
+ private static StringBuilder getOpListString(Collection admins) {
+ StringBuilder builder = new StringBuilder();
+ if (admins.isEmpty()) {
+ builder.append("无").append('\n');
+ }
+ for (Long admin : admins) {
+ builder.append('\t').append(admin).append('\n');
+ }
+ int lastLine = builder.lastIndexOf("\n");
+ builder.deleteCharAt(lastLine);
+ return builder;
+ }
+
@Override
public LiteralArgumentBuilder getCommandNode() {
return LiteralArgumentBuilder.
@@ -49,16 +74,16 @@ public class OpCommand implements BrigadierCommand {
fullAdmin = true;
}
StringBuilder builder = new StringBuilder();
- if (fullAdmin){
+ if (fullAdmin) {
builder.append(getFullOpListString(fullAdmins)).append('\n');
for (Map.Entry> stringListEntry : groupAdmins.entrySet()) {
builder.append(getGroupOpListString(stringListEntry.getValue(), Long.valueOf(stringListEntry.getKey()))).append('\n');
}
builder.deleteCharAt(builder.lastIndexOf("\n"));
- }else if (groupAdmin) {
+ } else if (groupAdmin) {
builder.append(getGroupOpListString(sendGroupAdmins, sendGroupId));
- }else {
+ } else {
builder.append("权限不足!");
}
source.sendMessage(StringMessage.text(builder.toString()));
@@ -118,11 +143,11 @@ public class OpCommand implements BrigadierCommand {
Ops ops = instance.getOps();
CommandSender source = e.getSource();
Long targetId = e.getArgument("user", Long.class);
- if (source instanceof GroupCommandSender){
- if (ops.isAdmin(source.getId())){
+ if (source instanceof GroupCommandSender) {
+ if (ops.isAdmin(source.getId())) {
instance.addOp(targetId);
source.sendMessage(StringMessage.text("已为用户:" + targetId + "添加总OP权限"));
- }else{
+ } else {
Long groupId = ((GroupCommandSender) source).getGroupId();
instance.addOp(groupId, targetId);
source.sendMessage(StringMessage.text("已为用户:" + targetId + "添加群:" + groupId + "的OP权限"));
@@ -139,7 +164,7 @@ public class OpCommand implements BrigadierCommand {
Long targetGroupId = e.getArgument("group", Long.class);
Long targetId = e.getArgument("user", Long.class);
CommandSender source = e.getSource();
- if (source instanceof GroupCommandSender){
+ if (source instanceof GroupCommandSender) {
if (!instance.isBotOp(targetGroupId, source.getId())) {
source.sendMessage(StringMessage.text("权限不足!"));
return 0;
@@ -160,24 +185,4 @@ public class OpCommand implements BrigadierCommand {
)
);
}
- private static String getFullOpListString(Collection admins){
- return "总管理:" + '\n' +
- getOpListString(admins);
- }
- private static String getGroupOpListString(Collection admins, Long groupId){
- return "群" + groupId + "的管理员:" + '\n' +
- getOpListString(admins);
- }
- private static StringBuilder getOpListString(Collection admins) {
- StringBuilder builder = new StringBuilder();
- if (admins.isEmpty()){
- builder.append("无").append('\n');
- }
- for (Long admin : admins) {
- builder.append('\t').append(admin).append('\n');
- }
- int lastLine = builder.lastIndexOf("\n");
- builder.deleteCharAt(lastLine);
- return builder;
- }
}
diff --git a/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java b/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java
index 57e5094..c27ce4f 100644
--- a/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java
+++ b/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java
@@ -1,10 +1,10 @@
package cn.wzpmc.builtin.commands;
-import cn.wzpmc.api.commands.BrigadierCommand;
-import cn.wzpmc.api.entities.Ops;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.user.CommandSender;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.commands.BrigadierCommand;
+import cn.wzpmc.entities.Ops;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.user.CommandSender;
+import cn.wzpmc.user.IBot;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import lombok.RequiredArgsConstructor;
@@ -12,6 +12,7 @@ import java.util.Set;
/**
* /stop指令
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午2:26
@@ -19,6 +20,7 @@ import java.util.Set;
@RequiredArgsConstructor
public class StopCommand implements BrigadierCommand {
private final IBot bot;
+
@Override
public LiteralArgumentBuilder getCommandNode() {
return LiteralArgumentBuilder.literal("stop")
diff --git a/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java b/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java
index 91ecdcd..8fa55e4 100644
--- a/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java
+++ b/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java
@@ -1,43 +1,45 @@
package cn.wzpmc.builtin.event;
-import cn.wzpmc.api.events.message.group.GroupMessageEvent;
-import cn.wzpmc.api.events.message.priv.PrivateMessageEvent;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.plugins.event.EventHandler;
-import cn.wzpmc.api.user.Friend;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.group.GroupCommandSender;
import cn.wzpmc.entities.user.bot.MyBot;
+import cn.wzpmc.events.message.group.GroupMessageEvent;
+import cn.wzpmc.events.message.priv.PrivateMessageEvent;
+import cn.wzpmc.message.StringMessage;
import cn.wzpmc.plugins.CommandManager;
+import cn.wzpmc.plugins.event.EventHandler;
+import cn.wzpmc.user.Friend;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.group.GroupCommandSender;
import java.util.regex.Pattern;
/**
* 命令事件处理器
+ *
* @author wzp
* @version 1.0.0
* @since 2024/8/25 13:40
*/
public class CommandEventHandler {
@EventHandler
- public void onGroupMessage(GroupMessageEvent event){
+ public void onGroupMessage(GroupMessageEvent event) {
GroupCommandSender groupCommandSender = GroupCommandSender.of(event);
IBot instance = MyBot.getInstance();
Long id = instance.getId();
String message = event.getRawMessage().getMessage();
Pattern compile = Pattern.compile("\\[CQ:at,qq=" + id + ".*?]\\s*?/.*");
- if (compile.asMatchPredicate().test(message)){
+ if (compile.asMatchPredicate().test(message)) {
CommandManager commandManager = (CommandManager) instance.getCommandManager();
commandManager.execute(groupCommandSender, message.replaceFirst("\\[CQ:at,qq=[0-9]{10}.*?]\\s*?/", ""));
}
}
+
@EventHandler
- public void onPrivateMessage(PrivateMessageEvent event){
+ public void onPrivateMessage(PrivateMessageEvent event) {
Friend sender = event.getSender();
IBot instance = MyBot.getInstance();
StringMessage rawMessage = event.getRawMessage();
String message = rawMessage.getMessage();
- if (message.startsWith("/")){
+ if (message.startsWith("/")) {
CommandManager commandManager = (CommandManager) instance.getCommandManager();
commandManager.execute(sender, message.replaceFirst("/", ""));
}
diff --git a/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java b/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java
index f7ce007..d44bc11 100644
--- a/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java
+++ b/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java
@@ -1,23 +1,26 @@
package cn.wzpmc.configuration;
-import cn.wzpmc.api.plugins.configuration.IAuthorizationConfiguration;
+import cn.wzpmc.plugins.configuration.IAuthorizationConfiguration;
import lombok.Data;
/**
* 通信验证配置类
+ *
* @author wzp
- * @since 2024/7/30 下午11:50
* @version 0.0.1-dev
+ * @since 2024/7/30 下午11:50
*/
@Data
public class AuthorizationConfiguration implements IAuthorizationConfiguration {
/**
* 是否启用
+ *
* @since 2024/7/30 下午11:50 v0.0.1-dev
*/
private boolean enable;
/**
* token
+ *
* @since 2024/7/30 下午11:50 v0.0.1-dev
*/
private String token;
diff --git a/src/main/java/cn/wzpmc/configuration/Configuration.java b/src/main/java/cn/wzpmc/configuration/Configuration.java
index 3a010a3..bee90bc 100644
--- a/src/main/java/cn/wzpmc/configuration/Configuration.java
+++ b/src/main/java/cn/wzpmc/configuration/Configuration.java
@@ -1,28 +1,32 @@
package cn.wzpmc.configuration;
-import cn.wzpmc.api.plugins.configuration.IConfiguration;
+import cn.wzpmc.plugins.configuration.IConfiguration;
import lombok.Data;
/**
* 配置类
+ *
* @author wzp
- * @since 2024/7/30 下午11:48
* @version 0.0.1-dev
+ * @since 2024/7/30 下午11:48
*/
@Data
public class Configuration implements IConfiguration {
/**
* WebSocket连接URL
+ *
* @since 2024/7/30 下午11:48 v0.0.1-dev
*/
private String websocket;
/**
* 通信验证
+ *
* @since 2024/7/30 下午11:49 v0.0.1-dev
*/
private AuthorizationConfiguration authorization;
/**
* 失败消息提示
+ *
* @since 2024/7/30 下午11:49 v0.0.1-dev
*/
private FallbackConfiguration fallback;
diff --git a/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java b/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java
index 8ffc946..1f87b3e 100644
--- a/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java
+++ b/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java
@@ -1,23 +1,26 @@
package cn.wzpmc.configuration;
-import cn.wzpmc.api.plugins.configuration.IFallbackConfiguration;
+import cn.wzpmc.plugins.configuration.IFallbackConfiguration;
import lombok.Data;
/**
* 当失败时报错消息配置实现
+ *
* @author wzp
- * @since 2024/7/31 上午3:44
* @version 0.0.1-dev
+ * @since 2024/7/31 上午3:44
*/
@Data
public class FallbackConfiguration implements IFallbackConfiguration {
/**
* 当指令执行失败时
+ *
* @since 2024/7/31 上午3:44 v0.0.1-dev
*/
private String command;
/**
* 当出现未捕获的异常时
+ *
* @since 2024/7/31 上午3:44 v0.0.1-dev
*/
private String errorUncaught;
diff --git a/src/main/java/cn/wzpmc/console/MyBotConsole.java b/src/main/java/cn/wzpmc/console/MyBotConsole.java
index 160ad41..43bacc2 100644
--- a/src/main/java/cn/wzpmc/console/MyBotConsole.java
+++ b/src/main/java/cn/wzpmc/console/MyBotConsole.java
@@ -12,6 +12,7 @@ import org.jline.reader.LineReaderBuilder;
/**
* 主控制台
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/7/31 下午9:47
@@ -19,12 +20,13 @@ import org.jline.reader.LineReaderBuilder;
@Log4j2
@RequiredArgsConstructor
public class MyBotConsole extends SimpleTerminalConsole {
- @Getter
- private boolean running = true;
private final MyBot bot;
private final CommandManager commandManager;
private final WebSocketConnectionHandler webSocketConnectionHandler;
- public MyBotConsole(MyBot bot, WebSocketConnectionHandler webSocketConnectionHandler){
+ @Getter
+ private boolean running = true;
+
+ public MyBotConsole(MyBot bot, WebSocketConnectionHandler webSocketConnectionHandler) {
this.bot = bot;
this.commandManager = bot.getCommandManager();
this.webSocketConnectionHandler = webSocketConnectionHandler;
diff --git a/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java b/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java
index 5b997ab..de47891 100644
--- a/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java
+++ b/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java
@@ -1,7 +1,7 @@
package cn.wzpmc.console.logger;
-import cn.wzpmc.api.plugins.BasePlugin;
-import cn.wzpmc.api.plugins.IPluginClassLoader;
+import cn.wzpmc.plugins.BasePlugin;
+import cn.wzpmc.plugins.IPluginClassLoader;
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.message.MessageFactory;
@@ -11,22 +11,25 @@ import static org.apache.logging.log4j.spi.AbstractLogger.DEFAULT_FLOW_MESSAGE_F
/**
* 插件消息工厂
+ *
* @author wzp
* @version 0.0.4-dev
* @since 2024/8/9 00:35
*/
public class PluginMessageFactory implements MessageFactory {
- private final String tag;
private static final MessageFactory baseFactory;
static {
try {
baseFactory = (MessageFactory) DEFAULT_FLOW_MESSAGE_FACTORY_CLASS.getConstructor().newInstance();
- } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
+ } catch (InstantiationException | IllegalAccessException | NoSuchMethodException |
+ InvocationTargetException e) {
throw new RuntimeException(e);
}
}
+ private final String tag;
+
public PluginMessageFactory(BasePlugin plugin) {
IPluginClassLoader classLoader = plugin.getClassLoader();
String name = classLoader.getName();
diff --git a/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java b/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java
index f295fed..f3d631b 100644
--- a/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java
+++ b/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java
@@ -1,26 +1,29 @@
package cn.wzpmc.entities.api;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.ActionResponse;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.ActionResponse;
import lombok.Data;
import java.util.concurrent.CompletableFuture;
/**
* api返回需求
+ *
* @author wzp
- * @since 2024/8/16 22:08
* @version 0.0.5-dev
+ * @since 2024/8/16 22:08
*/
@Data
public class ApiResponseRequired {
/**
* 请求返回Promise
+ *
* @since 2024/8/23 21:46 v0.0.5-dev
*/
private final CompletableFuture> future;
/**
* 请求体
+ *
* @since 2024/8/23 21:47 v0.0.5-dev
*/
private final Action request;
diff --git a/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java b/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java
index c514c04..1d96090 100644
--- a/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java
+++ b/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java
@@ -6,6 +6,7 @@ import java.lang.reflect.Method;
/**
* 事件处理器
+ *
* @author wzp
* @version 0.0.4-dev
* @since 2024/8/15 23:53
@@ -14,11 +15,13 @@ import java.lang.reflect.Method;
public class EventHandlerMethod {
/**
* 处理器类
+ *
* @since 2024/8/23 21:47 v0.0.5-dev
*/
private final Object object;
/**
* 处理的方法
+ *
* @since 2024/8/23 21:47 v0.0.5-dev
*/
private final Method method;
diff --git a/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java b/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java
index 4bc8360..d784f6a 100644
--- a/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java
+++ b/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java
@@ -1,25 +1,25 @@
package cn.wzpmc.entities.user.bot;
-import cn.wzpmc.api.api.ActionResponse;
-import cn.wzpmc.api.api.IMainApi;
-import cn.wzpmc.api.api.actions.message.get.GetGroupListAction;
-import cn.wzpmc.api.entities.GroupInformation;
-import cn.wzpmc.api.entities.Ops;
-import cn.wzpmc.api.events.Event;
-import cn.wzpmc.api.message.MessageComponent;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.message.json.JsonMessage;
-import cn.wzpmc.api.plugins.BasePlugin;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.permission.Permissions;
-import cn.wzpmc.api.utils.IncreasbleHashMap;
+import cn.wzpmc.api.ActionResponse;
+import cn.wzpmc.api.IMainApi;
+import cn.wzpmc.api.actions.message.get.GetGroupListAction;
import cn.wzpmc.configuration.Configuration;
import cn.wzpmc.console.MyBotConsole;
+import cn.wzpmc.entities.GroupInformation;
+import cn.wzpmc.entities.Ops;
import cn.wzpmc.entities.event.EventHandlerMethod;
+import cn.wzpmc.events.Event;
+import cn.wzpmc.message.MessageComponent;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.message.json.JsonMessage;
import cn.wzpmc.network.WebSocketConnectionHandler;
+import cn.wzpmc.plugins.BasePlugin;
import cn.wzpmc.plugins.CommandManager;
import cn.wzpmc.plugins.PluginManager;
import cn.wzpmc.plugins.api.MainApi;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.permission.Permissions;
+import cn.wzpmc.utils.IncreasbleHashMap;
import cn.wzpmc.utils.ReflectionUtils;
import com.alibaba.fastjson2.JSON;
import lombok.Getter;
@@ -39,31 +39,33 @@ import java.util.Set;
/**
* 机器人实现类
+ *
* @author wzp
- * @since 2024/7/30 下午11:46
* @version 0.0.1-dev
+ * @since 2024/7/30 下午11:46
*/
@Log4j2
@Getter
public class MyBot extends IBot {
private final Configuration configuration;
+ private final CommandManager commandManager = new CommandManager(this);
+ private final PluginManager pluginManager = new PluginManager();
+ private final IncreasbleHashMap, EventHandlerMethod> events = new IncreasbleHashMap<>();
+ @Getter
+ private final Ops ops;
+ private final File opFile;
@Setter
private Long id;
@Setter
private String name;
- private final CommandManager commandManager = new CommandManager(this);
- private final PluginManager pluginManager = new PluginManager();
- private final IncreasbleHashMap, EventHandlerMethod> events = new IncreasbleHashMap<>();
private File pluginsFolder;
@Setter
private MyBotConsole console = null;
@Getter
private IMainApi mainApi;
private WebSocketConnectionHandler connectionHandler;
- @Getter
- private final Ops ops;
- private final File opFile;
- public MyBot(Configuration configuration){
+
+ public MyBot(Configuration configuration) {
Ops opsTmp;
this.configuration = configuration;
this.permissions = Permissions.ADMIN;
@@ -75,18 +77,18 @@ public class MyBot extends IBot {
log.error("无法创建OP文件!");
}
} catch (IOException e) {
- log.error("创建OP文件失败!",e);
+ log.error("创建OP文件失败!", e);
throw new RuntimeException(e);
}
} else {
- try(FileInputStream fis = new FileInputStream(this.opFile)) {
+ try (FileInputStream fis = new FileInputStream(this.opFile)) {
opsTmp = JSON.parseObject(fis, Ops.class);
} catch (IOException e) {
log.error("读取OP文件失败!");
throw new RuntimeException(e);
}
}
- if (opsTmp == null){
+ if (opsTmp == null) {
opsTmp = new Ops();
}
this.ops = opsTmp;
@@ -94,10 +96,10 @@ public class MyBot extends IBot {
@Override
public void sendMessage(MessageComponent messageComponent) {
- if (messageComponent instanceof StringMessage){
+ if (messageComponent instanceof StringMessage) {
log.info(messageComponent.toMessageString());
}
- if (messageComponent instanceof JsonMessage){
+ if (messageComponent instanceof JsonMessage) {
log.info(((JsonMessage) messageComponent).toTextDisplay());
}
}
@@ -121,15 +123,16 @@ public class MyBot extends IBot {
@Override
public void triggerEvent(Event event) throws InvocationTargetException, IllegalAccessException {
List eventHandlerMethods = this.events.get(event.getClass());
- if (eventHandlerMethods == null){
+ if (eventHandlerMethods == null) {
return;
}
for (EventHandlerMethod eventHandlerMethod : eventHandlerMethods) {
eventHandlerMethod.getMethod().invoke(eventHandlerMethod.getObject(), event);
}
}
+
public void setPluginsFolder(File pluginsFolder) {
- if (this.pluginsFolder != null){
+ if (this.pluginsFolder != null) {
throw new IllegalStateException("This bot already initialized!");
}
this.pluginsFolder = pluginsFolder;
@@ -175,7 +178,7 @@ public class MyBot extends IBot {
public boolean removeOp(Long groupId, Long userId) {
boolean groupAdmin = this.ops.isAdmin(groupId, userId);
boolean admin = this.ops.isAdmin(userId);
- if (!groupAdmin && !admin){
+ if (!groupAdmin && !admin) {
return false;
}
Map> admins = this.ops.getGroupAdmins();
@@ -206,7 +209,7 @@ public class MyBot extends IBot {
}
private void flushOpsFile() {
- try(FileOutputStream fos = new FileOutputStream(this.opFile)){
+ try (FileOutputStream fos = new FileOutputStream(this.opFile)) {
JSON.writeTo(fos, this.ops);
} catch (IOException e) {
log.error("写入OP文件失败!", e);
diff --git a/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java b/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java
index db8de59..50bf835 100644
--- a/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java
+++ b/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java
@@ -12,6 +12,7 @@ import java.util.concurrent.CompletableFuture;
/**
* 握手包处理器
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午3:53
@@ -29,6 +30,7 @@ public class HandshakePacketHandler extends SimpleChannelInboundHandler {
private final IBot bot;
+ private final ExecutorService threadPool = Executors.newFixedThreadPool(4);
+
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame webSocketFrame) {
String text = webSocketFrame.text();
// System.out.println(text);
- if (!JSON.isValidObject(text)){
+ if (!JSON.isValidObject(text)) {
log.warn("收到了无法处理的WebSocket数据包:{}", text);
return;
}
@@ -45,15 +48,15 @@ public class PacketHandler extends SimpleChannelInboundHandler {
try {
@@ -67,13 +70,14 @@ public class PacketHandler extends SimpleChannelInboundHandler 请求类型
+ * @param 返回类型
* @author wzp
* @since 2024/8/23 21:48 v0.0.5-dev
- * @param dataString 返回json文本
- * @param 请求类型
- * @param 返回类型
*/
- private void handleApiEcho(String dataString){
+ private void handleApiEcho(String dataString) {
//noinspection unchecked
ActionResponse actionResponse = JSON.parseObject(dataString, ActionResponse.class);
UUID echo = actionResponse.getEcho();
@@ -89,13 +93,14 @@ public class PacketHandler extends SimpleChannelInboundHandler 请求体类型
+ * @param 返回类型
* @author wzp
* @since 2024/8/23 21:48 v0.0.5-dev
- * @param echo 回调ID
- * @param responsePromise 返回Promise
- * @param request 请求体
- * @param 请求体类型
- * @param 返回类型
*/
public void registerResponse(UUID echo, CompletableFuture> responsePromise, Action request) {
ActionReader.tasks.put(echo, new ApiResponseRequired<>(responsePromise, request));
diff --git a/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java b/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java
index e0470a7..578767a 100644
--- a/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java
+++ b/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java
@@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
/**
* WebSocket连接初始化
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午1:19
@@ -19,6 +20,7 @@ import lombok.RequiredArgsConstructor;
public class WebSocketChannelInitializer extends ChannelInitializer {
private final ChannelHandler handler;
private final HandshakePacketHandler handshakePacketHandler;
+
@Override
protected void initChannel(SocketChannel socketChannel) {
ChannelPipeline pipeline = socketChannel.pipeline();
diff --git a/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java b/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java
index 424ae95..9355798 100644
--- a/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java
+++ b/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java
@@ -1,8 +1,8 @@
package cn.wzpmc.network;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.ActionResponse;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.ActionResponse;
+import cn.wzpmc.user.IBot;
import com.alibaba.fastjson2.JSON;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelFuture;
@@ -23,6 +23,7 @@ import java.util.concurrent.ExecutionException;
/**
* 此类用于建立WebSocket连接
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/30 下午11:54
@@ -35,13 +36,15 @@ public class WebSocketConnectionHandler {
private ChannelFuture channelFuture;
private PacketHandler packetHandler;
private HandshakePacketHandler handshakePacketHandler;
+
/**
* 建立连接
+ *
+ * @param websocket websocket连接地址
* @author wzp
* @since 2024/7/30 下午11:55 v0.0.1-dev
- * @param websocket websocket连接地址
*/
- public void connect(URI websocket){
+ public void connect(URI websocket) {
log.info("正在连接websocket");
Bootstrap bootstrap = new Bootstrap();
WebSocketClientHandshaker clientHandshaker = WebSocketClientHandshakerFactory.newHandshaker(websocket, WebSocketVersion.V13, null, false, new DefaultHttpHeaders());
@@ -53,23 +56,25 @@ public class WebSocketConnectionHandler {
/**
* 强制结束通信
+ *
* @author wzp
* @since 2024/7/31 上午2:04 v0.0.1-dev
*/
- public void kill(){
+ public void kill() {
log.info("结束连接...");
this.eventLoopGroup.shutdownGracefully();
}
/**
* 发送请求
+ *
+ * @param request 请求
+ * @param 请求体类型
+ * @param 返回类型
+ * @return 返回
+ * @throws InterruptedException 当请求进行时按下Ctrl+C时抛出
* @author wzp
* @since 2024/8/23 21:49 v0.0.5-dev
- * @param request 请求
- * @return 返回
- * @param 请求体类型
- * @param 返回类型
- * @throws InterruptedException 当请求进行时按下Ctrl+C时抛出
*/
public ActionResponse sendRequest(Action request) throws InterruptedException {
try {
diff --git a/src/main/java/cn/wzpmc/plugins/CommandManager.java b/src/main/java/cn/wzpmc/plugins/CommandManager.java
index 15c22d5..5aa6ca5 100644
--- a/src/main/java/cn/wzpmc/plugins/CommandManager.java
+++ b/src/main/java/cn/wzpmc/plugins/CommandManager.java
@@ -1,11 +1,10 @@
package cn.wzpmc.plugins;
-import cn.wzpmc.api.commands.BrigadierCommand;
-import cn.wzpmc.api.commands.RawCommand;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.plugins.ICommandManager;
-import cn.wzpmc.api.user.CommandSender;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.commands.BrigadierCommand;
+import cn.wzpmc.commands.RawCommand;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.user.CommandSender;
+import cn.wzpmc.user.IBot;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.ParseResults;
import com.mojang.brigadier.context.ParsedCommandNode;
@@ -32,57 +31,52 @@ import java.util.stream.Collectors;
/**
* 指令管理器实现类
+ *
* @author wzp
* @version 0.0.1-dev
* @since 2024/7/31 上午3:13
*/
@Log4j2
public class CommandManager implements ICommandManager, Completer, Highlighter {
+ private static final int[] COLORS = {AttributedStyle.CYAN, AttributedStyle.YELLOW, AttributedStyle.GREEN, AttributedStyle.MAGENTA, AttributedStyle.BLUE};
@Getter
private final CommandDispatcher dispatcher = new CommandDispatcher<>();
@Getter
private final ConcurrentHashMap rawCommands = new ConcurrentHashMap<>();
- private static final int[] COLORS = {AttributedStyle.CYAN, AttributedStyle.YELLOW, AttributedStyle.GREEN, AttributedStyle.MAGENTA, AttributedStyle.BLUE};
private final IBot bot;
+
public CommandManager(IBot bot) {
this.bot = bot;
}
+
@Override
public void registerCommand(RawCommand rawCommand, String name) {
- if (rawCommands.containsKey(name)){
+ if (rawCommands.containsKey(name)) {
log.error("指令{}已经被注册,注册失败!", name);
return;
}
this.rawCommands.put(name, rawCommand);
}
+
@Override
- public void registerCommand(BrigadierCommand brigadierCommand){
+ public void registerCommand(BrigadierCommand brigadierCommand) {
dispatcher.register(brigadierCommand.getCommandNode());
}
- @ToString
- private static final class CommandPart {
- private final String name;
- private final List args;
- public CommandPart(String rawCommandLine) {
- List list = Arrays.asList(rawCommandLine.split(" "));
- this.name = list.get(0);
- this.args = list.subList(1, list.size());
- }
- }
/**
* 执行指令
- * @author wzp
- * @since 2024/7/31 上午3:35 v0.0.1-dev
- * @param sender 发送者
+ *
+ * @param sender 发送者
* @param rawCommandLine 完整命令行
* @return 是否执行成功
+ * @author wzp
+ * @since 2024/7/31 上午3:35 v0.0.1-dev
*/
- public boolean execute(CommandSender sender, String rawCommandLine){
+ public boolean execute(CommandSender sender, String rawCommandLine) {
CommandPart commandPart = new CommandPart(rawCommandLine);
if (rawCommands.containsKey(commandPart.name)) {
return rawCommands.get(commandPart.name).onExecute(sender, commandPart.args);
- }else {
+ } else {
try {
dispatcher.execute(rawCommandLine, sender);
} catch (CommandSyntaxException e) {
@@ -99,15 +93,16 @@ public class CommandManager implements ICommandManager, Completer, Highlighter {
/**
* tab补全的结果
+ *
+ * @param sender 消息发送者
+ * @param rawCommandLine 完整命令行
+ * @param cursor 当前光标位置
+ * @return 所有被补全的指令
* @author wzp
* @since 2024/7/31 上午3:36 v0.0.1-dev
- * @param sender 消息发送者
- * @param rawCommandLine 完整命令行
- * @param cursor 当前光标位置
- * @return 所有被补全的指令
*/
@SneakyThrows
- public List tabComplete(CommandSender sender, String rawCommandLine, int cursor){
+ public List tabComplete(CommandSender sender, String rawCommandLine, int cursor) {
CommandPart commandPart = new CommandPart(rawCommandLine);
List result = new ArrayList<>();
if (rawCommands.containsKey(commandPart.name)) {
@@ -115,7 +110,7 @@ public class CommandManager implements ICommandManager, Completer, Highlighter {
}
for (Map.Entry stringRawCommandEntry : rawCommands.entrySet()) {
String key = stringRawCommandEntry.getKey();
- if (key.contains(commandPart.name)){
+ if (key.contains(commandPart.name)) {
result.add(key);
}
}
@@ -136,12 +131,12 @@ public class CommandManager implements ICommandManager, Completer, Highlighter {
final AttributedStringBuilder builder = new AttributedStringBuilder();
String[] strings = s.split(" ");
String commandName = strings[0];
- if (rawCommands.containsKey(commandName)){
+ if (rawCommands.containsKey(commandName)) {
builder.append(commandName, AttributedStyle.DEFAULT.foreground(AttributedStyle.GREEN)).append(' ');
for (int i = 1; i < strings.length; i++) {
builder.append(strings[i]).append(' ');
}
- }else {
+ } else {
final ParseResults results = this.dispatcher.parse(s, this.bot);
int pos = 0;
if (s.startsWith("/")) {
@@ -174,8 +169,22 @@ public class CommandManager implements ICommandManager, Completer, Highlighter {
}
@Override
- public void setErrorPattern(Pattern pattern) {}
+ public void setErrorPattern(Pattern pattern) {
+ }
@Override
- public void setErrorIndex(int i) {}
+ public void setErrorIndex(int i) {
+ }
+
+ @ToString
+ private static final class CommandPart {
+ private final String name;
+ private final List args;
+
+ public CommandPart(String rawCommandLine) {
+ List list = Arrays.asList(rawCommandLine.split(" "));
+ this.name = list.get(0);
+ this.args = list.subList(1, list.size());
+ }
+ }
}
diff --git a/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java b/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java
index 2d5c1e4..c443434 100644
--- a/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java
+++ b/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java
@@ -1,8 +1,6 @@
package cn.wzpmc.plugins;
-import cn.wzpmc.api.plugins.BasePlugin;
-import cn.wzpmc.api.plugins.IPluginClassLoader;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.user.IBot;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
@@ -12,6 +10,7 @@ import java.util.Objects;
/**
* 插件类加载器实现
+ *
* @author wzp
* @version 0.0.2-dev
* @since 2024/7/31 下午7:12
@@ -24,12 +23,14 @@ public class PluginClassLoader extends IPluginClassLoader {
private BasePlugin plugin;
private String name;
private String version;
+
public PluginClassLoader(URL[] urls, IBot bot) {
super(urls);
this.bot = bot;
}
- public void setPlugin(BasePlugin plugin, String name, String version){
- if (Objects.isNull(this.plugin)){
+
+ public void setPlugin(BasePlugin plugin, String name, String version) {
+ if (Objects.isNull(this.plugin)) {
this.plugin = plugin;
this.name = name;
this.version = version;
diff --git a/src/main/java/cn/wzpmc/plugins/PluginManager.java b/src/main/java/cn/wzpmc/plugins/PluginManager.java
index cbac7ac..5d3502b 100644
--- a/src/main/java/cn/wzpmc/plugins/PluginManager.java
+++ b/src/main/java/cn/wzpmc/plugins/PluginManager.java
@@ -1,7 +1,5 @@
package cn.wzpmc.plugins;
-import cn.wzpmc.api.plugins.BasePlugin;
-import cn.wzpmc.api.plugins.IPluginManager;
import lombok.Getter;
import java.lang.reflect.Constructor;
@@ -12,20 +10,22 @@ import java.util.Objects;
/**
* 插件管理器
+ *
* @author wzp
- * @since 2024/8/4 下午2:38
* @version 0.0.4-dev
+ * @since 2024/8/4 下午2:38
*/
@Getter
public class PluginManager implements IPluginManager {
private final List plugins = new ArrayList<>();
+
public T initPlugin(Class baseClass, String name, String version) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
ClassLoader loader = baseClass.getClassLoader();
- if (!(loader instanceof PluginClassLoader)){
+ if (!(loader instanceof PluginClassLoader)) {
throw new IllegalArgumentException("baseClass " + baseClass.getName() + " must be loaded with plugin class loader!!!");
}
PluginClassLoader pluginClassLoader = (PluginClassLoader) loader;
- if (Objects.nonNull(pluginClassLoader.getPlugin())){
+ if (Objects.nonNull(pluginClassLoader.getPlugin())) {
throw new IllegalStateException("baseClass " + baseClass.getName() + " has already been initialization!!!");
}
Constructor constructor = baseClass.getConstructor();
diff --git a/src/main/java/cn/wzpmc/plugins/api/MainApi.java b/src/main/java/cn/wzpmc/plugins/api/MainApi.java
index 60446c3..1f226bb 100644
--- a/src/main/java/cn/wzpmc/plugins/api/MainApi.java
+++ b/src/main/java/cn/wzpmc/plugins/api/MainApi.java
@@ -1,10 +1,10 @@
package cn.wzpmc.plugins.api;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.ActionResponse;
-import cn.wzpmc.api.api.IMainApi;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.ActionResponse;
+import cn.wzpmc.api.IMainApi;
import cn.wzpmc.network.WebSocketConnectionHandler;
+import cn.wzpmc.user.IBot;
import lombok.RequiredArgsConstructor;
/**
diff --git a/src/main/java/cn/wzpmc/utils/JsonUtils.java b/src/main/java/cn/wzpmc/utils/JsonUtils.java
index 33c72a0..08cf06f 100644
--- a/src/main/java/cn/wzpmc/utils/JsonUtils.java
+++ b/src/main/java/cn/wzpmc/utils/JsonUtils.java
@@ -1,20 +1,20 @@
package cn.wzpmc.utils;
-import cn.wzpmc.api.api.ActionResponse;
-import cn.wzpmc.api.api.Actions;
-import cn.wzpmc.api.entities.HonorType;
-import cn.wzpmc.api.events.Event;
-import cn.wzpmc.api.events.message.MessageEvent;
-import cn.wzpmc.api.events.meta.MetaEvent;
-import cn.wzpmc.api.events.notice.NoticeEvent;
-import cn.wzpmc.api.events.notice.notify.NotifyEvent;
-import cn.wzpmc.api.events.request.RequestEvent;
-import cn.wzpmc.api.message.StringMessage;
-import cn.wzpmc.api.message.json.JsonMessage;
-import cn.wzpmc.api.user.Friend;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.IUser;
-import cn.wzpmc.api.user.group.GroupUser;
+import cn.wzpmc.api.ActionResponse;
+import cn.wzpmc.api.Actions;
+import cn.wzpmc.entities.HonorType;
+import cn.wzpmc.events.Event;
+import cn.wzpmc.events.message.MessageEvent;
+import cn.wzpmc.events.meta.MetaEvent;
+import cn.wzpmc.events.notice.NoticeEvent;
+import cn.wzpmc.events.notice.notify.NotifyEvent;
+import cn.wzpmc.events.request.RequestEvent;
+import cn.wzpmc.message.StringMessage;
+import cn.wzpmc.message.json.JsonMessage;
+import cn.wzpmc.user.Friend;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.IUser;
+import cn.wzpmc.user.group.GroupUser;
import cn.wzpmc.utils.json.action.ActionReader;
import cn.wzpmc.utils.json.action.ActionWriter;
import cn.wzpmc.utils.json.event.*;
@@ -30,6 +30,7 @@ import com.alibaba.fastjson2.JSON;
/**
* JSON相关工具类
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午2:04
@@ -37,6 +38,7 @@ import com.alibaba.fastjson2.JSON;
public class JsonUtils {
/**
* 初始化JSON反序列化相关
+ *
* @author wzp
* @since 2024/8/23 21:50 v0.0.5-dev
*/
@@ -48,6 +50,7 @@ public class JsonUtils {
/**
* 初始化JSON序列化相关
+ *
* @author wzp
* @since 2024/8/23 21:50 v0.0.5-dev
*/
diff --git a/src/main/java/cn/wzpmc/utils/ReflectionUtils.java b/src/main/java/cn/wzpmc/utils/ReflectionUtils.java
index 18152e6..602e971 100644
--- a/src/main/java/cn/wzpmc/utils/ReflectionUtils.java
+++ b/src/main/java/cn/wzpmc/utils/ReflectionUtils.java
@@ -1,12 +1,10 @@
package cn.wzpmc.utils;
-import cn.wzpmc.api.events.Event;
-import cn.wzpmc.api.plugins.BasePlugin;
-import cn.wzpmc.api.plugins.IPluginManager;
-import cn.wzpmc.api.plugins.event.EventHandler;
-import cn.wzpmc.api.utils.IncreasbleHashMap;
-import cn.wzpmc.api.utils.IncreasbleMap;
import cn.wzpmc.entities.event.EventHandlerMethod;
+import cn.wzpmc.events.Event;
+import cn.wzpmc.plugins.BasePlugin;
+import cn.wzpmc.plugins.IPluginManager;
+import cn.wzpmc.plugins.event.EventHandler;
import com.alibaba.fastjson2.JSONObject;
import lombok.extern.log4j.Log4j2;
import org.yaml.snakeyaml.Yaml;
@@ -24,17 +22,18 @@ import java.util.jar.JarFile;
/**
* 反射工具类
+ *
* @author wzp
- * @since 2024/8/5 上午1:42
* @version 0.0.4-dev
+ * @since 2024/8/5 上午1:42
*/
@Log4j2
public class ReflectionUtils {
- public static BasePlugin load(URLClassLoader loader, File file, IPluginManager pluginManager){
+ public static BasePlugin load(URLClassLoader loader, File file, IPluginManager pluginManager) {
String absolutePath = file.getAbsolutePath();
- try(JarFile jarFile = new JarFile(file)){
+ try (JarFile jarFile = new JarFile(file)) {
Optional first = jarFile.stream().filter((e) -> "plugin.yml".equals(e.getName())).findFirst();
- if (first.isEmpty()){
+ if (first.isEmpty()) {
log.error("cannot find plugin.yml in plugin {}", absolutePath);
return null;
}
@@ -44,7 +43,7 @@ public class ReflectionUtils {
String main = jsonObject.getString("main");
String version = jsonObject.getString("version");
String name = jsonObject.getString("name");
- try{
+ try {
Class> aClass = loader.loadClass(main);
if (!BasePlugin.class.isAssignableFrom(aClass)) {
log.error("插件{}-{}的主类{}未继承cn.wzpmc.api.plugins.JavaPlugin", name, version, main);
@@ -60,7 +59,7 @@ public class ReflectionUtils {
log.error(e);
return null;
}
- }catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
log.error("无法为插件{}-{}加载主类{}!", name, version, main);
return null;
}
@@ -70,17 +69,18 @@ public class ReflectionUtils {
return null;
}
}
- public static IncreasbleMap, EventHandlerMethod, List> loadEvents(Object eventHandlerObject){
+
+ public static IncreasbleMap, EventHandlerMethod, List> loadEvents(Object eventHandlerObject) {
Class> eventHandlerClass = eventHandlerObject.getClass();
IncreasbleMap, EventHandlerMethod, List> result = new IncreasbleHashMap<>();
for (Method declaredMethod : eventHandlerClass.getDeclaredMethods()) {
declaredMethod.setAccessible(true);
- if (!declaredMethod.isAnnotationPresent(EventHandler.class)){
+ if (!declaredMethod.isAnnotationPresent(EventHandler.class)) {
continue;
}
if (declaredMethod.getParameterCount() == 1) {
Class> eventType = declaredMethod.getParameterTypes()[0];
- if (Event.class.isAssignableFrom(eventType)){
+ if (Event.class.isAssignableFrom(eventType)) {
//noinspection unchecked
result.add((Class extends Event>) eventType, new EventHandlerMethod(eventHandlerObject, declaredMethod));
continue;
diff --git a/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java b/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java
index c7ce6a3..357a574 100644
--- a/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java
+++ b/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java
@@ -6,32 +6,34 @@ import java.io.*;
/**
* 模板文件工具类
+ *
* @author wzp
- * @since 2024/07/30 23:28:25
* @version 0.0.1-dev
+ * @since 2024/07/30 23:28:25
*/
@Log4j2
public class TemplateFileUtils {
/**
* 写入默认配置文件
+ *
* @param loader 读取默认配置所使用的类加载器
- * @param path 默认配置的路径
- * @param saved 保存到的文件
+ * @param path 默认配置的路径
+ * @param saved 保存到的文件
* @return 是否写入
*/
- public static boolean saveDefaultConfig(ClassLoader loader, String path, File saved){
+ public static boolean saveDefaultConfig(ClassLoader loader, String path, File saved) {
log.debug("创建默认配置文件从ClassLoader {} -> {} ==> {}", loader, path, saved);
- try(InputStream sourceInputStream = loader.getResourceAsStream(path)){
- if (sourceInputStream == null){
+ try (InputStream sourceInputStream = loader.getResourceAsStream(path)) {
+ if (sourceInputStream == null) {
throw new RuntimeException(new FileNotFoundException("Didn't find " + path + " from class loader: " + loader.getName()));
}
- if (saved.exists()){
+ if (saved.exists()) {
return false;
}
if (!saved.createNewFile()) {
throw new IOException("Cannot create file " + saved.getAbsolutePath());
}
- try(FileOutputStream targetFileStream = new FileOutputStream(saved)){
+ try (FileOutputStream targetFileStream = new FileOutputStream(saved)) {
sourceInputStream.transferTo(targetFileStream);
}
return true;
@@ -43,16 +45,17 @@ public class TemplateFileUtils {
/**
* 创建默认文件夹,当其不存在时会被创建
- * @author wzp
- * @since 2024/8/4 下午2:36 v0.0.4-dev
+ *
* @param path 文件夹路径
* @return 是否创建
+ * @author wzp
+ * @since 2024/8/4 下午2:36 v0.0.4-dev
*/
- public static boolean createDefaultDirectory(File path){
- log.debug("创建文件夹:{}", path.getAbsolutePath());
- if (path.isDirectory()){
- return false;
- }
+ public static boolean createDefaultDirectory(File path) {
+ log.debug("创建文件夹:{}", path.getAbsolutePath());
+ if (path.isDirectory()) {
+ return false;
+ }
if (path.mkdir()) {
return true;
}
diff --git a/src/main/java/cn/wzpmc/utils/YamlUtils.java b/src/main/java/cn/wzpmc/utils/YamlUtils.java
index ea3b2e3..511ba5c 100644
--- a/src/main/java/cn/wzpmc/utils/YamlUtils.java
+++ b/src/main/java/cn/wzpmc/utils/YamlUtils.java
@@ -10,22 +10,24 @@ import java.io.IOException;
/**
* Yaml工具类
+ *
* @author wzp
- * @since 2024/7/30 下午11:46
* @version 0.0.1-dev
+ * @since 2024/7/30 下午11:46
*/
@Log4j2
public class YamlUtils {
/**
* 读取Yaml文件并将其序列化为一个类
- * @param file yaml文件
+ *
+ * @param file yaml文件
* @param clazz 需要序列化的类
+ * @param 序列化的类型(需要空参构造方法)
* @return 一个对象
- * @param 序列化的类型(需要空参构造方法)
*/
- public static T readYamlFile(File file, Class clazz){
+ public static T readYamlFile(File file, Class clazz) {
log.debug("读取Yaml文件 {},并写入到类 {}", file, clazz);
- try(FileInputStream fis = new FileInputStream(file)){
+ try (FileInputStream fis = new FileInputStream(file)) {
Yaml yaml = new Yaml();
return yaml.loadAs(fis, clazz);
} catch (IOException e) {
@@ -36,13 +38,14 @@ public class YamlUtils {
/**
* 将一个类序列化为Yaml文件
+ *
* @param file yaml文件
- * @param obj 数据类
- * @param 序列化的对象
+ * @param obj 数据类
+ * @param 序列化的对象
*/
- public static void writeYamlFile(File file, T obj){
+ public static void writeYamlFile(File file, T obj) {
log.debug("将对象:{} 写入Yaml文件:{}中", obj, file);
- try(FileWriter writer = new FileWriter(file)){
+ try (FileWriter writer = new FileWriter(file)) {
Yaml yaml = new Yaml();
yaml.dump(obj, writer);
} catch (IOException e) {
diff --git a/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java b/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java
index 0a9cf73..c694718 100644
--- a/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java
@@ -1,8 +1,8 @@
package cn.wzpmc.utils.json.action;
-import cn.wzpmc.api.api.Action;
-import cn.wzpmc.api.api.ActionResponse;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Action;
+import cn.wzpmc.api.ActionResponse;
+import cn.wzpmc.api.Actions;
import cn.wzpmc.entities.api.ApiResponseRequired;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
@@ -20,6 +20,7 @@ import java.util.concurrent.ConcurrentHashMap;
*/
public class ActionReader implements ObjectReader> {
public static final ConcurrentHashMap> tasks = new ConcurrentHashMap<>();
+
@Override
public ActionResponse> readObject(JSONReader jsonReader, Type type, Object o, long l) {
JSONObject jsonObject = jsonReader.readJSONObject();
@@ -30,12 +31,12 @@ public class ActionReader implements ObjectReader> {
String status = jsonObject.getString("status");
short retcode = jsonObject.getShort("retcode");
Object dataObj = null;
- if (action.array){
+ if (action.array) {
JSONArray data = jsonObject.getJSONArray("data");
dataObj = data.toJavaList(action.responseClass);
} else {
JSONObject data = jsonObject.getJSONObject("data");
- if (data != null){
+ if (data != null) {
dataObj = data.to(action.responseClass);
}
}
diff --git a/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java b/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java
index 8425b8f..bc51adf 100644
--- a/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java
+++ b/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java
@@ -1,6 +1,6 @@
package cn.wzpmc.utils.json.action;
-import cn.wzpmc.api.api.Actions;
+import cn.wzpmc.api.Actions;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.writer.ObjectWriter;
diff --git a/src/main/java/cn/wzpmc/utils/json/event/EventReader.java b/src/main/java/cn/wzpmc/utils/json/event/EventReader.java
index 7958705..4972fe5 100644
--- a/src/main/java/cn/wzpmc/utils/json/event/EventReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/event/EventReader.java
@@ -1,7 +1,7 @@
package cn.wzpmc.utils.json.event;
-import cn.wzpmc.api.events.Event;
-import cn.wzpmc.api.events.EventPostType;
+import cn.wzpmc.events.Event;
+import cn.wzpmc.events.EventPostType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
* event类型JSON反序列化
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午2:07
diff --git a/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java
index a130af3..c8fbedd 100644
--- a/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java
@@ -1,7 +1,7 @@
package cn.wzpmc.utils.json.event;
-import cn.wzpmc.api.events.message.MessageEvent;
-import cn.wzpmc.api.events.message.MessageType;
+import cn.wzpmc.events.message.MessageEvent;
+import cn.wzpmc.events.message.MessageType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
* 消息事件反序列化
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午8:56
diff --git a/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java
index bc893fd..c83030f 100644
--- a/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java
@@ -1,7 +1,7 @@
package cn.wzpmc.utils.json.event;
-import cn.wzpmc.api.events.meta.MetaEvent;
-import cn.wzpmc.api.events.meta.MetaEventType;
+import cn.wzpmc.events.meta.MetaEvent;
+import cn.wzpmc.events.meta.MetaEventType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
* 元事件反序列化
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午8:56
diff --git a/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java
index c7eacae..c813227 100644
--- a/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java
@@ -1,7 +1,7 @@
package cn.wzpmc.utils.json.event;
-import cn.wzpmc.api.events.notice.NoticeEvent;
-import cn.wzpmc.api.events.notice.NoticeType;
+import cn.wzpmc.events.notice.NoticeEvent;
+import cn.wzpmc.events.notice.NoticeType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
* 提醒类型事件反序列化
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午8:48
diff --git a/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java
index 7983ea4..18490d9 100644
--- a/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java
@@ -1,7 +1,7 @@
package cn.wzpmc.utils.json.event;
-import cn.wzpmc.api.events.notice.notify.NotifyEvent;
-import cn.wzpmc.api.events.notice.notify.NotifySubType;
+import cn.wzpmc.events.notice.notify.NotifyEvent;
+import cn.wzpmc.events.notice.notify.NotifySubType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
* 群提醒事件反序列化
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午8:53
diff --git a/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java
index 91aec05..428c63e 100644
--- a/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java
@@ -1,7 +1,7 @@
package cn.wzpmc.utils.json.event;
-import cn.wzpmc.api.events.request.RequestEvent;
-import cn.wzpmc.api.events.request.RequestEventType;
+import cn.wzpmc.events.request.RequestEvent;
+import cn.wzpmc.events.request.RequestEventType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
* 请求事件反序列化
+ *
* @author wzp
* @version 0.0.3-dev
* @since 2024/8/2 下午8:56
diff --git a/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java b/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java
index 6966545..667f124 100644
--- a/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java
+++ b/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java
@@ -1,6 +1,6 @@
package cn.wzpmc.utils.json.honor;
-import cn.wzpmc.api.entities.HonorType;
+import cn.wzpmc.entities.HonorType;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.writer.ObjectWriter;
diff --git a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java
index 1984a93..dc55203 100644
--- a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java
@@ -1,8 +1,8 @@
package cn.wzpmc.utils.json.message;
-import cn.wzpmc.api.message.json.JsonMessage;
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.utils.CqCodeUtils;
+import cn.wzpmc.message.json.JsonMessage;
+import cn.wzpmc.message.json.JsonMessagePart;
+import cn.wzpmc.utils.CqCodeUtils;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
@@ -15,9 +15,10 @@ import java.util.List;
/**
* json消息解析器
+ *
* @author wzp
- * @since 2024/8/3 下午6:25
* @version 0.0.3-dev
+ * @since 2024/8/3 下午6:25
*/
@Log4j2
public class JsonMessageReader implements ObjectReader {
diff --git a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java
index 741d775..ffcb90d 100644
--- a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java
+++ b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java
@@ -1,6 +1,6 @@
package cn.wzpmc.utils.json.message;
-import cn.wzpmc.api.message.json.JsonMessage;
+import cn.wzpmc.message.json.JsonMessage;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.writer.ObjectWriter;
@@ -8,9 +8,11 @@ import java.lang.reflect.Type;
/**
* JSON格式消息反序列化
+ *
* @author wzp
+ * @version 0.0.3-dev
* @since 2024/8/3 下午6:28
- * @version 0.0.3-dev */
+ */
public class JsonMessageWriter implements ObjectWriter {
@Override
public void write(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) {
diff --git a/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java b/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java
index 60eaa63..fbcfea7 100644
--- a/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java
@@ -1,6 +1,6 @@
package cn.wzpmc.utils.json.message;
-import cn.wzpmc.api.message.StringMessage;
+import cn.wzpmc.message.StringMessage;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -9,13 +9,13 @@ import java.lang.reflect.Type;
/**
* @author wzp
- * @since 2024/8/3 下午8:38
* @version 0.0.3-dev
+ * @since 2024/8/3 下午8:38
*/
public class StringMessageReader implements ObjectReader {
@Override
public StringMessage readObject(JSONReader jsonReader, Type fieldType, Object fieldName, long features) {
- if (jsonReader.isObject()){
+ if (jsonReader.isObject()) {
JSONObject jsonObject = jsonReader.readJSONObject();
return new StringMessage(jsonObject.getJSONObject("data").getString("text"));
}
diff --git a/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java b/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java
index b37383f..814a09a 100644
--- a/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java
@@ -1,9 +1,9 @@
package cn.wzpmc.utils.json.user;
-import cn.wzpmc.api.user.Friend;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.permission.Permissions;
import cn.wzpmc.entities.user.bot.MyBot;
+import cn.wzpmc.user.Friend;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.permission.Permissions;
import com.alibaba.fastjson2.JSONFactory;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
diff --git a/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java b/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java
index b4bd5d2..296dfcd 100644
--- a/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java
@@ -1,9 +1,9 @@
package cn.wzpmc.utils.json.user;
-import cn.wzpmc.api.user.IBot;
-import cn.wzpmc.api.user.group.GroupUser;
-import cn.wzpmc.api.user.permission.Permissions;
import cn.wzpmc.entities.user.bot.MyBot;
+import cn.wzpmc.user.IBot;
+import cn.wzpmc.user.group.GroupUser;
+import cn.wzpmc.user.permission.Permissions;
import com.alibaba.fastjson2.JSONFactory;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
diff --git a/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java b/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java
index b0e37c1..ca6e7d6 100644
--- a/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java
@@ -1,6 +1,6 @@
package cn.wzpmc.utils.json.user;
-import cn.wzpmc.api.user.IBot;
+import cn.wzpmc.user.IBot;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
@@ -19,7 +19,7 @@ public class IBotReader implements ObjectReader {
Long userId = Long.parseLong(map.get("user_id").toString());
String nickname = (String) map.get("nickname");
IBot instance = IBot.getInstance();
- if (instance.getNickname() == null && instance.getId() == null){
+ if (instance.getNickname() == null && instance.getId() == null) {
instance.setId(userId);
instance.setName(nickname);
}
@@ -30,7 +30,7 @@ public class IBotReader implements ObjectReader {
public IBot readObject(JSONReader jsonReader, Type type, Object o, long l) {
JSONObject jsonObject = jsonReader.readJSONObject();
IBot instance = IBot.getInstance();
- if (instance.getNickname() == null && instance.getId() == null){
+ if (instance.getNickname() == null && instance.getId() == null) {
instance.setId(jsonObject.getLong("user_id"));
instance.setName(jsonObject.getString("nickname"));
}
diff --git a/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java b/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java
index add3e97..bccdd8d 100644
--- a/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java
+++ b/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java
@@ -1,8 +1,8 @@
package cn.wzpmc.utils.json.user;
-import cn.wzpmc.api.user.Friend;
-import cn.wzpmc.api.user.IUser;
-import cn.wzpmc.api.user.group.GroupUser;
+import cn.wzpmc.user.Friend;
+import cn.wzpmc.user.IUser;
+import cn.wzpmc.user.group.GroupUser;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;
diff --git a/src/test/java/DemoEventHandler.java b/src/test/java/DemoEventHandler.java
deleted file mode 100644
index e664b84..0000000
--- a/src/test/java/DemoEventHandler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-import cn.wzpmc.api.events.Event;
-import cn.wzpmc.api.events.message.priv.PrivateMessageEvent;
-import cn.wzpmc.api.events.notice.notify.PokeNotifyEvent;
-import cn.wzpmc.api.plugins.event.EventHandler;
-
-/**
- * @author wzp
- * @version 0.0.4-dev
- * @since 2024/8/16 01:02
- */
-public final class DemoEventHandler {
- @EventHandler
- public void onMessage(PrivateMessageEvent event) {
- System.out.println(event);
- System.out.println("Called 1");
- }
- @EventHandler
- public void onMessage2(PrivateMessageEvent event) {
- System.out.println(event);
- System.out.println("Called 2");
- }
- @EventHandler
- public void onPoke(PokeNotifyEvent event) {
- System.out.println(event);
- System.out.println("Called poke");
- }
- public void otherMethod(Event event){
- System.err.println(event);
- System.err.println("otherMethod shouldn't called!");
- }
- @EventHandler
- public void wrongMethod(Event event, String wrongArgs){
- System.err.println(event);
- System.err.println(wrongArgs);
- System.err.println("wrongMethod shouldn't called!");
- }
- @EventHandler
- public void wrongMethod(String wrongArgs){
- System.err.println(wrongArgs);
- System.err.println("wrongMethod2 shouldn't called!");
- }
-}
diff --git a/src/test/java/TestCqUtils.java b/src/test/java/TestCqUtils.java
deleted file mode 100644
index 7fa15ff..0000000
--- a/src/test/java/TestCqUtils.java
+++ /dev/null
@@ -1,29 +0,0 @@
-import cn.wzpmc.api.message.json.JsonMessagePart;
-import cn.wzpmc.api.utils.CqCodeUtils;
-import org.junit.jupiter.api.Test;
-
-import java.util.Map;
-
-/**
- * @author wzp
- * @version 1.0.0
- * @since 2024/8/26 14:14
- */
-public class TestCqUtils {
- @Test
- public void testIsCq(){
- System.out.println(CqCodeUtils.isCQ("[CQ:at,qq=123456789]"));
- }
- @Test
- public void testCqParser(){
- Map parse = CqCodeUtils.parse("[CQ:at,qq=123456789,name=123]");
- for (Map.Entry stringStringEntry : parse.entrySet()) {
- System.out.println(stringStringEntry);
- }
- }
- @Test
- public void testParseCq(){
- JsonMessagePart jsonMessagePart = CqCodeUtils.parseToPart("[CQ:at,qq=123456789,name=123]");
- System.out.println(jsonMessagePart);
- }
-}
diff --git a/src/test/java/TestEventHandle.java b/src/test/java/TestEventHandle.java
deleted file mode 100644
index 678dac2..0000000
--- a/src/test/java/TestEventHandle.java
+++ /dev/null
@@ -1,32 +0,0 @@
-import cn.wzpmc.Main;
-import cn.wzpmc.api.events.message.priv.PrivateMessageEvent;
-import cn.wzpmc.api.events.notice.notify.PokeNotifyEvent;
-import cn.wzpmc.api.user.Friend;
-import cn.wzpmc.configuration.Configuration;
-import cn.wzpmc.entities.user.bot.MyBot;
-import org.junit.jupiter.api.Test;
-
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * @author wzp
- * @version 0.0.4-dev
- * @since 2024/8/16 01:01
- */
-public class TestEventHandle {
- @Test
- public void testEventHandle() throws InvocationTargetException, IllegalAccessException {
- Configuration configuration = Main.getConfiguration();
- Friend targetUser = new Friend();
- targetUser.setNickname("test");
- targetUser.setId(Long.valueOf(0));
- MyBot bot = Main.createBot(configuration);
- bot.registerEventHandler(new DemoEventHandler());
- PokeNotifyEvent pokeNotifyEvent = new PokeNotifyEvent();
- pokeNotifyEvent.setTargetId(Long.valueOf(0));
- bot.triggerEvent(pokeNotifyEvent);
- PrivateMessageEvent privateMessageEvent = new PrivateMessageEvent();
- privateMessageEvent.setSender(targetUser);
- bot.triggerEvent(privateMessageEvent);
- }
-}
diff --git a/src/test/java/TestEventHandler.java b/src/test/java/TestEventHandler.java
deleted file mode 100644
index 8e1d084..0000000
--- a/src/test/java/TestEventHandler.java
+++ /dev/null
@@ -1,14 +0,0 @@
-import cn.wzpmc.utils.ReflectionUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * @author wzp
- * @version 0.0.4-dev
- * @since 2024/8/16 00:12
- */
-public class TestEventHandler {
- @Test
- public void testEventHandler() {
- System.out.println(ReflectionUtils.loadEvents(new DemoEventHandler()));
- }
-}