mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 09:03:29 +01:00
feat(Client): add InviteGenerationOptions#additionalScopes (#5215)
Co-authored-by: izexi <43889168+izexi@users.noreply.github.com> Co-authored-by: Antonio Román <kyradiscord@gmail.com>
This commit is contained in:
@@ -17,7 +17,7 @@ const Invite = require('../structures/Invite');
|
||||
const VoiceRegion = require('../structures/VoiceRegion');
|
||||
const Webhook = require('../structures/Webhook');
|
||||
const Collection = require('../util/Collection');
|
||||
const { Events, DefaultOptions } = require('../util/Constants');
|
||||
const { Events, DefaultOptions, InviteScopes } = require('../util/Constants');
|
||||
const DataResolver = require('../util/DataResolver');
|
||||
const Intents = require('../util/Intents');
|
||||
const Permissions = require('../util/Permissions');
|
||||
@@ -377,6 +377,7 @@ class Client extends BaseClient {
|
||||
* @property {PermissionResolvable} [permissions] Permissions to request
|
||||
* @property {GuildResolvable} [guild] Guild to preselect
|
||||
* @property {boolean} [disableGuildSelect] Whether to disable the guild selection
|
||||
* @property {InviteScope[]} [additionalScopes] Whether any additional scopes should be requested
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -418,6 +419,18 @@ class Client extends BaseClient {
|
||||
query.set('guild_id', guildID);
|
||||
}
|
||||
|
||||
if (options.additionalScopes) {
|
||||
const scopes = options.additionalScopes;
|
||||
if (!Array.isArray(scopes)) {
|
||||
throw new TypeError('INVALID_TYPE', 'additionalScopes', 'Array of Invite Scopes', true);
|
||||
}
|
||||
const invalidScope = scopes.find(scope => !InviteScopes.includes(scope));
|
||||
if (invalidScope) {
|
||||
throw new TypeError('INVALID_ELEMENT', 'Array', 'additionalScopes', invalidScope);
|
||||
}
|
||||
query.set('scope', ['bot', ...scopes].join(' '));
|
||||
}
|
||||
|
||||
return `${this.options.http.api}${this.api.oauth2.authorize}?${query}`;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user