Skip to content

Commit

Permalink
readme更新
Browse files Browse the repository at this point in the history
  • Loading branch information
cnlimiter committed Oct 15, 2022
1 parent 7569e84 commit b3479c5
Show file tree
Hide file tree
Showing 21 changed files with 104 additions and 86 deletions.
37 changes: 19 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,24 +91,25 @@ _✨ 基于 [OneBot](https://github.com/howmanybots/onebot/blob/master/README.md

#### 符合 OneBot 标准的 Event(部分 Event 比 OneBot 标准多上报几个字段,不影响使用)

| 事件类型 | Event |
|------|---------|
| 消息事件 | 私聊信息 |
| 消息事件 | 群消息 |
| 通知事件 | 群文件上传 |
| 通知事件 | 群管理员变动 |
| 通知事件 | 群成员减少 |
| 通知事件 | 群成员增加 |
| 通知事件 | 群禁言 |
| 通知事件 | 好友添加 |
| 通知事件 | 群消息撤回 |
| 通知事件 | 好友消息撤回 |
| 通知事件 | 群内戳一戳 |
| 通知事件 | 群成员荣誉变更 |
| 请求事件 | 加好友请求 |
| 请求事件 | 加群请求邀请 |


| 事件类型 | Event |
|------|-----------|
| 消息事件 | 私聊信息 |
| 消息事件 | 群消息 |
| 通知事件 | 群管理员变动 |
| 通知事件 | 群成员减少 |
| 通知事件 | 群成员增加 |
| 通知事件 | 群禁言 |
| 通知事件 | 好友添加 |
| 通知事件 | 群消息撤回 |
| 通知事件 | 好友消息撤回 |
| 通知事件 | 群内戳一戳 |
| 通知事件 | 好友戳一戳 |
| 通知事件 | 群成员荣誉变更 |
| 通知事件 | 群成员名片变更 |
| 通知事件 | 群成员特殊头衔变更 |
| 通知事件 | 其他客户端在线状态 |
| 请求事件 | 加好友请求 |
| 请求事件 | 加群请求邀请 |

[//]: # (| 通知事件 | [群红包运气王] |)
</details>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,23 @@

import cn.evolvefield.mirai.onebot.OneBotMirai;
import cn.evolvefield.mirai.onebot.dto.response.ActionData;
import cn.evolvefield.mirai.onebot.dto.response.BooleanResp;
import cn.evolvefield.mirai.onebot.dto.response.MessageResponse;
import cn.evolvefield.mirai.onebot.dto.response.common.*;
import cn.evolvefield.mirai.onebot.dto.response.misc.BooleanResp;
import cn.evolvefield.mirai.onebot.dto.response.common.MessageResponse;
import cn.evolvefield.mirai.onebot.dto.response.contact.FriendInfoResp;
import cn.evolvefield.mirai.onebot.dto.response.contact.LoginInfoResp;
import cn.evolvefield.mirai.onebot.dto.response.contact.StrangerInfoResp;
import cn.evolvefield.mirai.onebot.dto.response.group.GroupDataResp;
import cn.evolvefield.mirai.onebot.dto.response.group.GroupHonorInfoResp;
import cn.evolvefield.mirai.onebot.dto.response.group.GroupInfoResp;
import cn.evolvefield.mirai.onebot.dto.response.group.GroupMemberInfoResp;
import cn.evolvefield.mirai.onebot.dto.response.misc.*;
import cn.evolvefield.mirai.onebot.util.BaseUtils;
import cn.evolvefield.mirai.onebot.util.DataBaseUtils;
import cn.evolvefield.mirai.onebot.util.OnebotMsgParser;
import cn.evolvefield.mirai.onebot.web.queue.CacheRequestQueue;
import cn.evolvefield.mirai.onebot.web.queue.CacheSourceQueue;
import com.alibaba.fastjson2.JSONObject;
import kotlinx.coroutines.flow.Flow;
import lombok.Getter;
import net.mamoe.mirai.Bot;
import net.mamoe.mirai.LowLevelApi;
Expand All @@ -26,6 +27,8 @@
import net.mamoe.mirai.contact.MemberPermission;
import net.mamoe.mirai.contact.PermissionDeniedException;
import net.mamoe.mirai.contact.announcement.OfflineAnnouncement;
import net.mamoe.mirai.contact.file.AbsoluteFileFolder;
import net.mamoe.mirai.contact.file.AbsoluteFolder;
import net.mamoe.mirai.event.events.BotInvitedJoinGroupRequestEvent;
import net.mamoe.mirai.event.events.MemberJoinRequestEvent;
import net.mamoe.mirai.event.events.NewFriendRequestEvent;
Expand All @@ -43,7 +46,7 @@
* Date: 2022/10/4 1:41
* Version: 1.0
*/
public class MiraiApi {
public class ApiMap {
Bot bot;
@Getter
private final LinkedHashMap<Long, Long> cachedTempContact = new LinkedHashMap<>();
Expand All @@ -52,11 +55,11 @@ public class MiraiApi {
@Getter
private final CacheSourceQueue cachedSourceQueue = new CacheSourceQueue();

public MiraiApi(Bot bot) {
public ApiMap(Bot bot) {
this.bot = bot;
}

public ActionData<?> callMiraiApi(String action, JSONObject params, MiraiApi mirai) {
public ActionData<?> callMiraiApi(String action, JSONObject params, ApiMap mirai) {
ActionData<?> responseDTO = new PluginFailure();

try {
Expand Down Expand Up @@ -193,6 +196,9 @@ public ActionData<?> callMiraiApi(String action, JSONObject params, MiraiApi mir
case "set_essence_msg" -> {
responseDTO = mirai.setEssenceMsg(params);
}
case "get_group_root_files" -> {
responseDTO = mirai.setEssenceMsg(params);
}
default -> OneBotMirai.logger.error(String.format("未知OneBot API: %s", action));
}
} catch (IllegalArgumentException e) {
Expand All @@ -207,9 +213,10 @@ public ActionData<?> callMiraiApi(String action, JSONObject params, MiraiApi mir
}
return responseDTO;
}
////////////////
//// v11 ////
//////////////


//send
public ActionData<?> sendMessage(JSONObject params) {
if (params.containsKey("message_type")) {
switch (params.getString("message_type")) {
Expand Down Expand Up @@ -659,10 +666,6 @@ public ActionData<?> getVersionInfo(JSONObject params) {
return data;
}

////////////////
//// v11 ////
//////////////

public ActionData<?> setGroupName(JSONObject params) {
var groupId = params.getLong("group_id");
var name = params.getString("group_name");
Expand Down Expand Up @@ -700,38 +703,6 @@ public ActionData<?> setGroupNotice(JSONObject params) {
return new InvalidRequest();
}
}

public ActionData<?> setEssenceMsg(JSONObject params) {
var groupId = params.getLong("group_id");
var messageId = params.getInteger("message_id");
bot.getGroupOrFail(groupId).setEssenceMessage(cachedSourceQueue.get(messageId));
return new GeneralSuccess();

}

public ActionData<?> deleteEssenceMsg(JSONObject params) {
var groupId = params.getLong("group_id");
var messageId = params.getInteger("message_id");
bot.getGroupOrFail(groupId).setEssenceMessage(cachedSourceQueue.get(messageId));
return new GeneralSuccess();//todo 等待mirai的api

}

/////////////////
//// hidden ////
///////////////



@MiraiExperimentalApi
@LowLevelApi
public ActionData<?> getWordSlice(JSONObject params) {
var content = params.getString("content");

return new GeneralSuccess();

}

//todo
////////////////////////////////
//// currently unsupported ////
Expand Down Expand Up @@ -762,4 +733,48 @@ public ActionData<?> setRestartPlugin(JSONObject params) {
}


/////////////////
//// hidden ////
///////////////
@MiraiExperimentalApi
@LowLevelApi
public ActionData<?> getWordSlice(JSONObject params) {
var content = params.getString("content");

return new GeneralSuccess();

}

/////////////////
////addition ///
///////////////
public ActionData<?> getGroupRootFiles(JSONObject params) {
var groupId = params.getLong("group_id");

//Mirai.getInstance().getFileCacheStrategy()
//bot.getGroupOrFail(groupId).setEssenceMessage(cachedSourceQueue.get(messageId));
return new GeneralSuccess();

}

public ActionData<?> setEssenceMsg(JSONObject params) {
var groupId = params.getLong("group_id");
var messageId = params.getInteger("message_id");
bot.getGroupOrFail(groupId).setEssenceMessage(cachedSourceQueue.get(messageId));
return new GeneralSuccess();

}

public ActionData<?> deleteEssenceMsg(JSONObject params) {
var groupId = params.getLong("group_id");
var messageId = params.getInteger("message_id");
//bot.getGroupOrFail(groupId).setEssenceMessage(cachedSourceQueue.get(messageId));
return new GeneralSuccess();//todo 等待mirai的api

}





}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import cn.evolvefield.mirai.onebot.OneBotMirai;
import cn.evolvefield.mirai.onebot.config.BotConfig;
import cn.evolvefield.mirai.onebot.dto.event.EventMap;
import cn.evolvefield.mirai.onebot.dto.event.IgnoreEvent;
import cn.evolvefield.mirai.onebot.web.websocket.OneBotWSServer;
import com.alibaba.fastjson2.JSON;
Expand All @@ -26,12 +25,12 @@ public class BotSession {
private final OneBotWSServer websocketServer;

@Getter
private final MiraiApi apiImpl;
private final ApiMap apiImpl;

public BotSession(Bot bot, BotConfig botConfig){
this.bot = bot;
this.botConfig = botConfig;
this.apiImpl = new MiraiApi(bot);
this.apiImpl = new ApiMap(bot);
this.websocketServer = new OneBotWSServer(this);
this.websocketServer.create();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package cn.evolvefield.mirai.onebot.dto.event;
package cn.evolvefield.mirai.onebot.core;

import cn.evolvefield.mirai.onebot.OneBotMirai;
import cn.evolvefield.mirai.onebot.dto.event.message.MessageMap;
import cn.evolvefield.mirai.onebot.dto.event.Event;
import cn.evolvefield.mirai.onebot.dto.event.IgnoreEvent;
import cn.evolvefield.mirai.onebot.dto.event.notice.friend.FriendAddNoticeEvent;
import cn.evolvefield.mirai.onebot.dto.event.notice.friend.PrivatePokeNoticeEvent;
import cn.evolvefield.mirai.onebot.dto.event.notice.group.*;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package cn.evolvefield.mirai.onebot.dto.event.message;
package cn.evolvefield.mirai.onebot.core;

import cn.evolvefield.mirai.onebot.dto.event.Event;
import cn.evolvefield.mirai.onebot.dto.event.IgnoreEvent;
import cn.evolvefield.mirai.onebot.dto.event.message.PrivateMessageEvent;
import cn.evolvefield.mirai.onebot.entity.Anonymous;
import cn.evolvefield.mirai.onebot.util.DataBaseUtils;
import cn.evolvefield.mirai.onebot.util.OnebotMsgParser;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import cn.evolvefield.mirai.onebot.dto.response.ActionData;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import cn.evolvefield.mirai.onebot.dto.response.ActionData;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import cn.evolvefield.mirai.onebot.dto.response.ActionData;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package cn.evolvefield.mirai.onebot.dto.response;
package cn.evolvefield.mirai.onebot.dto.response.common;

import cn.evolvefield.mirai.onebot.dto.response.ActionData;
import cn.evolvefield.mirai.onebot.entity.MsgId;

/**
Expand All @@ -8,7 +9,7 @@
* Date: 2022/10/10 0:04
* Version: 1.0
*/
public class MessageResponse extends ActionData<MsgId>{
public class MessageResponse extends ActionData<MsgId> {
public MessageResponse(int messageId){
this.setStatus("ok");
this.setRetCode(0);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import cn.evolvefield.mirai.onebot.dto.response.ActionData;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import cn.evolvefield.mirai.onebot.dto.response.ActionData;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response.misc;
package cn.evolvefield.mirai.onebot.dto.response.common;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response;
package cn.evolvefield.mirai.onebot.dto.response.misc;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response;
package cn.evolvefield.mirai.onebot.dto.response.misc;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response;
package cn.evolvefield.mirai.onebot.dto.response.misc;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response;
package cn.evolvefield.mirai.onebot.dto.response.misc;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response;
package cn.evolvefield.mirai.onebot.dto.response.misc;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cn.evolvefield.mirai.onebot.dto.response;
package cn.evolvefield.mirai.onebot.dto.response.misc;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package cn.evolvefield.mirai.onebot.util;

import cn.evolvefield.mirai.onebot.OneBotMirai;
import cn.evolvefield.mirai.onebot.core.MiraiApi;
import cn.evolvefield.mirai.onebot.core.ApiMap;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.java_websocket.WebSocket;
Expand All @@ -13,7 +13,7 @@
* Version: 1.0
*/
public class ActionUtils {
public static void handleWebSocketActions(WebSocket session, MiraiApi api, JSONObject json){
public static void handleWebSocketActions(WebSocket session, ApiMap api, JSONObject json){
try {
OneBotMirai.logger.info(String.format("WebSocket收到操作请求: %s", JSON.toJSONString(json)));
var echo = json.getString("echo");
Expand Down

0 comments on commit b3479c5

Please sign in to comment.