2023-04-01 21:49:27 -04:00
|
|
|
import gateWayEvents from '../gateway/dispatch.js'
|
|
|
|
|
import { message } from '../messages/message.js';
|
|
|
|
|
import {Interaction} from '../interactions/interaction.js';
|
|
|
|
|
import Guild from '../guilds/Guild.js';
|
2023-03-18 18:02:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description Returns true if this is a READY event and false otherwise
|
|
|
|
|
* @param {Object} msg
|
|
|
|
|
* @returns {Promise<Boolean>}
|
|
|
|
|
*/
|
2023-04-07 20:12:16 -04:00
|
|
|
export default async function handleEvents(msgObj, token, client) {
|
2023-03-18 18:02:17 -04:00
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
const op = msgObj["op"];
|
|
|
|
|
const t = msgObj["t"];
|
|
|
|
|
|
|
|
|
|
if (op == 10) return resolve({op: op, heartBeat: msgObj["d"]["heartbeat_interval"]});
|
2023-04-07 19:13:15 -04:00
|
|
|
else if (op != 0) { return resolve(false); } // https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes
|
2023-03-18 18:02:17 -04:00
|
|
|
|
2023-04-07 19:13:15 -04:00
|
|
|
switch(t) {
|
|
|
|
|
case gateWayEvents.Ready:
|
|
|
|
|
resolve({op: op, t: t, config: msgObj["d"]["user_settings"], profile: msgObj["d"]["user"]}); //, guilds: msgObj["d"]["guilds"]
|
|
|
|
|
break;
|
2023-03-24 20:32:27 -04:00
|
|
|
|
2023-04-07 19:13:15 -04:00
|
|
|
case gateWayEvents.MessageCreate:
|
2023-04-07 20:12:16 -04:00
|
|
|
const msg = new message(msgObj["d"], client);
|
2023-04-07 19:13:15 -04:00
|
|
|
resolve({op: op, t: t, message: msg});
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case gateWayEvents.InteractionCreate:
|
2023-04-07 20:12:16 -04:00
|
|
|
resolve({op: op, t: t, interaction: new Interaction(msgObj["d"], client)});
|
2023-04-07 19:13:15 -04:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case gateWayEvents.GuildCreate:
|
2023-04-07 20:12:16 -04:00
|
|
|
resolve({op: op, t: t, guild: new Guild(msgObj["d"], client)});
|
2023-04-07 19:13:15 -04:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case gateWayEvents.ThreadCreate:
|
|
|
|
|
resolve({op: op, t: t, threadRaw: msgObj["d"]});
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case gateWayEvents.ThreadDelete:
|
|
|
|
|
resolve({op: op, t: t, threadRaw: msgObj["d"]});
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case gateWayEvents.ThreadUpdate:
|
|
|
|
|
resolve({op: op, t: t, threadRaw: msgObj["d"]});
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default: console.log(t);
|
2023-03-18 18:02:17 -04:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|