pref: Split project into two modules(main, api)

This commit is contained in:
wzp 2024-08-26 21:05:35 +08:00
parent 64686d2f47
commit 62b001b131
211 changed files with 1996 additions and 1269 deletions

1
.idea/compiler.xml generated
View File

@ -8,6 +8,7 @@
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.34/ec547ef414ab1d2c040118fb9c1c265ada63af14/lombok-1.18.34.jar" />
</processorPath>
<module name="MyBot.main" />
<module name="MyBot.mybot-api.main" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel target="11" />

1
.idea/gradle.xml generated
View File

@ -9,6 +9,7 @@
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/mybot-api" />
</set>
</option>
</GradleProjectSettings>

1
.idea/modules.xml generated
View File

@ -3,6 +3,7 @@
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/MyBot.main.iml" filepath="$PROJECT_DIR$/.idea/modules/MyBot.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/mybot-api/MyBot.mybot-api.main.iml" filepath="$PROJECT_DIR$/.idea/modules/mybot-api/MyBot.mybot-api.main.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="AdditionalModuleElements">
<content url="file://$MODULE_DIR$/../../../mybot-api/build/generated/sources/annotationProcessor/java/main">
<sourceFolder url="file://$MODULE_DIR$/../../../mybot-api/build/generated/sources/annotationProcessor/java/main" isTestSource="false" generated="true" />
</content>
</component>
</module>

View File

