mirror of
https://github.com/ION606/custom_discordjs.git
synced 2026-05-14 22:26:54 +00:00
Added Interaction integration
This commit is contained in:
@@ -6,6 +6,7 @@ const WebSocketConnection = require('websocket').connection;
|
||||
const handleResponses = require('./handleEvents.js');
|
||||
const { EventEmitter } = require('events');
|
||||
const axios = require('axios');
|
||||
const { exit } = require('process');
|
||||
|
||||
|
||||
|
||||
@@ -43,6 +44,15 @@ class Client extends EventEmitter {
|
||||
this.gwintents = input.intents;
|
||||
}
|
||||
|
||||
async #heartbeat(hbInt, hbSequence) {
|
||||
const toSend = JSON.stringify({ op: 1, d: 0 });
|
||||
this.connection.send((toSend));
|
||||
|
||||
setInterval(() => {
|
||||
this.connection.send(toSend);
|
||||
}, hbInt);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Number} hbint
|
||||
*/
|
||||
@@ -71,6 +81,7 @@ class Client extends EventEmitter {
|
||||
};
|
||||
|
||||
this.connection.send(JSON.stringify(idObj));
|
||||
this.#heartbeat(hbint);
|
||||
}
|
||||
|
||||
|
||||
@@ -86,6 +97,9 @@ class Client extends EventEmitter {
|
||||
this.emit('error', err);
|
||||
}
|
||||
|
||||
interactionRecieved(interaction) {
|
||||
this.emit('interactionRecieved', interaction);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {String} token
|
||||
@@ -101,7 +115,7 @@ class Client extends EventEmitter {
|
||||
connection.on('message', async (msg) => {
|
||||
const data = JSON.parse(msg.utf8Data);
|
||||
|
||||
const response = await handleResponses(data, token);
|
||||
const response = await handleResponses(data, token, this.id);
|
||||
|
||||
if (response.op == 10) { this.#startHeartBeat(response.heartBeat, token); }
|
||||
else if (response.op == 0) {
|
||||
@@ -116,6 +130,11 @@ class Client extends EventEmitter {
|
||||
this.messageRecieved(response.message);
|
||||
}
|
||||
}
|
||||
else if (response.t == gateWayEvents.InteractionCreate) {
|
||||
if (data["d"]["user"]["id"] != this.user_profile.id) {
|
||||
this.interactionRecieved(response.interaction);
|
||||
}
|
||||
}
|
||||
else console.log(response.t);
|
||||
} else {
|
||||
console.log(response.t);
|
||||
@@ -124,6 +143,7 @@ class Client extends EventEmitter {
|
||||
|
||||
connection.on('close', (code, desc) => {
|
||||
console.log(`CONNECTION CLOSED WITH CODE ${code}\nREASON:\n ${desc}`);
|
||||
exit(1);
|
||||
});
|
||||
|
||||
connection.on('error', (err) => {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
const { exit } = require('process');
|
||||
const gateWayEvents = require('../gateway/dispatch.js');
|
||||
const { message } = require('../messages/message.js');
|
||||
const Interaction = require('../interactions/interaction.js');
|
||||
|
||||
|
||||
/**
|
||||
@@ -8,7 +9,7 @@ const { message } = require('../messages/message.js');
|
||||
* @param {Object} msg
|
||||
* @returns {Promise<Boolean>}
|
||||
*/
|
||||
module.exports = async function handleEvents(msgObj, token) {
|
||||
module.exports = async function handleEvents(msgObj, token, id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const op = msgObj["op"];
|
||||
const t = msgObj["t"];
|
||||
@@ -17,10 +18,14 @@ module.exports = async function handleEvents(msgObj, token) {
|
||||
|
||||
if (op == 0 && t == gateWayEvents.Ready) {
|
||||
resolve({op: op, t: t, config: msgObj["d"]["user_settings"], profile: msgObj["d"]["user"] });
|
||||
} else if (t == gateWayEvents.MessageCreate) {
|
||||
}
|
||||
else if (t == gateWayEvents.MessageCreate) {
|
||||
const msg = new message(msgObj["d"], token);
|
||||
resolve({op: op, t: t, message: msg});
|
||||
}
|
||||
else if (t == gateWayEvents.InteractionCreate) {
|
||||
resolve({op: op, t: t, interaction: new Interaction(msgObj["d"], token, id)});
|
||||
}
|
||||
|
||||
else {
|
||||
// console.log(t);
|
||||
|
||||
Reference in New Issue
Block a user