消息事件注册

This commit is contained in:
theluyuan 2022-06-02 00:50:48 +08:00
parent 3ca67f9721
commit 10aebe67e7
6 changed files with 106 additions and 59 deletions

16
bin/channel-core/base.js Normal file
View File

@ -0,0 +1,16 @@
import { createOpenAPI, createWebsocket } from 'qq-guild-bot';
const testConfig = {
appID: '102011802', // 申请机器人时获取到的机器人 BotAppID
token: 'YPwwxVTwbOy9ULfvsKpmax2PC4xXr74x', // 申请机器人时获取到的机器人 BotToken
intents: ['GUILD_MESSAGES', 'MESSAGE_AUDIT'], // 事件订阅,用于开启可接收的消息类型
sandbox: true, // 沙箱支持可选默认false. v2.7.0+
};
// 创建 client
export const client = createOpenAPI(testConfig);
// 创建 websocket 连接
export const ws = createWebsocket(testConfig);

44
bin/channel-core/index.js Normal file
View File

@ -0,0 +1,44 @@
import { messageCreate, messageDelete } from "../message/index.js";
import { ws } from "./base.js";
// 消息监听
ws.on('READY', (wsdata) => {
console.log('[READY] 事件接收 :', wsdata);
});
ws.on('ERROR', (data) => {
console.log('[ERROR] 事件接收 :', data);
});
ws.on('GUILDS', (data) => {
console.log('[GUILDS] 事件接收 :', data);
});
ws.on('GUILD_MEMBERS', (data) => {
console.log('[GUILD_MEMBERS] 事件接收 :', data);
});
ws.on('GUILD_MESSAGES', (data) => {
// console.log('[GUILD_MESSAGES] 事件接收 :', JSON.stringify(data));
if(data.eventType == "MESSAGE_CREATE"){
messageCreate(data.msg)
}else if(data.eventType == "MESSAGE_DELETE"){
messageDelete(data.msg)
}
});
ws.on('GUILD_MESSAGE_REACTIONS', (data) => {
console.log('[GUILD_MESSAGE_REACTIONS] 事件接收 :', data);
});
ws.on('DIRECT_MESSAGE', (data) => {
console.log('[DIRECT_MESSAGE] 事件接收 :', data);
});
ws.on('INTERACTION', (data) => {
console.log('[INTERACTION] 事件接收 :', data);
});
ws.on('MESSAGE_AUDIT', (data) => {
console.log('[MESSAGE_AUDIT] 事件接收 :', data);
});
ws.on('FORUMS_EVENT', (data) => {
console.log('[FORUMS_EVENT] 事件接收 :', data);
});
ws.on('AUDIO_ACTION', (data) => {
console.log('[AUDIO_ACTION] 事件接收 :', data);
});
ws.on('PUBLIC_GUILD_MESSAGES', (data) => {
console.log('[PUBLIC_GUILD_MESSAGES] 事件接收 :', data);
});

4
bin/message/base.js Normal file
View File

@ -0,0 +1,4 @@
import mitt from 'mitt'
const emitter = mitt()
export default emitter

View File

@ -1,4 +1,29 @@
import mitt from 'mitt' import msg from "./base.js"
const emitter = mitt()
/**
* 新消息通知
* @param {Object} message message对象
*/
export function messageCreate(message){
msg.emit("messageCreate",message)
}
/**
* 注册新消息通知
* @param {Function} fun 回调函数
*/
export function onMessageCreate(fun){
msg.on("messageCreate",fun)
}
/**
* 撤回消息通知
* @param {Object} message message对象
*/
export function messageDelete(message){
msg.emit("messageDelete",message)
}
export default emitter

View File

@ -1,59 +1,7 @@
import { createOpenAPI, createWebsocket } from 'qq-guild-bot'; import "./bin/channel-core/index.js"
import message from './bin/message/index.js' // 加载插件
import "./plugins/activeStatistics/index.js"
message.$emit("aaa")
const testConfig = {
appID: '102011802', // 申请机器人时获取到的机器人 BotAppID
token: 'YPwwxVTwbOy9ULfvsKpmax2PC4xXr74x', // 申请机器人时获取到的机器人 BotToken
intents: ['GUILD_MESSAGES','MESSAGE_AUDIT'], // 事件订阅,用于开启可接收的消息类型
sandbox: true, // 沙箱支持可选默认false. v2.7.0+
};
// 创建 client console.log(1)
const client = createOpenAPI(testConfig);
// 创建 websocket 连接
const ws = createWebsocket(testConfig);
// 消息监听
ws.on('READY', (wsdata) => {
console.log('[READY] 事件接收 :', wsdata);
});
ws.on('ERROR', (data) => {
console.log('[ERROR] 事件接收 :', data);
});
ws.on('GUILDS', (data) => {
console.log('[GUILDS] 事件接收 :', data);
});
ws.on('GUILD_MEMBERS', (data) => {
console.log('[GUILD_MEMBERS] 事件接收 :', data);
});
ws.on('GUILD_MESSAGES', (data) => {
console.log('[GUILD_MESSAGES] 事件接收 :', JSON.stringify(data));
client.messageApi.deleteMessage(data.msg.channel_id, data.msg.id, false ).then(({d})=>{
console.log(d)
}).catch((err)=>{
console.log(err)
})
});
ws.on('GUILD_MESSAGE_REACTIONS', (data) => {
console.log('[GUILD_MESSAGE_REACTIONS] 事件接收 :', data);
});
ws.on('DIRECT_MESSAGE', (data) => {
console.log('[DIRECT_MESSAGE] 事件接收 :', data);
});
ws.on('INTERACTION', (data) => {
console.log('[INTERACTION] 事件接收 :', data);
});
ws.on('MESSAGE_AUDIT', (data) => {
console.log('[MESSAGE_AUDIT] 事件接收 :', data);
});
ws.on('FORUMS_EVENT', (data) => {
console.log('[FORUMS_EVENT] 事件接收 :', data);
});
ws.on('AUDIO_ACTION', (data) => {
console.log('[AUDIO_ACTION] 事件接收 :', data);
});
ws.on('PUBLIC_GUILD_MESSAGES', (data) => {
console.log('[PUBLIC_GUILD_MESSAGES] 事件接收 :', data);
});

View File

@ -0,0 +1,10 @@
import { onMessageCreate } from "../../bin/message/index.js"
/**
* 收到消息处理函数
* @param {Object} msg 消息对象
*/
function createMessage(msg){
console.log("收到消息",msg)
}
onMessageCreate(createMessage)