chore(release): version
This commit is contained in:
parent
c097deeab4
commit
736238f3df
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.3.53",
|
"version": "2.3.6",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "discord.js-selfbot-v13",
|
"name": "discord.js-selfbot-v13",
|
||||||
"version": "2.3.53",
|
"version": "2.3.6",
|
||||||
"license": "GNU General Public License v3.0",
|
"license": "GNU General Public License v3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aikochan2k6/qrcode-terminal": "^0.12.0",
|
"@aikochan2k6/qrcode-terminal": "^0.12.0",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "discord.js-selfbot-v13",
|
"name": "discord.js-selfbot-v13",
|
||||||
"version": "2.3.53",
|
"version": "2.3.6",
|
||||||
"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",
|
||||||
|
@ -388,6 +388,20 @@ class Client extends BaseClient {
|
|||||||
this.token = null;
|
this.token = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logs out, terminates the connection to Discord, destroys the client and destroys the token.
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
async logout() {
|
||||||
|
await this.api.auth.logout.post({
|
||||||
|
data: {
|
||||||
|
provider: null,
|
||||||
|
voip_provider: null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
this.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options used when fetching an invite from Discord.
|
* Options used when fetching an invite from Discord.
|
||||||
* @typedef {Object} ClientFetchInviteOptions
|
* @typedef {Object} ClientFetchInviteOptions
|
||||||
|
@ -48,6 +48,7 @@ const Messages = {
|
|||||||
EMBED_DESCRIPTION: 'MessageEmbed description must be a string.',
|
EMBED_DESCRIPTION: 'MessageEmbed description must be a string.',
|
||||||
EMBED_AUTHOR_NAME: 'MessageEmbed author name must be a string.',
|
EMBED_AUTHOR_NAME: 'MessageEmbed author name must be a string.',
|
||||||
/* Add */
|
/* Add */
|
||||||
|
MISSING_PERMISSIONS: (...permission) => `You can't do this action [Missing Permission(s): ${permission.join(', ')}]`,
|
||||||
EMBED_PROVIDER_NAME: 'MessageEmbed provider name must be a string.',
|
EMBED_PROVIDER_NAME: 'MessageEmbed provider name must be a string.',
|
||||||
|
|
||||||
BUTTON_LABEL: 'MessageButton label must be a string',
|
BUTTON_LABEL: 'MessageButton label must be a string',
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
const Team = require('./Team');
|
const Team = require('./Team');
|
||||||
const Application = require('./interfaces/Application');
|
const Application = require('./interfaces/Application');
|
||||||
const { Error } = require('../errors/DJSError');
|
|
||||||
const ApplicationCommandManager = require('../managers/ApplicationCommandManager');
|
const ApplicationCommandManager = require('../managers/ApplicationCommandManager');
|
||||||
const ApplicationFlags = require('../util/ApplicationFlags');
|
const ApplicationFlags = require('../util/ApplicationFlags');
|
||||||
const Permissions = require('../util/Permissions');
|
const Permissions = require('../util/Permissions');
|
||||||
@ -18,14 +17,14 @@ const Permissions = require('../util/Permissions');
|
|||||||
* @extends {Application}
|
* @extends {Application}
|
||||||
*/
|
*/
|
||||||
class ClientApplication extends Application {
|
class ClientApplication extends Application {
|
||||||
constructor(client, data) {
|
constructor(client, data, user) {
|
||||||
super(client, data);
|
super(client, data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The application command manager for this application
|
* The application command manager for this application
|
||||||
* @type {ApplicationCommandManager}
|
* @type {ApplicationCommandManager}
|
||||||
*/
|
*/
|
||||||
this.commands = new ApplicationCommandManager(this.client);
|
this.commands = new ApplicationCommandManager(this.client, undefined, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
_patch(data) {
|
_patch(data) {
|
||||||
@ -133,10 +132,14 @@ class ClientApplication extends Application {
|
|||||||
* @returns {Promise<ClientApplication>}
|
* @returns {Promise<ClientApplication>}
|
||||||
*/
|
*/
|
||||||
async fetch() {
|
async fetch() {
|
||||||
// if (!this.client.user.bot) throw new Error('INVALID_USER_METHOD');
|
const app = await this.client.api.oauth2.authorize.get({
|
||||||
const app = await this.client.api.oauth2.applications(this.id).get();
|
query: {
|
||||||
console.log(app);
|
client_id: this.id,
|
||||||
this._patch(app);
|
scope: 'bot',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
this.client.users._add(app.bot);
|
||||||
|
this._patch(app.application);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -659,7 +659,7 @@ class Guild extends AnonymousGuild {
|
|||||||
resolve(
|
resolve(
|
||||||
this.client.users.cache
|
this.client.users.cache
|
||||||
.get(botId)
|
.get(botId)
|
||||||
?.applications?.cache?.find(
|
?.application?.commands?.cache?.find(
|
||||||
c => (c.name === query && c.type == type) || c.type == ApplicationCommandTypes[type],
|
c => (c.name === query && c.type == type) || c.type == ApplicationCommandTypes[type],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1510,6 +1510,37 @@ class Guild extends AnonymousGuild {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add Integrations to the guild
|
||||||
|
* @param {Snowflake} applicationId Application (ID) target
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
async addIntegration(applicationId) {
|
||||||
|
if (!this.me.permissions.has('MANAGE_WEBHOOKS')) {
|
||||||
|
throw new Error('MISSING_PERMISSIONS', 'MANAGE_WEBHOOKS');
|
||||||
|
}
|
||||||
|
if (!this.me.permissions.has('MANAGE_GUILD')) {
|
||||||
|
throw new Error('MISSING_PERMISSIONS', 'MANAGE_GUILD');
|
||||||
|
}
|
||||||
|
if (!applicationId || typeof applicationId !== 'string') throw new TypeError('INVALID_APPLICATION_ID');
|
||||||
|
// Check permission
|
||||||
|
await this.client.api.oauth2.authorize.post({
|
||||||
|
query: {
|
||||||
|
client_id: applicationId,
|
||||||
|
scope: 'applications.commands',
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
guild_id: this.id,
|
||||||
|
permissions: '0',
|
||||||
|
authorize: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
addBot() {
|
||||||
|
console.log('Test only (Addbot)');
|
||||||
|
}
|
||||||
|
|
||||||
toJSON() {
|
toJSON() {
|
||||||
const json = super.toJSON({
|
const json = super.toJSON({
|
||||||
available: false,
|
available: false,
|
||||||
|
@ -1081,7 +1081,7 @@ class Message extends Base {
|
|||||||
async contextMenu(botId, commandName) {
|
async contextMenu(botId, commandName) {
|
||||||
if (!botId) throw new Error('Bot ID is required');
|
if (!botId) throw new Error('Bot ID is required');
|
||||||
const user = await this.client.users.fetch(botId).catch(() => {});
|
const user = await this.client.users.fetch(botId).catch(() => {});
|
||||||
if (!user || !user.bot || !user.applications) {
|
if (!user || !user.bot || !user.application) {
|
||||||
throw new Error('BotID is not a bot or does not have an application slash command');
|
throw new Error('BotID is not a bot or does not have an application slash command');
|
||||||
}
|
}
|
||||||
if (!commandName || typeof commandName !== 'string') {
|
if (!commandName || typeof commandName !== 'string') {
|
||||||
|
@ -94,7 +94,8 @@ class User extends Base {
|
|||||||
*/
|
*/
|
||||||
this.bot = Boolean(data.bot);
|
this.bot = Boolean(data.bot);
|
||||||
if (this.bot === true) {
|
if (this.bot === true) {
|
||||||
this.application = new ClientApplication(this.client, { id: this.id });
|
this.application = new ClientApplication(this.client, { id: this.id }, this);
|
||||||
|
this.botInGuildsCount = null;
|
||||||
}
|
}
|
||||||
} else if (!this.partial && typeof this.bot !== 'boolean') {
|
} else if (!this.partial && typeof this.bot !== 'boolean') {
|
||||||
this.bot = false;
|
this.bot = false;
|
||||||
@ -159,6 +160,14 @@ class User extends Base {
|
|||||||
*/
|
*/
|
||||||
this.flags = new UserFlags(data.public_flags);
|
this.flags = new UserFlags(data.public_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ('approximate_guild_count' in data) {
|
||||||
|
/**
|
||||||
|
* Check how many guilds the bot is in (Probably only approximate) (application.fetch() first)
|
||||||
|
* @type {?number}
|
||||||
|
*/
|
||||||
|
this.botInGuildsCount = data.approximate_guild_count;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -487,18 +496,6 @@ class User extends Base {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
async fetchBotInfo() {
|
|
||||||
if (this.client.user.bot) throw new Error('INVALID_BOT_METHOD');
|
|
||||||
if (!this.bot) throw new Error('BOT_ONLY');
|
|
||||||
const result = await this.client.api.oauth2.authorize.get({
|
|
||||||
query: {
|
|
||||||
client_id: this.id,
|
|
||||||
scope: 'bot',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
console.log(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
// These are here only for documentation purposes - they are implemented by TextBasedChannel
|
// These are here only for documentation purposes - they are implemented by TextBasedChannel
|
||||||
/* eslint-disable no-empty-function */
|
/* eslint-disable no-empty-function */
|
||||||
send() {}
|
send() {}
|
||||||
|
@ -402,7 +402,7 @@ class TextBasedChannel {
|
|||||||
if (!botId) throw new Error('Bot ID is required');
|
if (!botId) throw new Error('Bot ID is required');
|
||||||
// ? maybe ...
|
// ? maybe ...
|
||||||
const user = await this.client.users.fetch(botId).catch(() => {});
|
const user = await this.client.users.fetch(botId).catch(() => {});
|
||||||
if (!user || !user.bot || !user.applications) {
|
if (!user || !user.bot || !user.application) {
|
||||||
throw new Error('botId is not a bot or does not have an application slash command');
|
throw new Error('botId is not a bot or does not have an application slash command');
|
||||||
}
|
}
|
||||||
if (!commandName || typeof commandName !== 'string') throw new Error('Command name is required');
|
if (!commandName || typeof commandName !== 'string') throw new Error('Command name is required');
|
||||||
@ -425,7 +425,7 @@ class TextBasedChannel {
|
|||||||
if (command.name == commandName) commandTarget = c;
|
if (command.name == commandName) commandTarget = c;
|
||||||
} else {
|
} else {
|
||||||
const tempUser = this.client.users.cache.get(command.application_id);
|
const tempUser = this.client.users.cache.get(command.application_id);
|
||||||
if (tempUser && tempUser.bot && tempUser.applications) {
|
if (tempUser && tempUser.bot && tempUser.application) {
|
||||||
tempUser.application?.commands?._add(command, true);
|
tempUser.application?.commands?._add(command, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
5
typings/index.d.ts
vendored
5
typings/index.d.ts
vendored
@ -618,6 +618,7 @@ export class Client<Ready extends boolean = boolean> extends BaseClient {
|
|||||||
public ws: WebSocketManager;
|
public ws: WebSocketManager;
|
||||||
public password: string | null;
|
public password: string | null;
|
||||||
public destroy(): void;
|
public destroy(): void;
|
||||||
|
public logout(): Promise<void>;
|
||||||
public fetchGuildPreview(guild: GuildResolvable): Promise<GuildPreview>;
|
public fetchGuildPreview(guild: GuildResolvable): Promise<GuildPreview>;
|
||||||
public fetchInvite(invite: InviteResolvable, options?: ClientFetchInviteOptions): Promise<Invite>;
|
public fetchInvite(invite: InviteResolvable, options?: ClientFetchInviteOptions): Promise<Invite>;
|
||||||
public fetchGuildTemplate(template: GuildTemplateResolvable): Promise<GuildTemplate>;
|
public fetchGuildTemplate(template: GuildTemplateResolvable): Promise<GuildTemplate>;
|
||||||
@ -1140,6 +1141,7 @@ export class GuildAuditLogsEntry<
|
|||||||
: Role | GuildEmoji | { id: Snowflake } | null;
|
: Role | GuildEmoji | { id: Snowflake } | null;
|
||||||
public targetType: TTargetType;
|
public targetType: TTargetType;
|
||||||
public toJSON(): unknown;
|
public toJSON(): unknown;
|
||||||
|
public addIntegration(applicationId: Snowflake): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GuildBan extends Base {
|
export class GuildBan extends Base {
|
||||||
@ -2681,7 +2683,7 @@ export class Typing extends Base {
|
|||||||
export class User extends PartialTextBasedChannel(Base) {
|
export class User extends PartialTextBasedChannel(Base) {
|
||||||
protected constructor(client: Client, data: RawUserData);
|
protected constructor(client: Client, data: RawUserData);
|
||||||
private _equals(user: APIUser): boolean;
|
private _equals(user: APIUser): boolean;
|
||||||
public applications: ApplicationCommandManager;
|
public application: ClientApplication;
|
||||||
public accentColor: number | null | undefined;
|
public accentColor: number | null | undefined;
|
||||||
public avatar: string | null;
|
public avatar: string | null;
|
||||||
public banner: string | null | undefined;
|
public banner: string | null | undefined;
|
||||||
@ -2693,6 +2695,7 @@ export class User extends PartialTextBasedChannel(Base) {
|
|||||||
public readonly defaultAvatarURL: string;
|
public readonly defaultAvatarURL: string;
|
||||||
public readonly dmChannel: DMChannel | null;
|
public readonly dmChannel: DMChannel | null;
|
||||||
public flags: Readonly<UserFlags> | null;
|
public flags: Readonly<UserFlags> | null;
|
||||||
|
public botInGuildsCount: number | null | undefined;
|
||||||
public readonly hexAccentColor: HexColorString | null | undefined;
|
public readonly hexAccentColor: HexColorString | null | undefined;
|
||||||
public id: Snowflake;
|
public id: Snowflake;
|
||||||
public readonly partial: false;
|
public readonly partial: false;
|
||||||
|
Loading…
Reference in New Issue
Block a user