@ -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<Jar>("javadocJar") {
archiveClassifier.set("javadoc")
@ -86,57 +89,6 @@ tasks.withType<ShadowJar> {
tasks.named("build") {
dependsOn(tasks.named("shadowJar"))
}
publishing {
publications {
create<MavenPublication>("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()
}

View File

@ -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<Jar>("javadocJar") {
archiveClassifier.set("javadoc")
from(tasks.named("javadoc"))
}
tasks.register<Jar>("sourcesJar") {
archiveClassifier.set("sources")
from(sourceSets.main.get().allSource)
}
publishing {
publications {
create<MavenPublication>("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()
}

View File

@ -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<REQUEST, RESPONSE> {
/**
* 请求回调值默认随机生成不建议自己修改
*
* @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();
}

View File

@ -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<RESPONSE> {
/**
* 请求返回消息
*
* @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;

View File

@ -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);
}
}

View File

@ -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 <REQUEST> 请求类型
* @param <RESPONSE> 返回类型
* @return 请求返回包
* @throws InterruptedException 请求过程中出现Ctrl+C时抛出
* @author wzp
* @since 2024/8/23 21:32 v0.0.5-dev
* @param packet 请求包
* @return 请求返回包
* @param <REQUEST> 请求类型
* @param <RESPONSE> 返回类型
* @throws InterruptedException 请求过程中出现Ctrl+C时抛出
*/
<REQUEST, RESPONSE> ActionResponse<RESPONSE> doApiCall(Action<REQUEST, RESPONSE> packet) throws InterruptedException;
}

View File

@ -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<Void, Void> {
/**
* 清理缓存
*
* @author wzp
* @since 2024/8/24 23:59 v0.0.6-dev
*/

View File

@ -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<Void, YesNo> {
/**
* 检查是否可以发送图片
*
* @author wzp
* @since 2024/8/24 23:51 v0.0.6-dev
*/
public CanSendImageAction(){
public CanSendImageAction() {
super.setAction(Actions.CAN_SEND_IMAGE);
}
}

View File

@ -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<Void, YesNo> {
/**
* 检查是否可以发送语音
*
* @author wzp
* @since 2024/8/24 23:51 v0.0.6-dev
*/
public CanSendRecordAction(){
public CanSendRecordAction() {
super.setAction(Actions.CAN_SEND_RECORD);
}
}

View File

@ -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<DeleteMessageAction.Params, Void> {
/**
* 撤回消息
*
* @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")

View File

@ -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<GetCookiesAction.Params, CookiesInformation> {
/**
* 获取 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<GetCookiesAction.Params, CookiesInf
/**
* 获取 Cookies
*
* @author wzp
* @since 2024/8/24 23:51 v0.0.6-dev
*/
public GetCookiesAction() {
this("");
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 需要获取 cookies 的域名
*
* @since 2024/8/24 23:32 v0.0.6-dev
*/
private String domain;

View File

@ -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.CredentialsInformation;
import cn.wzpmc.api.Action;
import cn.wzpmc.api.Actions;
import cn.wzpmc.entities.CredentialsInformation;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 获取 QQ 相关接口凭证
*
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:44
@ -15,9 +16,10 @@ import lombok.Data;
public class GetCredentialsAction extends Action<GetCredentialsAction.Params, CredentialsInformation> {
/**
* 获取 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<GetCredentialsAction.Params, Cr
/**
* 获取 QQ 相关接口凭证
*
* @author wzp
* @since 2024/8/24 23:52 v0.0.6-dev
*/
public GetCredentialsAction() {
this("");
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 需要获取 cookies 的域名
*
* @since 2024/8/24 23:32 v0.0.6-dev
*/
private String domain;

View File

@ -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.CsrfTokenInformation;
import cn.wzpmc.api.Action;
import cn.wzpmc.api.Actions;
import cn.wzpmc.entities.CsrfTokenInformation;
/**
* 获取 CSRF Token
*
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:44
@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.CsrfTokenInformation;
public class GetCsrfTokenAction extends Action<Void, CsrfTokenInformation> {
/**
* 获取 CSRF Token
*
* @author wzp
* @since 2024/8/24 23:52 v0.0.6-dev
*/
public GetCsrfTokenAction(){
public GetCsrfTokenAction() {
super.setAction(Actions.GET_CSRF_TOKEN);
}
}

View File

@ -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<GetForwardMessageAction.Params, MessageInformation> {
/**
* 获取合并转发消息
*
* @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;

View File

@ -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<Void, List<MessageInformation>> {
/**
* 获取好友列表
*
* @author wzp
* @since 2024/8/24 23:52 v0.0.6-dev
*/
public GetFriendListAction(){
public GetFriendListAction() {
super.setAction(Actions.GET_FRIEND_LIST);
}
}

View File

@ -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<GetGroupHonorInfoAction.Params, HonorInformation> {
/**
* 获取群荣誉信息
*
* @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<GetGroupHonorInfoAction.Para
/**
* 获取群荣誉信息
*
* @param groupId 群号
* @author wzp
* @since 2024/8/24 23:53 v0.0.6-dev
* @param groupId 群号
*/
public GetGroupHonorInfoAction(Long groupId) {
this(groupId, HonorType.ALL);
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
*
* @since 2024/8/24 23:52 v0.0.6-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 要获取的群荣誉类型可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据或传入 all 获取所有数据
*
* @since 2024/8/24 23:52 v0.0.6-dev
*/
private HonorType type;

View File

@ -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.GroupInformation;
import cn.wzpmc.api.Action;
import cn.wzpmc.api.Actions;
import cn.wzpmc.entities.GroupInformation;
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 GetGroupInfoAction extends Action<GetGroupInfoAction.Params, GroupInformation> {
/**
* 获取群信息
* @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")

View File

@ -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<Void, List<GroupInformation>> {
/**
* 获取群列表
*
* @author wzp
* @since 2024/8/24 23:54 v0.0.6-dev
*/
public GetGroupListAction(){
public GetGroupListAction() {
super.setAction(Actions.GET_GROUP_LIST);
}
}

View File

@ -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<GetGroupMemberInfoAction.Params, GroupMemberInformation> {
/**
* 获取群成员信息
*
* @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")

View File

@ -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<GetGroupMemberListAction.Params, List<GroupMemberInformation>> {
/**
* 获取群成员列表
*
* @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")

View File

@ -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<GetImageAction.Params, FilePathInformation> {
/**
* 获取图片
*
* @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;

View File

@ -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<Void, IBot> {
/**
* 获取登录号信息
*
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
*/

View File

@ -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<GetMessageAction.Params, MessageInformation> {
/**
* 获取消息
*
* @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")

View File

@ -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<GetRecordAction.Params, FilePathInformation> {
/**
* 获取语音
*
* @param file 收到的语音文件名消息段的 file 参数 0B38145AA44505000B38145AA4450500.silk
* @param outFormat 要转换到的格式目前支持 mp3amrwmam4aspxoggwavflac
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
* @param file 收到的语音文件名消息段的 file 参数 0B38145AA44505000B38145AA4450500.silk
* @param outFormat 要转换到的格式目前支持 mp3amrwmam4aspxoggwavflac
*/
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;
/**
* 要转换到的格式目前支持 mp3amrwmam4aspxoggwavflac
*
* @since 2024/8/24 23:35 v0.0.6-dev
*/
@JSONField(name = "out_format")

View File

@ -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<Void, BotStatus> {
/**
* 获取运行状态
*
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
*/
public GetStatusAction(){
public GetStatusAction() {
super.setAction(Actions.GET_STATUS);
}
}

View File

@ -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<GetStrangerInfoAction.Params, IUser> {
/**
* 获取陌生人信息
*
* @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")

View File

@ -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<Void, VersionInformation> {
/**
* 获取版本信息
*
* @author wzp
* @since 2024/8/24 23:55 v0.0.6-dev
*/
public GetVersionInfoAction(){
public GetVersionInfoAction() {
super.setAction(Actions.GET_VERSION_INFO);
}

View File

@ -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<SendGroupMessageAction.Params, SendMessageActionResponseData> {
/**
* 发送群消息
*
* @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")

View File

@ -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<SendLikeAction.Params, Void> {
/**
* 发送好友赞
*
* @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")

View File

@ -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")

View File

@ -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<SendPrivateMessageAction.Params, SendMessageActionResponseData> {
/**
* 发送私聊消息
*
* @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")

View File

@ -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<SetFriendAddRequestAction.Params, Void> {
/**
* 处理加好友请求
*
* @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<SetFriendAddRequestAction.
/**
* 处理加好友请求
*
* @param flag 加好友请求的 flag需从上报的数据中获得
* @param remark 添加后的好友备注仅在同意时有效
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
* @param flag 加好友请求的 flag需从上报的数据中获得
* @param remark 添加后的好友备注仅在同意时有效
*/
public SetFriendAddRequestAction(String flag, String remark) {
this(flag, true, remark);
@ -50,29 +54,34 @@ public class SetFriendAddRequestAction extends Action<SetFriendAddRequestAction.
/**
* 处理加好友请求
*
* @param flag 加好友请求的 flag需从上报的数据中获得
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
* @param flag 加好友请求的 flag需从上报的数据中获得
*/
public SetFriendAddRequestAction(String flag) {
this(flag, true);
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 加好友请求的 flag需从上报的数据中获得
*
* @since 2024/8/24 21:09 v0.0.6-dev
*/
private String flag;
/**
* 是否同意请求
*
* @since 2024/8/24 21:09 v0.0.6-dev
*/
@JSONField(defaultValue = "true")
private boolean approve;
/**
* 添加后的好友备注仅在同意时有效
*
* @since 2024/8/24 21:09 v0.0.6-dev
*/
private String remark;

View File

@ -1,14 +1,15 @@
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.events.request.group.GroupJoinRequestEventSubType;
import cn.wzpmc.api.Action;
import cn.wzpmc.api.Actions;
import cn.wzpmc.events.request.group.GroupJoinRequestEventSubType;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 处理加群请求邀请
*
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:18
@ -16,12 +17,13 @@ import lombok.Data;
public class SetGroupAddRequestAction extends Action<SetGroupAddRequestAction.Params, Void> {
/**
* 处理加群请求邀请
*
* @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<SetGroupAddRequestAction.Pa
/**
* 处理加群请求邀请
*
* @param flag 加群请求的 flag需从上报的数据中获得
* @param type 请求类型
* @param reason 拒绝理由仅在拒绝时有效
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
* @param flag 加群请求的 flag需从上报的数据中获得
* @param type 请求类型
* @param reason 拒绝理由仅在拒绝时有效
*/
public SetGroupAddRequestAction(String flag, GroupJoinRequestEventSubType type, String reason) {
this(flag, type, false, reason);
@ -42,35 +45,41 @@ public class SetGroupAddRequestAction extends Action<SetGroupAddRequestAction.Pa
/**
* 处理加群请求邀请
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
*
* @param flag 加群请求的 flag需从上报的数据中获得
* @param type 请求类型
* @author wzp
* @since 2024/8/24 23:56 v0.0.6-dev
*/
public SetGroupAddRequestAction(String flag, GroupJoinRequestEventSubType type) {
this(flag, type, true, "");
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 加群请求的 flag需从上报的数据中获得
*
* @since 2024/8/24 21:14 v0.0.6-dev
*/
private String flag;
/**
* 请求类型
*
* @since 2024/8/24 21:14 v0.0.6-dev
*/
private GroupJoinRequestEventSubType type;
/**
* 是否同意请求邀请
*
* @since 2024/8/24 21:14 v0.0.6-dev
*/
@JSONField(defaultValue = "true")
private boolean approve;
/**
* 拒绝理由仅在拒绝时有效
*
* @since 2024/8/24 21:14 v0.0.6-dev
*/
private String reason;

View File

@ -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:51
@ -15,44 +16,50 @@ import lombok.Data;
public class SetGroupAdminAction extends Action<SetGroupAdminAction.Params, Void> {
/**
* 群组设置管理员
*
* @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")

View File

@ -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<SetGroupAnonymousAction.Params, Void> {
/**
* 群组匿名
*
* @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<SetGroupAnonymousAction.Para
/**
* 群组匿名
*
* @param groupId 群号
* @author wzp
* @since 2024/8/23 21:16 v0.0.5-dev
* @param groupId 群号
*/
public SetGroupAnonymousAction(Long groupId) {
this(groupId, true);
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
*
* @since 2024/8/23 21:16 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 是否允许匿名聊天
*
* @since 2024/8/23 21:16 v0.0.5-dev
*/
@JSONField(defaultValue = "true")

View File

@ -1,14 +1,15 @@
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.message.json.parts.Anonymous;
import cn.wzpmc.api.Action;
import cn.wzpmc.api.Actions;
import cn.wzpmc.message.json.parts.Anonymous;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 群组匿名用户禁言
*
* @author wzp
* @version 0.0.5-dev
* @since 2024/8/23 20:08
@ -16,12 +17,13 @@ import lombok.Data;
public class SetGroupAnonymousBanAction extends Action<SetGroupAnonymousBanAction.Params, Void> {
/**
* 群组匿名用户禁言
*
* @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<SetGroupAnonymousBanActio
/**
* 群组匿名用户禁言
*
* @param groupId 群号
* @param anonymous 要禁言的匿名用户对象群消息上报的 anonymous 字段
* @param duration 禁言时长单位秒无法取消匿名用户禁言
* @author wzp
* @since 2024/8/23 21:17 v0.0.5-dev
* @param groupId 群号
* @param anonymous 要禁言的匿名用户对象群消息上报的 anonymous 字段
* @param duration 禁言时长单位秒无法取消匿名用户禁言
*/
public SetGroupAnonymousBanAction(Long groupId, Anonymous anonymous, Long duration) {
this(groupId, anonymous, null, duration);
@ -42,10 +45,11 @@ public class SetGroupAnonymousBanAction extends Action<SetGroupAnonymousBanActio
/**
* 群组匿名用户禁言
*
* @param groupId 群号
* @param anonymous 要禁言的匿名用户对象群消息上报的 anonymous 字段
* @author wzp
* @since 2024/8/23 21:17 v0.0.5-dev
* @param groupId 群号
* @param anonymous 要禁言的匿名用户对象群消息上报的 anonymous 字段
*/
public SetGroupAnonymousBanAction(Long groupId, Anonymous anonymous) {
this(groupId, anonymous, 1800L);
@ -53,11 +57,12 @@ public class SetGroupAnonymousBanAction extends Action<SetGroupAnonymousBanActio
/**
* 群组匿名用户禁言
*
* @param groupId 群号
* @param flag 要禁言的匿名用户的 flag需从群消息上报的数据中获得
* @param duration 禁言时长单位秒无法取消匿名用户禁言
* @author wzp
* @since 2024/8/23 21:17 v0.0.5-dev
* @param groupId 群号
* @param flag 要禁言的匿名用户的 flag需从群消息上报的数据中获得
* @param duration 禁言时长单位秒无法取消匿名用户禁言
*/
public SetGroupAnonymousBanAction(Long groupId, String flag, Long duration) {
this(groupId, null, flag, duration);
@ -65,35 +70,41 @@ public class SetGroupAnonymousBanAction extends Action<SetGroupAnonymousBanActio
/**
* 群组匿名用户禁言
*
* @param groupId 群号
* @param flag 要禁言的匿名用户的 flag需从群消息上报的数据中获得
* @author wzp
* @since 2024/8/23 21:17 v0.0.5-dev
* @param groupId 群号
* @param flag 要禁言的匿名用户的 flag需从群消息上报的数据中获得
*/
public SetGroupAnonymousBanAction(Long groupId, String flag) {
this(groupId, flag, 1800L);
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
*
* @since 2024/8/23 21:17 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 可选要禁言的匿名用户对象群消息上报的 anonymous 字段
*
* @since 2024/8/23 21:17 v0.0.5-dev
*/
private Anonymous anonymous;
/**
* 可选要禁言的匿名用户的 flag需从群消息上报的数据中获得
*
* @since 2024/8/23 21:17 v0.0.5-dev
*/
private String flag;
/**
* 禁言时长单位秒无法取消匿名用户禁言默认30 * 60
*
* @since 2024/8/23 21:17 v0.0.5-dev
*/
@JSONField(defaultValue = "1800")

View File

@ -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:03
@ -15,44 +16,50 @@ import lombok.Data;
public class SetGroupBanAction extends Action<SetGroupBanAction.Params, Void> {
/**
* 群组单人禁言
*
* @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")

View File

@ -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<SetGroupCardAction.Params, Void> {
/**
* 设置群名片群备注
*
* @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<SetGroupCardAction.Params, Void>
/**
* 设置群名片群备注
*
* @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;

View File

@ -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<SetGroupKickAction.Params, Void> {
/**
* 群组踢人
*
* @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<SetGroupKickAction.Params, Void>
/**
* 群组踢人
*
* @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")

View File

@ -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<SetGroupLeaveAction.Params, Void> {
/**
* 退出群组
*
* @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")

View File

@ -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<SetGroupNameAction.Params, Void> {
/**
* 设置群名
*
* @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")

View File

@ -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<SetGroupSpecialTitleAction.Params, Void> {
/**
* 设置群组专属头衔
*
* @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")

View File

@ -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<SetGroupWholeBanAction.Params, Void> {
/**
* 群组全员禁言
*
* @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<SetGroupWholeBanAction.Params
/**
* 群组全员禁言
*
* @param groupId 群号
* @author wzp
* @since 2024/8/23 21:28 v0.0.5-dev
* @param groupId 群号
*/
public SetGroupWholeBanAction(Long groupId) {
this(groupId, true);
}
@Data
@AllArgsConstructor
public static final class Params {
/**
* 群号
*
* @since 2024/8/23 21:28 v0.0.5-dev
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 是否禁言默认true
*
* @since 2024/8/23 21:28 v0.0.5-dev
*/
@JSONField(defaultValue = "true")

View File

@ -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;
/**
* 重启 OneBot 实现
*
* @author wzp
* @version 0.0.6-dev
* @since 2024/8/24 20:46
@ -15,9 +16,10 @@ import lombok.Data;
public class SetRestartAction extends Action<SetRestartAction.Params, Void> {
/**
* 重启 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<SetRestartAction.Params, Void> {
/**
* 立即重启 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")

View File

@ -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

View File

@ -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<CommandSender> getCommandNode();
}

View File

@ -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<String> 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<String> onTabComplete(CommandSender commandSender, List<String> arguments) {
return List.of();

View File

@ -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<JsonMessagePart> {
@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);

View File

@ -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<Long> {
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<Long> {
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"));
}

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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")

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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")

View File

@ -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")

View File

@ -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<GroupHonorUser> talkativeList;
/**
* 群聊之火 type performer all 时有数据
*
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "performer_list")
private List<GroupHonorUser> performerList;
/**
* 群聊炽焰 type legend all 时有数据
*
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "legend_list")
private List<GroupHonorUser> legendList;
/**
* 冒尖小春笋 type strong_newbie all 时有数据
*
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "strong_newbie_list")
private List<GroupHonorUser> strongNewbieList;
/**
* 快乐之源 type emotion all 时有数据
*
* @since 2024/8/24 23:18 v0.0.6-dev
*/
@JSONField(name = "emotion_list")

View File

@ -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")

View File

@ -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
}

View File

@ -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;

View File

@ -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<Long> admins = new HashSet<>();
/**
* 群内管理员
*
* @since 2024/8/25 20:17 v1.0.0
*/
private final Map<String, List<Long>> 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<Long> 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);

View File

@ -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")

View File

@ -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;

View File

@ -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")

View File

@ -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;
}
}

View File

@ -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<E, U> 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;

View File

@ -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;
}
}

View File

@ -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<GroupMessageSubType, GroupUser> {
/**
* 群号
*
* @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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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")

View File

@ -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;
}
}

View File

@ -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")

View File

@ -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

View File

@ -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")

View File

@ -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;

View File

@ -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")

View File

@ -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;
}
}

View File

@ -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")

View File

@ -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

View File

@ -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具体见<a href="https://github.com/botuniverse/onebot-11/blob/master/event/notice.md">OneBot文档</a>
*
* @since 2024/8/1 下午9:24 v0.0.2-dev
*/
private Long busid;

View File

@ -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")

View File

@ -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")

View File

@ -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")

View File

@ -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;
}
}

View File

@ -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")

View File

@ -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")

View File

@ -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

View File

@ -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")

View File

@ -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")

View File

@ -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<S> extends NoticeEvent {
/**
* 消息子类型
*
* @since 2024/8/1 下午9:31 v0.0.2-dev
*/
@JSONField(name = "sub_type")
@ -28,12 +30,14 @@ public class GroupUserModifyEvent<S> 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")

Some files were not shown because too many files have changed in this diff Show More