feat: Complete API function implementation
This commit is contained in:
parent
a1d18b1277
commit
57b980fdae
2
.idea/fileTemplates/includes/Version.txt
generated
2
.idea/fileTemplates/includes/Version.txt
generated
@ -1 +1 @@
|
|||||||
0.0.5-dev
|
1.0.0
|
@ -4,7 +4,7 @@ import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCach
|
|||||||
val projectName = rootProject.name
|
val projectName = rootProject.name
|
||||||
val groupName by extra("cn.wzpmc")
|
val groupName by extra("cn.wzpmc")
|
||||||
val projectArtifactId by extra("my-bot")
|
val projectArtifactId by extra("my-bot")
|
||||||
val projectVersion by extra("0.0.5-dev")
|
val projectVersion by extra("1.0.0")
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("java")
|
id("java")
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package cn.wzpmc;
|
package cn.wzpmc;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.IMainApi;
|
||||||
|
import cn.wzpmc.api.api.actions.message.get.GetLoginInfoAction;
|
||||||
import cn.wzpmc.api.events.message.group.GroupMessageEvent;
|
import cn.wzpmc.api.events.message.group.GroupMessageEvent;
|
||||||
import cn.wzpmc.api.events.message.priv.PrivateMessageEvent;
|
import cn.wzpmc.api.events.message.priv.PrivateMessageEvent;
|
||||||
import cn.wzpmc.api.message.StringMessage;
|
import cn.wzpmc.api.message.StringMessage;
|
||||||
@ -142,6 +144,10 @@ public class Main {
|
|||||||
loadPlugins(myBot);
|
loadPlugins(myBot);
|
||||||
WebSocketConnectionHandler webSocketConnectionHandler = createConnection(myBot, uri);
|
WebSocketConnectionHandler webSocketConnectionHandler = createConnection(myBot, uri);
|
||||||
myBot.setConnectionHandler(webSocketConnectionHandler);
|
myBot.setConnectionHandler(webSocketConnectionHandler);
|
||||||
|
IMainApi mainApi = myBot.getMainApi();
|
||||||
|
System.out.println(mainApi.doApiCall(new GetLoginInfoAction()));
|
||||||
|
System.out.println(mainApi.doApiCall(new GetLoginInfoAction()));
|
||||||
|
System.out.println(mainApi.doApiCall(new GetLoginInfoAction()));
|
||||||
startConsole(myBot, webSocketConnectionHandler);
|
startConsole(myBot, webSocketConnectionHandler);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,7 +1,9 @@
|
|||||||
package cn.wzpmc.api.api;
|
package cn.wzpmc.api.api;
|
||||||
|
|
||||||
import cn.wzpmc.api.api.actions.message.send.SendMessageActionResponseData;
|
import cn.wzpmc.api.api.actions.message.send.SendMessageActionResponseData;
|
||||||
import cn.wzpmc.api.entities.MessageInformation;
|
import cn.wzpmc.api.entities.*;
|
||||||
|
import cn.wzpmc.api.user.IBot;
|
||||||
|
import cn.wzpmc.api.user.IUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作类型
|
* 操作类型
|
||||||
@ -24,7 +26,7 @@ public enum Actions {
|
|||||||
* 撤回消息
|
* 撤回消息
|
||||||
* @since 2024/8/23 21:07 v0.0.5-dev
|
* @since 2024/8/23 21:07 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
DELETE_MSG(),
|
DELETE_MSG,
|
||||||
/**
|
/**
|
||||||
* 获取消息
|
* 获取消息
|
||||||
* @since 2024/8/23 21:07 v0.0.5-dev
|
* @since 2024/8/23 21:07 v0.0.5-dev
|
||||||
@ -39,45 +41,170 @@ public enum Actions {
|
|||||||
* 发送好友赞
|
* 发送好友赞
|
||||||
* @since 2024/8/23 21:08 v0.0.5-dev
|
* @since 2024/8/23 21:08 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SEND_LIKE(),
|
SEND_LIKE,
|
||||||
/**
|
/**
|
||||||
* 群组踢人
|
* 群组踢人
|
||||||
* @since 2024/8/23 21:08 v0.0.5-dev
|
* @since 2024/8/23 21:08 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SET_GROUP_KICK(),
|
SET_GROUP_KICK,
|
||||||
/**
|
/**
|
||||||
* 群组单人禁言
|
* 群组单人禁言
|
||||||
* @since 2024/8/23 21:08 v0.0.5-dev
|
* @since 2024/8/23 21:08 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SET_GROUP_BAN(),
|
SET_GROUP_BAN,
|
||||||
/**
|
/**
|
||||||
* 群组匿名用户禁言
|
* 群组匿名用户禁言
|
||||||
* @since 2024/8/23 21:08 v0.0.5-dev
|
* @since 2024/8/23 21:08 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SET_GROUP_ANONYMOUS_BAN(),
|
SET_GROUP_ANONYMOUS_BAN,
|
||||||
/**
|
/**
|
||||||
* 群组全员禁言
|
* 群组全员禁言
|
||||||
* @since 2024/8/23 21:09 v0.0.5-dev
|
* @since 2024/8/23 21:09 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SET_GROUP_WHOLE_BAN(),
|
SET_GROUP_WHOLE_BAN,
|
||||||
/**
|
/**
|
||||||
* 群组设置管理员
|
* 群组设置管理员
|
||||||
* @since 2024/8/23 21:09 v0.0.5-dev
|
* @since 2024/8/23 21:09 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SET_GROUP_ADMIN(),
|
SET_GROUP_ADMIN,
|
||||||
/**
|
/**
|
||||||
* 群组匿名
|
* 群组匿名
|
||||||
* @since 2024/8/23 21:09 v0.0.5-dev
|
* @since 2024/8/23 21:09 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SET_GROUP_ANONYMOUS(),
|
SET_GROUP_ANONYMOUS,
|
||||||
/**
|
/**
|
||||||
* 设置群名片(群备注)
|
* 设置群名片(群备注)
|
||||||
* @since 2024/8/23 21:09 v0.0.5-dev
|
* @since 2024/8/23 21:09 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
SET_GROUP_CARD();
|
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 Class<?> responseClass;
|
||||||
Actions(Class<?> responseClass) {
|
public final boolean array;
|
||||||
|
Actions(Class<?> responseClass, boolean array) {
|
||||||
this.responseClass = responseClass;
|
this.responseClass = responseClass;
|
||||||
|
this.array = array;
|
||||||
|
}
|
||||||
|
Actions(Class<?> responseClass) {
|
||||||
|
this(responseClass, false);
|
||||||
}
|
}
|
||||||
Actions(){
|
Actions(){
|
||||||
this(Void.class);
|
this(Void.class);
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清理缓存
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:46
|
||||||
|
*/
|
||||||
|
public class CleanCacheAction extends Action<Void, Void> {
|
||||||
|
/**
|
||||||
|
* 清理缓存
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:59 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public CleanCacheAction() {
|
||||||
|
super.setAction(Actions.CLEAN_CACHE);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.can;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.YesNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查是否可以发送图片
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:45
|
||||||
|
*/
|
||||||
|
public class CanSendImageAction extends Action<Void, YesNo> {
|
||||||
|
/**
|
||||||
|
* 检查是否可以发送图片
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:51 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public CanSendImageAction(){
|
||||||
|
super.setAction(Actions.CAN_SEND_IMAGE);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.can;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.YesNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查是否可以发送语音
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:45
|
||||||
|
*/
|
||||||
|
public class CanSendRecordAction extends Action<Void, YesNo> {
|
||||||
|
/**
|
||||||
|
* 检查是否可以发送语音
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:51 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public CanSendRecordAction(){
|
||||||
|
super.setAction(Actions.CAN_SEND_RECORD);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.CookiesInformation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 Cookies
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:43
|
||||||
|
*/
|
||||||
|
public class GetCookiesAction extends Action<GetCookiesAction.Params, CookiesInformation> {
|
||||||
|
/**
|
||||||
|
* 获取 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);
|
||||||
|
super.setParams(new Params(domain));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 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;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.CredentialsInformation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 QQ 相关接口凭证
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:44
|
||||||
|
*/
|
||||||
|
public class GetCredentialsAction extends Action<GetCredentialsAction.Params, CredentialsInformation> {
|
||||||
|
/**
|
||||||
|
* 获取 QQ 相关接口凭证
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:51 v0.0.6-dev
|
||||||
|
* @param domain 需要获取 cookies 的域名
|
||||||
|
*/
|
||||||
|
public GetCredentialsAction(String domain) {
|
||||||
|
super.setAction(Actions.GET_COOKIES);
|
||||||
|
super.setParams(new Params(domain));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 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;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.CsrfTokenInformation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 CSRF Token
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:44
|
||||||
|
*/
|
||||||
|
public class GetCsrfTokenAction extends Action<Void, CsrfTokenInformation> {
|
||||||
|
/**
|
||||||
|
* 获取 CSRF Token
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:52 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public GetCsrfTokenAction(){
|
||||||
|
super.setAction(Actions.GET_CSRF_TOKEN);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.MessageInformation;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取好友列表
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:41
|
||||||
|
*/
|
||||||
|
public class GetFriendListAction extends Action<Void, List<MessageInformation>> {
|
||||||
|
/**
|
||||||
|
* 获取好友列表
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:52 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public GetFriendListAction(){
|
||||||
|
super.setAction(Actions.GET_FRIEND_LIST);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package cn.wzpmc.api.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 com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取群荣誉信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:43
|
||||||
|
*/
|
||||||
|
public class GetGroupHonorInfoAction extends Action<GetGroupHonorInfoAction.Params, HonorInformation> {
|
||||||
|
/**
|
||||||
|
* 获取群荣誉信息
|
||||||
|
* @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);
|
||||||
|
this.setParams(new Params(groupId, type));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取群荣誉信息
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class GetGroupInfoAction extends Action<GetGroupInfoAction.Params, GroupInformation> {
|
||||||
|
/**
|
||||||
|
* 获取群信息
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:53 v0.0.6-dev
|
||||||
|
* @param groupId 群号
|
||||||
|
* @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
|
||||||
|
*/
|
||||||
|
public GetGroupInfoAction(Long groupId, Boolean noCache){
|
||||||
|
super.setAction(Actions.GET_GROUP_INFO);
|
||||||
|
super.setParams(new Params(groupId, noCache));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取群信息
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:53 v0.0.6-dev
|
||||||
|
* @param 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")
|
||||||
|
private Boolean noCache;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.GroupInformation;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取群列表
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:42
|
||||||
|
*/
|
||||||
|
public class GetGroupListAction extends Action<Void, List<GroupInformation>> {
|
||||||
|
/**
|
||||||
|
* 获取群列表
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:54 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public GetGroupListAction(){
|
||||||
|
super.setAction(Actions.GET_GROUP_LIST);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class GetGroupMemberInfoAction extends Action<GetGroupMemberInfoAction.Params, GroupMemberInformation> {
|
||||||
|
/**
|
||||||
|
* 获取群成员信息
|
||||||
|
* @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){
|
||||||
|
super.setAction(Actions.GET_GROUP_MEMBER_INFO);
|
||||||
|
super.setParams(new Params(groupId, userId, noCache));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取群成员信息
|
||||||
|
* @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")
|
||||||
|
private Boolean noCache;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.GroupMemberInformation;
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取群成员列表
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:42
|
||||||
|
*/
|
||||||
|
public class GetGroupMemberListAction extends Action<GetGroupMemberListAction.Params, List<GroupMemberInformation>> {
|
||||||
|
/**
|
||||||
|
* 获取群成员列表
|
||||||
|
* @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")
|
||||||
|
private Long groupId;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.FilePathInformation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取图片
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:44
|
||||||
|
*/
|
||||||
|
public class GetImageAction extends Action<GetImageAction.Params, FilePathInformation> {
|
||||||
|
/**
|
||||||
|
* 获取图片
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.user.IBot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取登录号信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:18
|
||||||
|
*/
|
||||||
|
public class GetLoginInfoAction extends Action<Void, IBot> {
|
||||||
|
/**
|
||||||
|
* 获取登录号信息
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:55 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public GetLoginInfoAction() {
|
||||||
|
super.setAction(Actions.GET_LOGIN_INFO);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class GetRecordAction extends Action<GetRecordAction.Params, FilePathInformation> {
|
||||||
|
/**
|
||||||
|
* 获取语音
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:55 v0.0.6-dev
|
||||||
|
* @param file 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk
|
||||||
|
* @param outFormat 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac
|
||||||
|
*/
|
||||||
|
public GetRecordAction(String file, String outFormat){
|
||||||
|
super.setAction(Actions.GET_RECORD);
|
||||||
|
super.setParams(new Params(file, outFormat));
|
||||||
|
}
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static final class Params {
|
||||||
|
/**
|
||||||
|
* 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk
|
||||||
|
* @since 2024/8/24 23:35 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
/**
|
||||||
|
* 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac
|
||||||
|
* @since 2024/8/24 23:35 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
@JSONField(name = "out_format")
|
||||||
|
private String outFormat;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.BotStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取运行状态
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:45
|
||||||
|
*/
|
||||||
|
public class GetStatusAction extends Action<Void, BotStatus> {
|
||||||
|
/**
|
||||||
|
* 获取运行状态
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:55 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public GetStatusAction(){
|
||||||
|
super.setAction(Actions.GET_STATUS);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class GetStrangerInfoAction extends Action<GetStrangerInfoAction.Params, IUser> {
|
||||||
|
/**
|
||||||
|
* 获取陌生人信息
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:55 v0.0.6-dev
|
||||||
|
* @param userId QQ 号
|
||||||
|
* @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
|
||||||
|
*/
|
||||||
|
public GetStrangerInfoAction(Long userId, boolean noCache){
|
||||||
|
super.setAction(Actions.GET_STRANGER_INFO);
|
||||||
|
super.setParams(new GetStrangerInfoAction.Params(userId, noCache));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取陌生人信息
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:55 v0.0.6-dev
|
||||||
|
* @param userId QQ 号
|
||||||
|
*/
|
||||||
|
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")
|
||||||
|
private boolean noCache;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.get;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.VersionInformation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取版本信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:45
|
||||||
|
*/
|
||||||
|
public class GetVersionInfoAction extends Action<Void, VersionInformation> {
|
||||||
|
/**
|
||||||
|
* 获取版本信息
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:55 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
public GetVersionInfoAction(){
|
||||||
|
super.setAction(Actions.GET_VERSION_INFO);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.set;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class SetFriendAddRequestAction extends Action<SetFriendAddRequestAction.Params, Void> {
|
||||||
|
/**
|
||||||
|
* 处理加好友请求
|
||||||
|
* @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){
|
||||||
|
super.setAction(Actions.SET_FRIEND_ADD_REQUEST);
|
||||||
|
super.setParams(new Params(flag, approve, remark));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理加好友请求
|
||||||
|
* @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, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理加好友请求
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理加好友请求
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,78 @@
|
|||||||
|
package cn.wzpmc.api.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 com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理加群请求/邀请
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 20:18
|
||||||
|
*/
|
||||||
|
public class SetGroupAddRequestAction extends Action<SetGroupAddRequestAction.Params, Void> {
|
||||||
|
/**
|
||||||
|
* 处理加群请求/邀请
|
||||||
|
* @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);
|
||||||
|
super.setParams(new Params(flag, type, approve, 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理加群请求/邀请
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:56 v0.0.6-dev
|
||||||
|
* @param flag 加群请求的 flag(需从上报的数据中获得)
|
||||||
|
* @param type 请求类型
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
@ -12,7 +12,7 @@ import lombok.Data;
|
|||||||
* @version 0.0.5-dev
|
* @version 0.0.5-dev
|
||||||
* @since 2024/8/23 20:55
|
* @since 2024/8/23 20:55
|
||||||
*/
|
*/
|
||||||
public class SetGroupAnonymous extends Action<SetGroupAnonymous.Params, Void> {
|
public class SetGroupAnonymousAction extends Action<SetGroupAnonymousAction.Params, Void> {
|
||||||
/**
|
/**
|
||||||
* 群组匿名
|
* 群组匿名
|
||||||
* @author wzp
|
* @author wzp
|
||||||
@ -20,7 +20,7 @@ public class SetGroupAnonymous extends Action<SetGroupAnonymous.Params, Void> {
|
|||||||
* @param groupId 群号
|
* @param groupId 群号
|
||||||
* @param enable 是否允许匿名聊天
|
* @param enable 是否允许匿名聊天
|
||||||
*/
|
*/
|
||||||
public SetGroupAnonymous(Long groupId, Boolean enable) {
|
public SetGroupAnonymousAction(Long groupId, Boolean enable) {
|
||||||
super.setAction(Actions.SET_GROUP_ANONYMOUS);
|
super.setAction(Actions.SET_GROUP_ANONYMOUS);
|
||||||
super.setParams(new Params(groupId, enable));
|
super.setParams(new Params(groupId, enable));
|
||||||
}
|
}
|
||||||
@ -31,7 +31,7 @@ public class SetGroupAnonymous extends Action<SetGroupAnonymous.Params, Void> {
|
|||||||
* @since 2024/8/23 21:16 v0.0.5-dev
|
* @since 2024/8/23 21:16 v0.0.5-dev
|
||||||
* @param groupId 群号
|
* @param groupId 群号
|
||||||
*/
|
*/
|
||||||
public SetGroupAnonymous(Long groupId) {
|
public SetGroupAnonymousAction(Long groupId) {
|
||||||
this(groupId, true);
|
this(groupId, true);
|
||||||
}
|
}
|
||||||
@Data
|
@Data
|
@ -0,0 +1,53 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.set;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class SetGroupLeaveAction extends Action<SetGroupLeaveAction.Params, Void> {
|
||||||
|
/**
|
||||||
|
* 退出群组
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:57 v0.0.6-dev
|
||||||
|
* @param groupId 群号
|
||||||
|
* @param isDismiss 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散
|
||||||
|
*/
|
||||||
|
public SetGroupLeaveAction(Long groupId, boolean isDismiss){
|
||||||
|
super.setAction(Actions.SET_GROUP_LEAVE);
|
||||||
|
super.setParams(new Params(groupId, isDismiss));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退出群组
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:57 v0.0.6-dev
|
||||||
|
* @param 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")
|
||||||
|
private boolean isDismiss;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.set;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class SetGroupNameAction extends Action<SetGroupNameAction.Params, Void> {
|
||||||
|
/**
|
||||||
|
* 设置群名
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:57 v0.0.6-dev
|
||||||
|
* @param groupId 群号
|
||||||
|
* @param 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")
|
||||||
|
private String groupName;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,92 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.set;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class SetGroupSpecialTitleAction extends Action<SetGroupSpecialTitleAction.Params, Void> {
|
||||||
|
/**
|
||||||
|
* 设置群组专属头衔
|
||||||
|
* @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){
|
||||||
|
super.setAction(Actions.SET_GROUP_SPECIAL_TITLE);
|
||||||
|
super.setParams(new Params(groupId, userId, specialTitle, duration));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置群组专属头衔
|
||||||
|
* @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){
|
||||||
|
this(groupId, userId, specialTitle, -1L);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置群组专属头衔
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:58 v0.0.6-dev
|
||||||
|
* @param groupId 群号
|
||||||
|
* @param userId 要设置的 QQ 号
|
||||||
|
*/
|
||||||
|
public SetGroupSpecialTitleAction(Long groupId, Long userId){
|
||||||
|
this(groupId, userId, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置群组专属头衔
|
||||||
|
* @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){
|
||||||
|
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")
|
||||||
|
private Long duration;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package cn.wzpmc.api.api.actions.message.set;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.api.Action;
|
||||||
|
import cn.wzpmc.api.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
|
||||||
|
*/
|
||||||
|
public class SetRestartAction extends Action<SetRestartAction.Params, Void> {
|
||||||
|
/**
|
||||||
|
* 重启 OneBot 实现
|
||||||
|
* @author wzp
|
||||||
|
* @since 2024/8/24 23:59 v0.0.6-dev
|
||||||
|
* @param delay 要延迟的毫秒数,如果默认情况下无法重启,可以尝试设置延迟为 2000 左右
|
||||||
|
*/
|
||||||
|
public SetRestartAction(Integer delay) {
|
||||||
|
super.setAction(Actions.SET_RESTART);
|
||||||
|
super.setParams(new Params(delay));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立即重启 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")
|
||||||
|
private Integer delay;
|
||||||
|
}
|
||||||
|
}
|
@ -11,12 +11,12 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class BotStatus {
|
public class BotStatus {
|
||||||
/**
|
/**
|
||||||
* bot是否在线
|
* 当前 QQ 在线,null 表示无法查询到在线状态
|
||||||
* @since 2024/8/23 21:33 v0.0.5-dev
|
* @since 2024/8/23 21:33 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
private boolean online;
|
private boolean online;
|
||||||
/**
|
/**
|
||||||
* bot健康程度
|
* 状态符合预期,意味着各模块正常运行、功能正常,且 QQ 在线
|
||||||
* @since 2024/8/23 21:34 v0.0.5-dev
|
* @since 2024/8/23 21:34 v0.0.5-dev
|
||||||
*/
|
*/
|
||||||
private boolean good;
|
private boolean good;
|
||||||
|
20
src/main/java/cn/wzpmc/api/entities/CookiesInformation.java
Normal file
20
src/main/java/cn/wzpmc/api/entities/CookiesInformation.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cookie信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:45
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class CookiesInformation {
|
||||||
|
/**
|
||||||
|
* Cookies
|
||||||
|
* @since 2024/8/24 23:59 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
private String cookies;
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* QQ认证信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:46
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
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")
|
||||||
|
private Integer csrfToken;
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CSRF信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:45
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class CsrfTokenInformation {
|
||||||
|
/**
|
||||||
|
* CSRF Token
|
||||||
|
* @since 2024/8/24 23:59 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
private Integer token;
|
||||||
|
}
|
19
src/main/java/cn/wzpmc/api/entities/FilePathInformation.java
Normal file
19
src/main/java/cn/wzpmc/api/entities/FilePathInformation.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:50
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class FilePathInformation {
|
||||||
|
/**
|
||||||
|
* 转换后的语音文件路径,如 /home/somebody/cqhttp/data/record/0B38145AA44505000B38145AA4450500.mp3
|
||||||
|
* @since 2024/8/24 23:35 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
}
|
23
src/main/java/cn/wzpmc/api/entities/FriendInformation.java
Normal file
23
src/main/java/cn/wzpmc/api/entities/FriendInformation.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.user.IUser;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简略好友信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:13
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class FriendInformation extends IUser {
|
||||||
|
/**
|
||||||
|
* 添加后的好友备注(仅在同意时有效)
|
||||||
|
* @since 2024/8/24 23:59 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
}
|
37
src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java
Normal file
37
src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 群成员荣耀信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:39
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
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;
|
||||||
|
}
|
40
src/main/java/cn/wzpmc/api/entities/GroupInformation.java
Normal file
40
src/main/java/cn/wzpmc/api/entities/GroupInformation.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 群信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:15
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
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")
|
||||||
|
private Integer maxMemberCount;
|
||||||
|
}
|
101
src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java
Normal file
101
src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.user.Sex;
|
||||||
|
import cn.wzpmc.api.user.permission.Permissions;
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 群成员信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
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")
|
||||||
|
private boolean cardChangeable;
|
||||||
|
}
|
60
src/main/java/cn/wzpmc/api/entities/HonorInformation.java
Normal file
60
src/main/java/cn/wzpmc/api/entities/HonorInformation.java
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 群荣耀信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:36
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
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")
|
||||||
|
private List<GroupHonorUser> emotionList;
|
||||||
|
}
|
38
src/main/java/cn/wzpmc/api/entities/HonorTalkative.java
Normal file
38
src/main/java/cn/wzpmc/api/entities/HonorTalkative.java
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 龙王信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:38
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
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")
|
||||||
|
private Integer dayCount;
|
||||||
|
}
|
40
src/main/java/cn/wzpmc/api/entities/HonorType.java
Normal file
40
src/main/java/cn/wzpmc/api/entities/HonorType.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 荣耀类型
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 23:11
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
}
|
34
src/main/java/cn/wzpmc/api/entities/VersionInformation.java
Normal file
34
src/main/java/cn/wzpmc/api/entities/VersionInformation.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CQ服务端版本信息
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:54
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
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")
|
||||||
|
private String protocolVersion;
|
||||||
|
}
|
20
src/main/java/cn/wzpmc/api/entities/YesNo.java
Normal file
20
src/main/java/cn/wzpmc/api/entities/YesNo.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package cn.wzpmc.api.entities;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是或否
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 19:53
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class YesNo {
|
||||||
|
/**
|
||||||
|
* 是或否
|
||||||
|
* @since 2024/8/25 00:02 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
private boolean yes;
|
||||||
|
}
|
@ -72,6 +72,6 @@ public interface CommandSender {
|
|||||||
* @return 是否为管理员
|
* @return 是否为管理员
|
||||||
*/
|
*/
|
||||||
default boolean isAdmin(){
|
default boolean isAdmin(){
|
||||||
return Permissions.ADMIN.equals(this.getPermissions());
|
return this.getPermissions().isAdmin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import cn.wzpmc.api.api.IMainApi;
|
|||||||
import cn.wzpmc.api.events.Event;
|
import cn.wzpmc.api.events.Event;
|
||||||
import cn.wzpmc.api.plugins.ICommandManager;
|
import cn.wzpmc.api.plugins.ICommandManager;
|
||||||
import cn.wzpmc.api.plugins.configuration.IConfiguration;
|
import cn.wzpmc.api.plugins.configuration.IConfiguration;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
@ -14,8 +15,10 @@ import java.lang.reflect.InvocationTargetException;
|
|||||||
* @version 0.0.1-dev
|
* @version 0.0.1-dev
|
||||||
* @since 2024/7/31 上午2:31
|
* @since 2024/7/31 上午2:31
|
||||||
*/
|
*/
|
||||||
|
@Getter
|
||||||
public abstract class IBot extends MessageSender implements CommandSender {
|
public abstract class IBot extends MessageSender implements CommandSender {
|
||||||
private static IBot instance = null;
|
private static IBot instance = null;
|
||||||
|
private String nickname;
|
||||||
protected IBot(){
|
protected IBot(){
|
||||||
if (IBot.instance == null){
|
if (IBot.instance == null){
|
||||||
IBot.instance = this;
|
IBot.instance = this;
|
||||||
@ -87,4 +90,19 @@ public abstract class IBot extends MessageSender implements CommandSender {
|
|||||||
public static IBot getInstance(){
|
public static IBot getInstance(){
|
||||||
return IBot.instance;
|
return IBot.instance;
|
||||||
}
|
}
|
||||||
|
public void setNickname(String nickname){
|
||||||
|
if (this.nickname == null){
|
||||||
|
this.nickname = nickname;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new RuntimeException(new IllegalAccessException("Shouldn't set nickname after initialized"));
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void setId(Long id){
|
||||||
|
if (this.id == null){
|
||||||
|
this.id = id;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new RuntimeException(new IllegalAccessException("Shouldn't set id after initialized"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,22 @@ public enum Permissions {
|
|||||||
* 普通用户
|
* 普通用户
|
||||||
* @since 2024/8/1 下午4:49 v0.0.2-dev
|
* @since 2024/8/1 下午4:49 v0.0.2-dev
|
||||||
*/
|
*/
|
||||||
USER,
|
MEMBER(0),
|
||||||
/**
|
/**
|
||||||
* 管理员
|
* 管理员
|
||||||
* @since 2024/8/1 下午4:49 v0.0.2-dev
|
* @since 2024/8/1 下午4:49 v0.0.2-dev
|
||||||
*/
|
*/
|
||||||
ADMIN
|
ADMIN(1),
|
||||||
|
/**
|
||||||
|
* 群主
|
||||||
|
* @since 2024/8/24 19:25 v0.0.6-dev
|
||||||
|
*/
|
||||||
|
OWNER(2);
|
||||||
|
final int level;
|
||||||
|
Permissions(int level){
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
public boolean isAdmin(){
|
||||||
|
return this.level > 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package cn.wzpmc.utils;
|
|||||||
|
|
||||||
import cn.wzpmc.api.api.ActionResponse;
|
import cn.wzpmc.api.api.ActionResponse;
|
||||||
import cn.wzpmc.api.api.Actions;
|
import cn.wzpmc.api.api.Actions;
|
||||||
|
import cn.wzpmc.api.entities.HonorType;
|
||||||
import cn.wzpmc.api.events.Event;
|
import cn.wzpmc.api.events.Event;
|
||||||
import cn.wzpmc.api.events.message.MessageEvent;
|
import cn.wzpmc.api.events.message.MessageEvent;
|
||||||
import cn.wzpmc.api.events.meta.MetaEvent;
|
import cn.wzpmc.api.events.meta.MetaEvent;
|
||||||
@ -10,13 +11,16 @@ import cn.wzpmc.api.events.notice.notify.NotifyEvent;
|
|||||||
import cn.wzpmc.api.events.request.RequestEvent;
|
import cn.wzpmc.api.events.request.RequestEvent;
|
||||||
import cn.wzpmc.api.message.StringMessage;
|
import cn.wzpmc.api.message.StringMessage;
|
||||||
import cn.wzpmc.api.message.json.JsonMessage;
|
import cn.wzpmc.api.message.json.JsonMessage;
|
||||||
|
import cn.wzpmc.api.user.IBot;
|
||||||
import cn.wzpmc.api.user.IUser;
|
import cn.wzpmc.api.user.IUser;
|
||||||
import cn.wzpmc.utils.json.action.ActionReader;
|
import cn.wzpmc.utils.json.action.ActionReader;
|
||||||
import cn.wzpmc.utils.json.action.ActionWriter;
|
import cn.wzpmc.utils.json.action.ActionWriter;
|
||||||
import cn.wzpmc.utils.json.event.*;
|
import cn.wzpmc.utils.json.event.*;
|
||||||
|
import cn.wzpmc.utils.json.honor.HonorWriter;
|
||||||
import cn.wzpmc.utils.json.message.JsonMessageReader;
|
import cn.wzpmc.utils.json.message.JsonMessageReader;
|
||||||
import cn.wzpmc.utils.json.message.JsonMessageWriter;
|
import cn.wzpmc.utils.json.message.JsonMessageWriter;
|
||||||
import cn.wzpmc.utils.json.message.StringMessageReader;
|
import cn.wzpmc.utils.json.message.StringMessageReader;
|
||||||
|
import cn.wzpmc.utils.json.user.IBotReader;
|
||||||
import cn.wzpmc.utils.json.user.IUserReader;
|
import cn.wzpmc.utils.json.user.IUserReader;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
|
||||||
@ -35,6 +39,7 @@ public class JsonUtils {
|
|||||||
public static void initWriter() {
|
public static void initWriter() {
|
||||||
JSON.register(JsonMessage.class, new JsonMessageWriter());
|
JSON.register(JsonMessage.class, new JsonMessageWriter());
|
||||||
JSON.register(Actions.class, new ActionWriter());
|
JSON.register(Actions.class, new ActionWriter());
|
||||||
|
JSON.register(HonorType.class, new HonorWriter());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -53,6 +58,7 @@ public class JsonUtils {
|
|||||||
JSON.register(StringMessage.class, new StringMessageReader());
|
JSON.register(StringMessage.class, new StringMessageReader());
|
||||||
JSON.register(ActionResponse.class, new ActionReader());
|
JSON.register(ActionResponse.class, new ActionReader());
|
||||||
JSON.register(IUser.class, new IUserReader());
|
JSON.register(IUser.class, new IUserReader());
|
||||||
|
JSON.register(IBot.class, new IBotReader());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import cn.wzpmc.api.api.Action;
|
|||||||
import cn.wzpmc.api.api.ActionResponse;
|
import cn.wzpmc.api.api.ActionResponse;
|
||||||
import cn.wzpmc.api.api.Actions;
|
import cn.wzpmc.api.api.Actions;
|
||||||
import cn.wzpmc.entities.api.ApiResponseRequired;
|
import cn.wzpmc.entities.api.ApiResponseRequired;
|
||||||
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.alibaba.fastjson2.JSONReader;
|
import com.alibaba.fastjson2.JSONReader;
|
||||||
import com.alibaba.fastjson2.reader.ObjectReader;
|
import com.alibaba.fastjson2.reader.ObjectReader;
|
||||||
@ -28,11 +29,15 @@ public class ActionReader implements ObjectReader<ActionResponse<?>> {
|
|||||||
Actions action = request.getAction();
|
Actions action = request.getAction();
|
||||||
String status = jsonObject.getString("status");
|
String status = jsonObject.getString("status");
|
||||||
short retcode = jsonObject.getShort("retcode");
|
short retcode = jsonObject.getShort("retcode");
|
||||||
JSONObject data = jsonObject.getJSONObject("data");
|
|
||||||
Object dataObj = null;
|
Object dataObj = null;
|
||||||
if (data != null){
|
if (action.array){
|
||||||
dataObj = data.to(action.responseClass);
|
JSONArray data = jsonObject.getJSONArray("data");
|
||||||
|
dataObj = data.toJavaList(action.responseClass);
|
||||||
|
} else {
|
||||||
|
JSONObject data = jsonObject.getJSONObject("data");
|
||||||
|
if (data != null){
|
||||||
|
dataObj = data.to(action.responseClass);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return new ActionResponse<>(status, retcode, dataObj, echo);
|
return new ActionResponse<>(status, retcode, dataObj, echo);
|
||||||
}
|
}
|
||||||
|
19
src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java
Normal file
19
src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package cn.wzpmc.utils.json.honor;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.entities.HonorType;
|
||||||
|
import com.alibaba.fastjson2.JSONWriter;
|
||||||
|
import com.alibaba.fastjson2.writer.ObjectWriter;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 23:23
|
||||||
|
*/
|
||||||
|
public class HonorWriter implements ObjectWriter<HonorType> {
|
||||||
|
@Override
|
||||||
|
public void write(JSONWriter jsonWriter, Object o, Object o1, Type type, long l) {
|
||||||
|
jsonWriter.writeString(((HonorType) o).name());
|
||||||
|
}
|
||||||
|
}
|
39
src/main/java/cn/wzpmc/utils/json/user/IBotReader.java
Normal file
39
src/main/java/cn/wzpmc/utils/json/user/IBotReader.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package cn.wzpmc.utils.json.user;
|
||||||
|
|
||||||
|
import cn.wzpmc.api.user.IBot;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.alibaba.fastjson2.JSONReader;
|
||||||
|
import com.alibaba.fastjson2.reader.ObjectReader;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wzp
|
||||||
|
* @version 0.0.6-dev
|
||||||
|
* @since 2024/8/24 21:27
|
||||||
|
*/
|
||||||
|
public class IBotReader implements ObjectReader<IBot> {
|
||||||
|
@Override
|
||||||
|
public IBot createInstance(Map map, long features) {
|
||||||
|
Long userId = Long.parseLong(map.get("user_id").toString());
|
||||||
|
String nickname = (String) map.get("nickname");
|
||||||
|
IBot instance = IBot.getInstance();
|
||||||
|
if (instance.getNickname() == null && instance.getId() == null){
|
||||||
|
instance.setId(userId);
|
||||||
|
instance.setName(nickname);
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBot readObject(JSONReader jsonReader, Type type, Object o, long l) {
|
||||||
|
JSONObject jsonObject = jsonReader.readJSONObject();
|
||||||
|
IBot instance = IBot.getInstance();
|
||||||
|
if (instance.getNickname() == null && instance.getId() == null){
|
||||||
|
instance.setId(jsonObject.getLong("user_id"));
|
||||||
|
instance.setName(jsonObject.getString("nickname"));
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user