discord-user-bots
Advanced tools
Comparing version 1.2.5 to 1.2.6
{ | ||
"name": "discord-user-bots", | ||
"version": "1.2.5", | ||
"version": "1.2.6", | ||
"description": "I library that allows you to use the full potential of Discords api to create good user bots.", | ||
@@ -5,0 +5,0 @@ "main": "src/exports.js", |
100
README.md
@@ -115,9 +115,16 @@ # Sopur's user bot library | ||
// The message ID to spawn the thread from Name of the thread | ||
// v v | ||
client.create_thread("811442648677875722", "753267478943105024", name, (auto_archive_duration = 1440)); | ||
// ^ ^ | ||
// The channel ID the message is in ^ | ||
// The amount of time it takes for Discord to auto archive the thread | ||
// The message ID to spawn the thread from Name of the thread | ||
// v v | ||
client.create_thread_from_message("811442648677875722", "753267478943105024", "name", 1440); | ||
// ^ ^ | ||
// The channel ID the message is in ^ | ||
// The amount of time it takes for Discord to auto archive the thread | ||
// The amount of time it takes for Discord to auto archive the thread | ||
// The channel ID to make the thread in v | ||
// v v | ||
client.create_thread("888825512510779414", "name", 1440); | ||
// ^ | ||
// Name of the thread | ||
// The ID of the thread to delete | ||
@@ -133,31 +140,56 @@ // v | ||
```js | ||
client.on = { | ||
discord_disconnect: function () {}, | ||
gateway: function () {}, | ||
heartbeat_sent: function () {}, | ||
heartbeat_received: function () {}, | ||
ready: function () {}, | ||
voice_server_update: function (message) {}, | ||
user_update: function (message) {}, | ||
application_command_create: function (message) {}, | ||
application_command_update: function (message) {}, | ||
application_command_delete: function (message) {}, | ||
interaction_create: function (message) {}, | ||
guild_create: function (message) {}, | ||
guild_delete: function (message) {}, | ||
guild_role_create: function (message) {}, | ||
guild_role_update: function (message) {}, | ||
guild_role_delete: function (message) {}, | ||
thread_create: function (message) {}, | ||
thread_update: function (message) {}, | ||
thread_delete: function (message) {}, | ||
thread_list_sync: function (message) {}, | ||
thread_member_update: function (message) {}, | ||
thread_members_update: function (message) {}, | ||
channel_create: function (message) {}, | ||
channel_update: function (message) {}, | ||
channel_delete: function (message) {}, | ||
channel_pins_update: function (message) {}, | ||
guild_member_add: function (message) {}, | ||
guild_member_update: function (message) {}, | ||
guild_member_remove: function (message) {}, | ||
guild_ban_add: function (message) {}, | ||
guild_ban_remove: function (message) {}, | ||
guild_emojis_update: function (message) {}, | ||
guild_stickers_update: function (message) {}, | ||
guild_integrations_update: function (message) {}, | ||
guild_webhooks_update: function (message) {}, | ||
invite_create: function (message) {}, | ||
invite_delete: function (message) {}, | ||
voice_state_update: function (message) {}, | ||
presence_update: function (message) {}, | ||
message_create: function (message) {}, | ||
message_update: function (message) {}, | ||
message_delete: function (message) {}, | ||
message_delete_bulk: function (message) {}, | ||
message_reaction_add: function (message) {}, | ||
message_reaction_remove: function (message) {}, | ||
message_reaction_remove_all: function (message) {}, | ||
message_reaction_remove_emoji: function (message) {}, | ||
typing_start: function (message) {}, | ||
client.on.heartbeat_sent: function () { }, // Will be used when a heartbeat is sent from the client | ||
client.on.heartbeat_received: function () { }, // Will be used when a heartbeat is received from the client | ||
client.on.ready: function () { }, // Will be used when the client is ready and connected to the Discord WebSocket server | ||
client.on.message_create: function (message) { }, // Will be used when a message is created | ||
client.on.message_edit: function (message) { }, // Will be used when a message is edited | ||
client.on.message_delete: function (message) { }, // Will be used when a message is deleted | ||
client.on.message_delete_bulk: function (messages) { }, // Will be used when messages are deleted in bulk | ||
client.on.embed_sent: function (embed) { }, // Will be used when a embed is sent | ||
client.on.presence_update: function (user) { }, // Will be used when a users presence is updated | ||
client.on.sessions_replace: function (sessions) { }, // Will be used when sessions are replaced | ||
client.on.message_read: function (message) { }, // Will be used when you/the client read a message | ||
client.on.channel_update: function (channel) { }, // Will be used when a channel is updated | ||
client.on.guild_join: function (guild) { }, // Will be used when a guild is added to your user | ||
client.on.guild_leave: function (guild) { }, // Will be used when a guild is removed from your user | ||
// Custom made ones | ||
embed_sent: function (message) {}, | ||
message_edit: function (message) {}, | ||
}; | ||
``` | ||
@@ -164,0 +196,0 @@ |
@@ -13,2 +13,3 @@ const fetch = require("node-fetch"); | ||
language: "en-US", | ||
intents: "all", | ||
typinginterval: 1000, | ||
@@ -26,41 +27,49 @@ }; | ||
ready: function () {}, | ||
voice_server_update: function (message) {}, | ||
user_update: function (message) {}, | ||
application_command_create: function (message) {}, | ||
application_command_update: function (message) {}, | ||
application_command_delete: function (message) {}, | ||
interaction_create: function (message) {}, | ||
guild_create: function (message) {}, | ||
guild_delete: function (message) {}, | ||
guild_role_create: function (message) {}, | ||
guild_role_update: function (message) {}, | ||
guild_role_delete: function (message) {}, | ||
thread_create: function (message) {}, | ||
thread_update: function (message) {}, | ||
thread_delete: function (message) {}, | ||
thread_list_sync: function (message) {}, | ||
thread_member_update: function (message) {}, | ||
thread_members_update: function (message) {}, | ||
channel_create: function (message) {}, | ||
channel_update: function (message) {}, | ||
channel_delete: function (message) {}, | ||
channel_pins_update: function (message) {}, | ||
guild_member_add: function (message) {}, | ||
guild_member_update: function (message) {}, | ||
guild_member_remove: function (message) {}, | ||
guild_ban_add: function (message) {}, | ||
guild_ban_remove: function (message) {}, | ||
guild_emojis_update: function (message) {}, | ||
guild_stickers_update: function (message) {}, | ||
guild_integrations_update: function (message) {}, | ||
guild_webhooks_update: function (message) {}, | ||
invite_create: function (message) {}, | ||
invite_delete: function (message) {}, | ||
voice_state_update: function (message) {}, | ||
presence_update: function (message) {}, | ||
message_create: function (message) {}, | ||
message_edit: function (message) {}, | ||
message_update: function (message) {}, | ||
message_delete: function (message) {}, | ||
message_delete_bulk: function (message) {}, | ||
message_reaction_add: function (message) {}, | ||
message_reaction_remove: function (message) {}, | ||
message_reaction_remove_all: function (message) {}, | ||
message_reaction_remove_emoji: function (message) {}, | ||
typing_start: function (message) {}, | ||
// Custom made ones | ||
embed_sent: function (message) {}, | ||
presence_update: function (message) {}, | ||
sessions_replace: function (message) {}, | ||
message_read: function (message) {}, | ||
channel_update: function (message) {}, | ||
guild_join: function (message) {}, | ||
guild_leave: function (message) {}, | ||
/* I'll add these later... | ||
channel_create: function (message) { }, | ||
channel_delete: function (message) { }, | ||
channel_pins_update: function (message) { }, | ||
guild_update: function (message) { }, | ||
guild_ban_add: function (message) { }, | ||
guild_ban_remove: function (message) { }, | ||
guild_emojis_update: function (message) { }, | ||
guild_integrations_update: function (message) { }, | ||
guild_member_add: function (message) { }, | ||
guild_member_remove: function (message) { }, | ||
guild_member_update: function (message) { }, | ||
guild_members_chunk: function (message) { }, | ||
guild_role_create: function (message) { }, | ||
guild_role_update: function (message) { }, | ||
guild_role_delete: function (message) { }, | ||
invite_create: function (message) { }, | ||
invite_delete: function (message) { }, | ||
message_reaction_add: function (message) { }, | ||
message_reaction_remove: function (message) { }, | ||
message_reaction_remove_all: function (message) { }, | ||
message_reaction_remove_emoji: function (message) { }, | ||
user_update: function (message) { }, | ||
voice_state_update: function (message) { }, | ||
voice_server_update: function (message) { }, | ||
webhooks_update: function (message) { }, | ||
interaction_update: function (message) { },*/ | ||
message_edit: function (message) {}, | ||
}; | ||
@@ -75,3 +84,3 @@ | ||
/** | ||
* Used for the token checking | ||
* Used after the token checking to set everything | ||
* @private | ||
@@ -129,2 +138,135 @@ */ | ||
} | ||
case "VOICE_SERVER_UPDATE": { | ||
this.on.voice_server_update(message.d); | ||
break; | ||
} | ||
case "USER_UPDATE": { | ||
this.on.user_update(message.d); | ||
break; | ||
} | ||
case "APPLICATION_COMMAND_CREATE": { | ||
this.on.application_command_create(message.d); | ||
break; | ||
} | ||
case "APPLICATION_COMMAND_UPDATE": { | ||
this.on.application_command_update(message.d); | ||
break; | ||
} | ||
case "APPLICATION_COMMAND_DELETE": { | ||
this.on.application_command_delete(message.d); | ||
break; | ||
} | ||
case "INTERACTION_CREATE": { | ||
this.on.interaction_create(message.d); | ||
break; | ||
} | ||
case "GUILD_CREATE": { | ||
this.on.guild_create(message.d); | ||
break; | ||
} | ||
case "GUILD_DELETE": { | ||
this.on.guild_delete(message.d); | ||
break; | ||
} | ||
case "GUILD_ROLE_CREATE": { | ||
this.on.guild_role_create(message.d); | ||
break; | ||
} | ||
case "GUILD_ROLE_UPDATE": { | ||
this.on.guild_role_update(message.d); | ||
break; | ||
} | ||
case "GUILD_ROLE_DELETE": { | ||
this.on.guild_role_delete(message.d); | ||
break; | ||
} | ||
case "THREAD_CREATE": { | ||
this.on.thread_create(message.d); | ||
break; | ||
} | ||
case "THREAD_UPDATE": { | ||
this.on.thread_update(message.d); | ||
break; | ||
} | ||
case "THREAD_DELETE": { | ||
this.on.thread_delete(message.d); | ||
break; | ||
} | ||
case "THREAD_LIST_SYNC": { | ||
this.on.thread_list_sync(message.d); | ||
break; | ||
} | ||
case "THREAD_MEMBER_UPDATE": { | ||
this.on.thread_member_update(message.d); | ||
break; | ||
} | ||
case "THREAD_MEMBERS_UPDATE": { | ||
this.on.thread_members_update(message.d); | ||
break; | ||
} | ||
case "CHANNEL_CREATE": { | ||
this.on.channel_create(message.d); | ||
break; | ||
} | ||
case "CHANNEL_DELETE": { | ||
this.on.channel_delete(message.d); | ||
break; | ||
} | ||
case "CHANNEL_PINS_UPDATE": { | ||
this.on.channel_pins_update(message.d); | ||
break; | ||
} | ||
case "GUILD_MEMBER_ADD": { | ||
this.on.guild_member_add(message.d); | ||
break; | ||
} | ||
case "GUILD_MEMBER_UPDATE": { | ||
this.on.guild_member_update(message.d); | ||
break; | ||
} | ||
case "GUILD_MEMBER_REMOVE": { | ||
this.on.guild_member_remove(message.d); | ||
break; | ||
} | ||
case "GUILD_BAN_ADD": { | ||
this.on.guild_ban_add(message.d); | ||
break; | ||
} | ||
case "GUILD_BAN_REMOVE": { | ||
this.on.guild_ban_remove(message.d); | ||
break; | ||
} | ||
case "GUILD_EMOJIS_UPDATE": { | ||
this.on.guild_emojis_update(message.d); | ||
break; | ||
} | ||
case "GUILD_STICKERS_UPDATE": { | ||
this.on.guild_stickers_update(message.d); | ||
break; | ||
} | ||
case "GUILD_INTEGRATIONS_UPDATE": { | ||
this.on.guild_integrations_update(message.d); | ||
break; | ||
} | ||
case "GUILD_WEBHOOKS_UPDATE": { | ||
this.on.guild_webhooks_update(message.d); | ||
break; | ||
} | ||
case "INVITE_CREATE": { | ||
this.on.invite_create(message.d); | ||
break; | ||
} | ||
case "INVITE_DELETE": { | ||
this.on.invite_delete(message.d); | ||
break; | ||
} | ||
case "VOICE_STATE_UPDATE": { | ||
this.on.voice_state_update(message.d); | ||
break; | ||
} | ||
case "PRESENCE_UPDATE": { | ||
this.on.presence_update(message.d); | ||
break; | ||
} | ||
case "MESSAGE_CREATE": { | ||
@@ -135,2 +277,6 @@ this.on.message_create(message.d); | ||
case "MESSAGE_UPDATE": { | ||
if (message.d.flags !== undefined && message.d.flags << 5 === 0 && Object.keys(message.d).length === 4) { | ||
this.on.thread_delete(message.d); | ||
break; | ||
} | ||
switch (message.type) { | ||
@@ -150,6 +296,2 @@ case undefined: { | ||
} | ||
case "PRESENCE_UPDATE": { | ||
this.on.presence_update(message.d); | ||
break; | ||
} | ||
case "MESSAGE_DELETE": { | ||
@@ -163,20 +305,21 @@ this.on.message_delete(message.d); | ||
} | ||
case "SESSIONS_REPLACE": { | ||
this.on.sessions_replace(message.d); | ||
case "MESSAGE_REACTION_ADD": { | ||
this.on.message_reaction_add(message.d); | ||
break; | ||
} | ||
case "MESSAGE_ACK": { | ||
this.on.message_read(message.d); | ||
case "MESSAGE_REACTION_REMOVE": { | ||
this.on.message_reaction_remove(message.d); | ||
break; | ||
} | ||
case "CHANNEL_UPDATE": { | ||
this.on.channel_update(message.d); | ||
case "MESSAGE_REACTION_REMOVE_ALL": { | ||
this.on.message_reaction_remove_all(message.d); | ||
break; | ||
} | ||
case "GUILD_CREATE": { | ||
this.on.guild_join(message.d); | ||
case "MESSAGE_REACTION_REMOVE_EMOJI": { | ||
this.on.message_reaction_remove_emoji(message.d); | ||
break; | ||
} | ||
case "GUILD_DELETE": { | ||
this.on.guild_leave(message.d); | ||
case "TYPING_START": { | ||
this.on.typing_start(message.d); | ||
break; | ||
} | ||
@@ -731,3 +874,3 @@ } | ||
*/ | ||
async create_thread(messageid, channelid, name, auto_archive_duration = 1440) { | ||
async create_thread_from_message(messageid, channelid, name, auto_archive_duration = 1440) { | ||
if (this.ready_status === 0) return new Error("Client still in connecting state."); | ||
@@ -765,2 +908,41 @@ if (!messageid || !channelid || !name) return new Error("Invalid parameters"); | ||
/** | ||
* Creates a thread in a channel | ||
* @param {string} channelid Channel to create the thread in | ||
* @param {string} name The name of the thread | ||
* @param {number} auto_archive_duration How long util the thread auto archives (Default is 1440) | ||
* @returns {Promise<Object>} The response from Discord | ||
*/ | ||
async create_thread(channelid, name, auto_archive_duration = 1440) { | ||
if (this.ready_status === 0) return new Error("Client still in connecting state."); | ||
if (!channelid || !name) return new Error("Invalid parameters"); | ||
return new Promise((res, rej) => { | ||
fetch(`https://discord.com/api/${this.config.api}/channels/${channelid}/threads`, { | ||
headers: { | ||
accept: "*/*", | ||
"accept-language": this.config.language, | ||
authorization: this.token, | ||
"content-type": "application/json", | ||
"sec-fetch-dest": "empty", | ||
"sec-fetch-mode": "cors", | ||
"sec-fetch-site": "same-origin", | ||
}, | ||
referrer: "https://discord.com/channels/@me", | ||
referrerPolicy: "no-referrer-when-downgrade", | ||
body: JSON.stringify({ | ||
name: name, | ||
type: 11, | ||
auto_archive_duration: auto_archive_duration, | ||
location: "Thread Browser Toolbar", | ||
}), | ||
method: "POST", | ||
mode: "cors", | ||
}).then((response) => { | ||
response.json().then((m) => { | ||
res(m); | ||
}); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Deletes a thread | ||
@@ -767,0 +949,0 @@ * @param {string} threadid The ID of the thread to delete |
@@ -1,4 +0,4 @@ | ||
const Client = require('./client.js'); | ||
const Client = require("./client.js"); | ||
const packets = require("./packet.js"); | ||
module.exports = { Client, packets }; |
class GateWayOpen { | ||
constructor(token, config) { | ||
let intent = 0; | ||
switch (config.intents) { | ||
case "all": { | ||
intent = 32767; | ||
break; | ||
} | ||
case "minimum": { | ||
intent = 1; | ||
break; | ||
} | ||
case "unset": { | ||
intent = null; | ||
break; | ||
} | ||
} | ||
return { | ||
"op": 2, | ||
"d": { | ||
"token": token, | ||
"capabilities": 125, | ||
"properties": { | ||
"os": config.os, | ||
"browser": config.bd, | ||
"device": "", | ||
"system_locale": config.language, | ||
"browser_user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36", | ||
"browser_version": "91.0.4472.106", | ||
"os_version": "", | ||
"referrer": "", | ||
"referring_domain": "", | ||
"referrer_current": "", | ||
"referring_domain_current": "", | ||
"release_channel": "stable", | ||
"client_build_number": 92214, | ||
"client_event_source": null | ||
op: 2, | ||
d: { | ||
token: token, | ||
capabilities: 125, | ||
intents: intent, | ||
properties: { | ||
os: config.os, | ||
browser: "Chrome", | ||
device: "", | ||
system_locale: config.language, | ||
browser_user_agent: `Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36`, | ||
browser_version: "93.0.4577.63", | ||
os_version: "", | ||
referrer: "", | ||
referring_domain: "", | ||
referrer_current: "", | ||
referring_domain_current: "", | ||
release_channel: "stable", | ||
client_build_number: 97662, | ||
client_event_source: null, | ||
}, | ||
"presence": { | ||
"status": "online", | ||
"since": 0, | ||
"activities": [], | ||
"afk": false | ||
}, | ||
"compress": false, | ||
"client_state": { | ||
"guild_hashes": {}, | ||
"highest_last_message_id": "0", | ||
"read_state_version": 0, | ||
"user_guild_settings_version": -1 | ||
} | ||
} | ||
} | ||
}; | ||
}; | ||
presence: { status: "online", since: 0, activities: [], afk: false }, | ||
compress: false, | ||
client_state: { guild_hashes: {}, highest_last_message_id: "0", read_state_version: 0, user_guild_settings_version: -1 }, | ||
}, | ||
}; | ||
} | ||
} | ||
@@ -45,7 +51,7 @@ class HeartBeat { | ||
return { | ||
"op": 1, | ||
"d": (lastpacket === undefined) ? null : Number(lastpacket), | ||
op: 1, | ||
d: lastpacket === undefined ? null : Number(lastpacket), | ||
}; | ||
}; | ||
}; | ||
} | ||
} | ||
@@ -55,11 +61,11 @@ class GuildRequest { | ||
return { | ||
"op": 8, | ||
"d": { | ||
"guild_id": String(guildid), | ||
"query": "", | ||
"limit": Number(limit) | ||
} | ||
op: 8, | ||
d: { | ||
guild_id: String(guildid), | ||
query: "", | ||
limit: Number(limit), | ||
}, | ||
}; | ||
}; | ||
}; | ||
} | ||
} | ||
@@ -69,17 +75,17 @@ class tokenCheck { | ||
return { | ||
"headers": { | ||
"accept": "*/*", | ||
headers: { | ||
accept: "*/*", | ||
"accept-language": "en-US", | ||
"authorization": token, | ||
"sec-ch-ua": "\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"", | ||
authorization: token, | ||
"sec-ch-ua": '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"', | ||
"sec-ch-ua-mobile": "?0", | ||
"sec-fetch-dest": "empty", | ||
"sec-fetch-mode": "cors", | ||
"sec-fetch-site": "same-origin" | ||
"sec-fetch-site": "same-origin", | ||
}, | ||
"referrer": "https://discord.com/login?redirect_to=%2Fchannels%2F%40me", | ||
"referrerPolicy": "strict-origin-when-cross-origin", | ||
"body": null, | ||
"method": "GET", | ||
"mode": "cors" | ||
referrer: "https://discord.com/login?redirect_to=%2Fchannels%2F%40me", | ||
referrerPolicy: "strict-origin-when-cross-origin", | ||
body: null, | ||
method: "GET", | ||
mode: "cors", | ||
}; | ||
@@ -86,0 +92,0 @@ } |
70198
1302
324
19