v2.1.0
fix: ClientUser.notes return empty Collection fix: Recieve messages from large servers #72 feat: checkUpdate return Debug event (not console.log) feat: RelationshipAdd event, param type return RelationshipTypes feat: online status when login feat: fix documents
This commit is contained in:
parent
04251a8b87
commit
c165824419
@ -44,6 +44,7 @@ But if you want to see some specific notes (with pictures) you can go to [here](
|
|||||||
- [X] Voice Channel (Join, Leave, Speak, etc.)
|
- [X] Voice Channel (Join, Leave, Speak, etc.)
|
||||||
- [X] Documentation
|
- [X] Documentation
|
||||||
- [X] Audio call
|
- [X] Audio call
|
||||||
|
- [X] Recieve messages from large servers
|
||||||
- [ ] Add more guild http api wraps
|
- [ ] Add more guild http api wraps
|
||||||
- [ ] Video stream
|
- [ ] Video stream
|
||||||
- [ ] Everything
|
- [ ] Everything
|
||||||
|
File diff suppressed because one or more lines are too long
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "discord.js-selfbot-v13",
|
"name": "discord.js-selfbot-v13",
|
||||||
"version": "2.0.43",
|
"version": "2.1.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "discord.js-selfbot-v13",
|
"name": "discord.js-selfbot-v13",
|
||||||
"version": "2.0.4",
|
"version": "2.1.0",
|
||||||
"license": "GNU General Public License v3.0",
|
"license": "GNU General Public License v3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordjs/builders": "^0.13.0",
|
"@discordjs/builders": "^0.13.0",
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "discord.js-selfbot-v13",
|
"name": "discord.js-selfbot-v13",
|
||||||
"version": "2.0.43",
|
"version": "2.1.0",
|
||||||
"description": "A unofficial discord.js fork for creating selfbots [Based on discord.js v13]",
|
"description": "A unofficial discord.js fork for creating selfbots [Based on discord.js v13]",
|
||||||
"main": "./src/index.js",
|
"main": "./src/index.js",
|
||||||
"types": "./typings/index.d.ts",
|
"types": "./typings/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"all": "npm run test && npm run test:typescript && npm run fix:all && npm run build",
|
||||||
"test": "npm run lint:all && npm run lint:typings && npm run docs:test",
|
"test": "npm run lint:all && npm run lint:typings && npm run docs:test",
|
||||||
"fix:all": "npm run lint:fix && npm run lint:typings:fix && npm run format",
|
"fix:all": "npm run lint:fix && npm run lint:typings:fix && npm run format",
|
||||||
"test:typescript": "tsc --noEmit && tsd",
|
"test:typescript": "tsc --noEmit && tsd",
|
||||||
@ -14,7 +15,6 @@
|
|||||||
"lint:typings:fix": "tslint typings/index.d.ts --fix",
|
"lint:typings:fix": "tslint typings/index.d.ts --fix",
|
||||||
"format": "prettier --write src/**/*.js typings/**/*.ts",
|
"format": "prettier --write src/**/*.js typings/**/*.ts",
|
||||||
"lint:all": "npm run lint && npm run lint:typings",
|
"lint:all": "npm run lint && npm run lint:typings",
|
||||||
"checkup": "node update.mjs",
|
|
||||||
"docs": "docgen --source src --custom docs/index.yml --output docs/main.json",
|
"docs": "docgen --source src --custom docs/index.yml --output docs/main.json",
|
||||||
"docs:test": "docgen --source src --custom docs/index.yml",
|
"docs:test": "docgen --source src --custom docs/index.yml",
|
||||||
"build": "npm run lint:fix && npm run lint:typings:fix && npm run format && npm run docs"
|
"build": "npm run lint:fix && npm run lint:typings:fix && npm run format && npm run docs"
|
||||||
|
@ -1,6 +1,24 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const { Events, Status } = require('../../../util/Constants');
|
const { Events, Opcodes, Status } = require('../../../util/Constants');
|
||||||
|
|
||||||
|
// Receive messages in large guilds
|
||||||
|
const run = (client, guild) => {
|
||||||
|
client.ws.broadcast({
|
||||||
|
op: Opcodes.LAZY_REQUEST,
|
||||||
|
d: {
|
||||||
|
guild_id: guild.id,
|
||||||
|
typing: true,
|
||||||
|
threads: false,
|
||||||
|
activities: true,
|
||||||
|
thread_member_lists: [],
|
||||||
|
members: [],
|
||||||
|
channels: {
|
||||||
|
// [guild.channels.cache.first().id]: [[0, 99]],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = (client, { d: data }, shard) => {
|
module.exports = (client, { d: data }, shard) => {
|
||||||
let guild = client.guilds.cache.get(data.id);
|
let guild = client.guilds.cache.get(data.id);
|
||||||
@ -8,6 +26,7 @@ module.exports = (client, { d: data }, shard) => {
|
|||||||
if (!guild.available && !data.unavailable) {
|
if (!guild.available && !data.unavailable) {
|
||||||
// A newly available guild
|
// A newly available guild
|
||||||
guild._patch(data);
|
guild._patch(data);
|
||||||
|
run(client, guild);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// A new guild
|
// A new guild
|
||||||
@ -20,6 +39,7 @@ module.exports = (client, { d: data }, shard) => {
|
|||||||
* @param {Guild} guild The created guild
|
* @param {Guild} guild The created guild
|
||||||
*/
|
*/
|
||||||
client.emit(Events.GUILD_CREATE, guild);
|
client.emit(Events.GUILD_CREATE, guild);
|
||||||
|
run(client, guild);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -8,30 +8,31 @@ const Discord = require('../../../index');
|
|||||||
const { Events, Opcodes } = require('../../../util/Constants');
|
const { Events, Opcodes } = require('../../../util/Constants');
|
||||||
const { Networking } = require('../../../util/Voice');
|
const { Networking } = require('../../../util/Voice');
|
||||||
|
|
||||||
async function checkUpdate() {
|
async function checkUpdate(client) {
|
||||||
const res_ = await axios.get(`https://registry.npmjs.com/${encodeURIComponent('discord.js-selfbot-v13')}`);
|
const res_ = await axios.get(`https://registry.npmjs.com/${encodeURIComponent('discord.js-selfbot-v13')}`);
|
||||||
const lastest_tag = res_.data['dist-tags'].latest;
|
const lastest_tag = res_.data['dist-tags'].latest;
|
||||||
// Checking if the package is outdated
|
// Checking if the package is outdated
|
||||||
// Stable version
|
// Stable version
|
||||||
if (lastest_tag !== Discord.version && Discord.version.includes('-') == false) {
|
if (lastest_tag !== Discord.version && Discord.version.includes('-') == false) {
|
||||||
return console.log(`${chalk.yellowBright('[WARNING]')} New Discord.js-selfbot-v13 version.
|
return client.emit(
|
||||||
Old Version: ${chalk.redBright(Discord.version)} => New Version: ${chalk.greenBright(lastest_tag)}`);
|
Events.DEBUG,
|
||||||
|
`${chalk.yellowBright('[WARNING]')} New Discord.js-selfbot-v13 version.
|
||||||
|
Old Version: ${chalk.redBright(Discord.version)} => New Version: ${chalk.greenBright(lastest_tag)}`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
/*
|
client.emit(
|
||||||
Removed:
|
Events.DEBUG,
|
||||||
console.log(
|
|
||||||
`${chalk.greenBright('[OK]')} Discord.js-selfbot-v13 is up to date. Version: ${chalk.blueBright(Discord.version)}`,
|
`${chalk.greenBright('[OK]')} Discord.js-selfbot-v13 is up to date. Version: ${chalk.blueBright(Discord.version)}`,
|
||||||
);
|
);
|
||||||
*/
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = (client, { d: data }, shard) => {
|
module.exports = (client, { d: data }, shard) => {
|
||||||
if (client.options.checkUpdate) {
|
if (client.options.checkUpdate) {
|
||||||
try {
|
try {
|
||||||
checkUpdate();
|
checkUpdate(client);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(`${chalk.redBright('[Fail]')} Check Update error:`, e.message);
|
client.emit(Events.DEBUG, `${chalk.redBright('[Fail]')} Check Update error: ${e.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,9 +83,7 @@ module.exports = (client, { d: data }, shard) => {
|
|||||||
|
|
||||||
client.user.connectedAccounts = data.connected_accounts ?? [];
|
client.user.connectedAccounts = data.connected_accounts ?? [];
|
||||||
|
|
||||||
for (const [userid, note] of Object.entries(data.notes ?? {})) {
|
client.user._patchNote(data.notes);
|
||||||
client.user.notes.set(userid, note);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const private_channel of data.private_channels) {
|
for (const private_channel of data.private_channels) {
|
||||||
client.channels._add(private_channel);
|
client.channels._add(private_channel);
|
||||||
@ -118,7 +117,7 @@ module.exports = (client, { d: data }, shard) => {
|
|||||||
client.guilds._add(guild);
|
client.guilds._add(guild);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Receive messages in large guilds [Test]
|
// Receive messages in large guilds
|
||||||
client.guilds.cache.map(guild => {
|
client.guilds.cache.map(guild => {
|
||||||
client.ws.broadcast({
|
client.ws.broadcast({
|
||||||
op: Opcodes.LAZY_REQUEST,
|
op: Opcodes.LAZY_REQUEST,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const { Events } = require('../../../util/Constants');
|
const { Events, Relationship } = require('../../../util/Constants');
|
||||||
|
|
||||||
module.exports = (client, { d: data }) => {
|
module.exports = (client, { d: data }) => {
|
||||||
if (data.user) {
|
if (data.user) {
|
||||||
@ -11,7 +11,7 @@ module.exports = (client, { d: data }) => {
|
|||||||
* Emitted whenever a relationship is updated.
|
* Emitted whenever a relationship is updated.
|
||||||
* @event Client#relationshipAdd
|
* @event Client#relationshipAdd
|
||||||
* @param {UserId} user The userID that was updated
|
* @param {UserId} user The userID that was updated
|
||||||
* @param {Number} type The new relationship type
|
* @param {RelationshipType} type The new relationship type
|
||||||
*/
|
*/
|
||||||
client.emit(Events.RELATIONSHIP_ADD, data.id, data.type);
|
client.emit(Events.RELATIONSHIP_ADD, data.id, Relationship[data.type]);
|
||||||
};
|
};
|
||||||
|
@ -14,17 +14,6 @@ class ClientUser extends User {
|
|||||||
_patch(data) {
|
_patch(data) {
|
||||||
super._patch(data);
|
super._patch(data);
|
||||||
|
|
||||||
/*
|
|
||||||
Add: notes
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* The notes cache of the client user.
|
|
||||||
* @type {Collection<Snowflake, Message>}
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
this.notes = new Collection();
|
|
||||||
// This.messageMentions = new Collection();
|
|
||||||
|
|
||||||
if ('verified' in data) {
|
if ('verified' in data) {
|
||||||
/**
|
/**
|
||||||
* Whether or not this account has been verified
|
* Whether or not this account has been verified
|
||||||
@ -67,11 +56,23 @@ class ClientUser extends User {
|
|||||||
/**
|
/**
|
||||||
* Email address of the client user.
|
* Email address of the client user.
|
||||||
* @type {?string}
|
* @type {?string}
|
||||||
* @deprecated
|
|
||||||
* @see https://discord.com/developers/docs/resources/user#user-object
|
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Patch note
|
||||||
|
* @param {Object} data Note data
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
_patchNote(data) {
|
||||||
|
/**
|
||||||
|
* The notes cache of the client user.
|
||||||
|
* @type {Collection<Snowflake, string>}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
this.notes = data ? new Collection(Object.entries(data)) : new Collection();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the client user's presence
|
* Represents the client user's presence
|
||||||
* @type {ClientPresence}
|
* @type {ClientPresence}
|
||||||
@ -163,10 +164,10 @@ class ClientUser extends User {
|
|||||||
/**
|
/**
|
||||||
* Set HyperSquad House
|
* Set HyperSquad House
|
||||||
* @param {HypeSquadOptions<number|string>} type
|
* @param {HypeSquadOptions<number|string>} type
|
||||||
* `LEAVE`: 0
|
* * `LEAVE`: 0
|
||||||
* `HOUSE_BRAVERY`: 1
|
* * `HOUSE_BRAVERY`: 1
|
||||||
* `HOUSE_BRILLIANCE`: 2
|
* * `HOUSE_BRILLIANCE`: 2
|
||||||
* `HOUSE_BALANCE`: 3
|
* * `HOUSE_BALANCE`: 3
|
||||||
* @returns {Promise<void>}
|
* @returns {Promise<void>}
|
||||||
* @example
|
* @example
|
||||||
* // Set HyperSquad HOUSE_BRAVERY
|
* // Set HyperSquad HOUSE_BRAVERY
|
||||||
|
@ -207,7 +207,8 @@ class User extends Base {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get profile from Discord, if client is in a server with the target.
|
* Get profile from Discord, if client is in a server with the target.
|
||||||
* @returns {Promise<User>} the user object
|
* @type {User}
|
||||||
|
* @returns {Promise<User>}
|
||||||
*/
|
*/
|
||||||
async getProfile() {
|
async getProfile() {
|
||||||
if (this.client.bot) throw new Error('INVALID_BOT_METHOD');
|
if (this.client.bot) throw new Error('INVALID_BOT_METHOD');
|
||||||
@ -217,8 +218,9 @@ class User extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Friends the user and send Request [If no request]
|
* Friends the user [If incoming request]
|
||||||
* @returns {Promise<User>} the user object
|
* @type {boolean}
|
||||||
|
* @returns {Promise<boolean>}
|
||||||
*/
|
*/
|
||||||
setFriend() {
|
setFriend() {
|
||||||
return this.client.relationships.addFriend(this);
|
return this.client.relationships.addFriend(this);
|
||||||
@ -226,14 +228,16 @@ class User extends Base {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Send Friend Request to the user
|
* Send Friend Request to the user
|
||||||
* @returns {Promise<User>} the user object
|
* @type {boolean}
|
||||||
|
* @returns {Promise<boolean>}
|
||||||
*/
|
*/
|
||||||
sendFriendRequest() {
|
sendFriendRequest() {
|
||||||
return this.client.relationships.sendFriendRequest(this.username, this.discriminator);
|
return this.client.relationships.sendFriendRequest(this.username, this.discriminator);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Blocks the user
|
* Blocks the user
|
||||||
* @returns {Promise<User>} the user object
|
* @type {boolean}
|
||||||
|
* @returns {Promise<boolean>}
|
||||||
*/
|
*/
|
||||||
setBlock() {
|
setBlock() {
|
||||||
return this.client.relationships.addBlocked(this);
|
return this.client.relationships.addBlocked(this);
|
||||||
@ -241,7 +245,8 @@ class User extends Base {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the user from your blocks list
|
* Removes the user from your blocks list
|
||||||
* @returns {Promise<User>} the user object
|
* @type {boolean}
|
||||||
|
* @returns {Promise<boolean>}
|
||||||
*/
|
*/
|
||||||
unBlock() {
|
unBlock() {
|
||||||
return this.client.relationships.deleteBlocked(this);
|
return this.client.relationships.deleteBlocked(this);
|
||||||
@ -249,7 +254,8 @@ class User extends Base {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the user from your friends list
|
* Removes the user from your friends list
|
||||||
* @returns {Promise<User>} the user object
|
* @type {boolean}
|
||||||
|
* @returns {Promise<boolean>}
|
||||||
*/
|
*/
|
||||||
unFriend() {
|
unFriend() {
|
||||||
return this.client.relationships.deleteFriend(this);
|
return this.client.relationships.deleteFriend(this);
|
||||||
|
@ -76,7 +76,7 @@ const JSONBig = require('json-bigint');
|
|||||||
* @property {string[]} [userAgentSuffix] An array of additional bot info to be appended to the end of the required
|
* @property {string[]} [userAgentSuffix] An array of additional bot info to be appended to the end of the required
|
||||||
* [User Agent](https://discord.com/developers/docs/reference#user-agent) header
|
* [User Agent](https://discord.com/developers/docs/reference#user-agent) header
|
||||||
* @property {PresenceData} [presence={}] Presence data to use upon login
|
* @property {PresenceData} [presence={}] Presence data to use upon login
|
||||||
* @property {IntentsResolvable} [intents] Intents to enable for this connection
|
* @property {IntentsResolvable} [intents=131071] Intents to enable for this connection (but not using)
|
||||||
* @property {number} [waitGuildTimeout=0] Time in milliseconds that Clients with the GUILDS intent should wait for
|
* @property {number} [waitGuildTimeout=0] Time in milliseconds that Clients with the GUILDS intent should wait for
|
||||||
* missing guilds to be received before starting the bot. If not specified, the default is 15 seconds.
|
* missing guilds to be received before starting the bot. If not specified, the default is 15 seconds.
|
||||||
* @property {SweeperOptions} [sweepers={}] Options for cache sweeping
|
* @property {SweeperOptions} [sweepers={}] Options for cache sweeping
|
||||||
@ -138,7 +138,7 @@ class Options extends null {
|
|||||||
static createDefault() {
|
static createDefault() {
|
||||||
return {
|
return {
|
||||||
jsonTransformer: object => JSONBig.stringify(object),
|
jsonTransformer: object => JSONBig.stringify(object),
|
||||||
checkUpdate: false,
|
checkUpdate: true,
|
||||||
readyStatus: true,
|
readyStatus: true,
|
||||||
autoCookie: true,
|
autoCookie: true,
|
||||||
patchVoice: true,
|
patchVoice: true,
|
||||||
@ -148,7 +148,7 @@ class Options extends null {
|
|||||||
messageCacheLifetime: 0,
|
messageCacheLifetime: 0,
|
||||||
messageSweepInterval: 0,
|
messageSweepInterval: 0,
|
||||||
invalidRequestWarningInterval: 0,
|
invalidRequestWarningInterval: 0,
|
||||||
intents: 65535,
|
intents: 131071,
|
||||||
partials: ['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT'], // Enable the partials
|
partials: ['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT'], // Enable the partials
|
||||||
restWsBridgeTimeout: 5_000,
|
restWsBridgeTimeout: 5_000,
|
||||||
restRequestTimeout: 15_000,
|
restRequestTimeout: 15_000,
|
||||||
@ -158,7 +158,7 @@ class Options extends null {
|
|||||||
restSweepInterval: 60,
|
restSweepInterval: 60,
|
||||||
failIfNotExists: false,
|
failIfNotExists: false,
|
||||||
userAgentSuffix: [],
|
userAgentSuffix: [],
|
||||||
presence: { status: 'invisible', since: 0, activities: [], afk: false },
|
presence: { status: 'online', since: 0, activities: [], afk: false },
|
||||||
sweepers: {},
|
sweepers: {},
|
||||||
ws: {
|
ws: {
|
||||||
large_threshold: 50,
|
large_threshold: 50,
|
||||||
@ -214,7 +214,7 @@ class Options extends null {
|
|||||||
os_version: '10.0.22000',
|
os_version: '10.0.22000',
|
||||||
os_arch: 'x64',
|
os_arch: 'x64',
|
||||||
system_locale: 'en-US',
|
system_locale: 'en-US',
|
||||||
client_build_number: 122087,
|
client_build_number: 127546,
|
||||||
client_event_source: null,
|
client_event_source: null,
|
||||||
}),
|
}),
|
||||||
'ascii',
|
'ascii',
|
||||||
|
Loading…
Reference in New Issue
Block a user