Skip to content

Commit

Permalink
feat: adding essence event
Browse files Browse the repository at this point in the history
fix: Fixed the BUG of automatically agreeing to add group applications
  • Loading branch information
Wzp-2008 committed Oct 10, 2024
1 parent eb44c6b commit f8cbc50
Show file tree
Hide file tree
Showing 11 changed files with 139 additions and 32 deletions.
9 changes: 0 additions & 9 deletions .idea/modules.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules/MyBot.main.iml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules/mybot-api/MyBot.mybot-api.main.iml

This file was deleted.

6 changes: 3 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ allprojects {
apply(plugin = "java-library")
val groupName by extra("cn.wzpmc")
val projectArtifactId by extra("my-bot")
val projectVersion by extra("1.0.3")
val projectVersion by extra("1.0.4")
repositories {
mavenCentral()
maven("https://libraries.minecraft.net")
Expand All @@ -30,6 +30,8 @@ allprojects {
api("org.apache.logging.log4j:log4j-api:2.23.1")
testImplementation(platform("org.junit:junit-bom:5.10.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
// https://mvnrepository.com/artifact/org.yaml/snakeyaml
implementation("org.yaml:snakeyaml:2.2")
}
tasks.compileJava {
options.encoding = "UTF-8"
Expand All @@ -53,8 +55,6 @@ dependencies {
implementation("org.apache.logging.log4j:log4j-jul:2.23.1")
// https://mvnrepository.com/artifact/io.netty/netty-all
implementation("io.netty:netty-all:4.1.112.Final")
// https://mvnrepository.com/artifact/org.yaml/snakeyaml
implementation("org.yaml:snakeyaml:2.2")
// https://mvnrepository.com/artifact/org.jline/jline
implementation("org.jline:jline-terminal:3.26.3")
implementation("org.jline:jline-reader:3.26.3")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package cn.wzpmc.events.notice;

import cn.wzpmc.events.notice.admin.GroupAdminChangeEvent;
import cn.wzpmc.events.notice.essence.EssenceEvent;
import cn.wzpmc.events.notice.file.GroupFileUploadedEvent;
import cn.wzpmc.events.notice.notify.NotifyEvent;
import cn.wzpmc.events.notice.recall.GroupMessageRecallEvent;
Expand Down Expand Up @@ -70,7 +71,13 @@ public enum NoticeType {
* @see NotifyEvent
* @since 2024/8/1 下午10:22 v0.0.2-dev
*/
NOTIFY(NotifyEvent.class);
NOTIFY(NotifyEvent.class),
/**
* 精华消息事件
*
* @since 2024/9/16 21:25 v1.0.3
*/
ESSENCE(EssenceEvent.class);
public final Class<? extends NoticeEvent> clazz;

NoticeType(Class<? extends NoticeEvent> clazz) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package cn.wzpmc.events.notice.essence;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
* 添加精华消息事件
*
* @author wzp
* @version 1.0.3
* @since 2024/9/16 21:32
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class EssenceAddEvent extends EssenceEvent {
/**
* 群ID
*
* @since 2024/9/16 21:33 v1.0.3
*/
@JSONField(name = "group_id")
private Long groupId;
/**
* 设置人ID
*
* @since 2024/9/16 21:33 v1.0.3
*/
@JSONField(name = "user_id")
private Long userId;
/**
* 消息ID
*
* @since 2024/9/16 21:33 v1.0.3
*/
@JSONField(name = "message_id")
private Long messageId;
/**
* 消息发送者ID
*
* @since 2024/9/16 21:33 v1.0.3
*/
@JSONField(name = "sender_id")
private Long senderId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package cn.wzpmc.events.notice.essence;

import cn.wzpmc.events.notice.NoticeEvent;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
* 精华消息事件
*
* @author wzp
* @version 1.0.3
* @since 2024/9/16 21:24
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class EssenceEvent extends NoticeEvent {
/**
* 群精华消息子类型
*
* @since 2024/8/1 下午11:26 v0.0.2-dev
*/
@JSONField(name = "sub_type")
private EssenceSubType subType;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package cn.wzpmc.events.notice.essence;

/**
* 精华消息子事件
*
* @author wzp
* @version 1.0.3
* @since 2024/9/16 21:31
*/
public enum EssenceSubType {
/**
* 添加精华消息事件
*
* @since 2024/9/16 21:35 v1.0.3
*/
ADD(EssenceAddEvent.class);
public final Class<? extends EssenceEvent> clazz;

EssenceSubType(Class<? extends EssenceEvent> clazz) {
this.clazz = clazz;
}
}
10 changes: 7 additions & 3 deletions src/main/java/cn/wzpmc/builtin/event/AddGroupEventHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import cn.wzpmc.api.IMainApi;
import cn.wzpmc.api.actions.message.set.SetGroupAddRequestAction;
import cn.wzpmc.events.request.group.GroupJoinRequestEvent;
import cn.wzpmc.events.request.group.GroupJoinRequestEventSubType;
import cn.wzpmc.plugins.event.EventHandler;
import cn.wzpmc.user.IBot;
import lombok.extern.log4j.Log4j2;
Expand All @@ -20,7 +21,10 @@ public class AddGroupEventHandler {
public void onUserInvite(GroupJoinRequestEvent event) {
IBot instance = IBot.getInstance();
IMainApi mainApi = instance.getMainApi();
mainApi.doApiCallSafe(new SetGroupAddRequestAction(event.getFlag(), event.getSubType()));
log.info("用户{}邀请你加入群{},已同意", event.getUserId(), event.getGroupId());
GroupJoinRequestEventSubType subType = event.getSubType();
if (subType.equals(GroupJoinRequestEventSubType.INVITE)) {
mainApi.doApiCallSafe(new SetGroupAddRequestAction(event.getFlag(), GroupJoinRequestEventSubType.INVITE));
log.info("用户{}邀请你加入群{},已同意", event.getUserId(), event.getGroupId());
}
}
}
}
2 changes: 2 additions & 0 deletions src/main/java/cn/wzpmc/utils/JsonUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import cn.wzpmc.events.message.MessageEvent;
import cn.wzpmc.events.meta.MetaEvent;
import cn.wzpmc.events.notice.NoticeEvent;
import cn.wzpmc.events.notice.essence.EssenceEvent;
import cn.wzpmc.events.notice.notify.NotifyEvent;
import cn.wzpmc.events.request.RequestEvent;
import cn.wzpmc.message.StringMessage;
Expand Down Expand Up @@ -70,6 +71,7 @@ public static void initReader() {
JSON.register(IBot.class, new IBotReader());
JSON.register(Friend.class, new FriendUserReader());
JSON.register(GroupUser.class, new GroupUserReader());
JSON.register(EssenceEvent.class, new EssenceEventReader());
}

}
27 changes: 27 additions & 0 deletions src/main/java/cn/wzpmc/utils/json/event/EssenceEventReader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package cn.wzpmc.utils.json.event;

import cn.wzpmc.events.notice.essence.EssenceEvent;
import cn.wzpmc.events.notice.essence.EssenceSubType;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.reader.ObjectReader;

import java.lang.reflect.Type;

/**
* @author wzp
* @version 1.0.3
* @since 2024/9/16 21:36
*/
public class EssenceEventReader implements ObjectReader<EssenceEvent> {
@Override
public EssenceEvent readObject(JSONReader jsonReader, Type type, Object o, long l) {
JSONReader.SavePoint mark = jsonReader.mark();
JSONObject jsonObject = jsonReader.readJSONObject();
EssenceSubType postType = EssenceSubType.valueOf(jsonObject.getString("sub_type").toUpperCase());
jsonReader.reset(mark);
EssenceEvent event = jsonReader.read(postType.clazz);
jsonReader.close();
return event;
}
}

0 comments on commit f8cbc50

Please sign in to comment.