mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 00:23:30 +01:00
refactor: use static fields (#7701)
* refactor: use static fields * chore: refactor missed areas * chore: remove memberof docs * chore: make type changes
This commit is contained in:
@@ -3,10 +3,10 @@
|
||||
"extends": ["eslint:recommended", "plugin:prettier/recommended"],
|
||||
"plugins": ["import"],
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 2021
|
||||
"ecmaVersion": 2022
|
||||
},
|
||||
"env": {
|
||||
"es2021": true,
|
||||
"es2022": true,
|
||||
"node": true
|
||||
},
|
||||
"rules": {
|
||||
|
||||
@@ -57,6 +57,9 @@ const Targets = {
|
||||
* Audit logs entries are held in this class.
|
||||
*/
|
||||
class GuildAuditLogs {
|
||||
static Targets = Targets;
|
||||
static Entry = GuildAuditLogsEntry;
|
||||
|
||||
constructor(guild, data) {
|
||||
if (data.users) for (const user of data.users) guild.client.users._add(user);
|
||||
if (data.threads) for (const thread of data.threads) guild.client.channels._add(thread, guild);
|
||||
@@ -522,7 +525,4 @@ class GuildAuditLogsEntry {
|
||||
}
|
||||
}
|
||||
|
||||
GuildAuditLogs.Targets = Targets;
|
||||
GuildAuditLogs.Entry = GuildAuditLogsEntry;
|
||||
|
||||
module.exports = GuildAuditLogs;
|
||||
|
||||
@@ -120,11 +120,11 @@ class GuildChannel extends Channel {
|
||||
// Handle empty overwrite
|
||||
if (
|
||||
(!channelVal &&
|
||||
parentVal.deny.bitfield === PermissionsBitField.defaultBit &&
|
||||
parentVal.allow.bitfield === PermissionsBitField.defaultBit) ||
|
||||
parentVal.deny.bitfield === PermissionsBitField.DefaultBit &&
|
||||
parentVal.allow.bitfield === PermissionsBitField.DefaultBit) ||
|
||||
(!parentVal &&
|
||||
channelVal.deny.bitfield === PermissionsBitField.defaultBit &&
|
||||
channelVal.allow.bitfield === PermissionsBitField.defaultBit)
|
||||
channelVal.deny.bitfield === PermissionsBitField.DefaultBit &&
|
||||
channelVal.allow.bitfield === PermissionsBitField.DefaultBit)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -210,12 +210,12 @@ class GuildChannel extends Channel {
|
||||
const overwrites = this.overwritesFor(member, true, roles);
|
||||
|
||||
return permissions
|
||||
.remove(overwrites.everyone?.deny ?? PermissionsBitField.defaultBit)
|
||||
.add(overwrites.everyone?.allow ?? PermissionsBitField.defaultBit)
|
||||
.remove(overwrites.roles.length > 0 ? overwrites.roles.map(role => role.deny) : PermissionsBitField.defaultBit)
|
||||
.add(overwrites.roles.length > 0 ? overwrites.roles.map(role => role.allow) : PermissionsBitField.defaultBit)
|
||||
.remove(overwrites.member?.deny ?? PermissionsBitField.defaultBit)
|
||||
.add(overwrites.member?.allow ?? PermissionsBitField.defaultBit)
|
||||
.remove(overwrites.everyone?.deny ?? PermissionsBitField.DefaultBit)
|
||||
.add(overwrites.everyone?.allow ?? PermissionsBitField.DefaultBit)
|
||||
.remove(overwrites.roles.length > 0 ? overwrites.roles.map(role => role.deny) : PermissionsBitField.DefaultBit)
|
||||
.add(overwrites.roles.length > 0 ? overwrites.roles.map(role => role.allow) : PermissionsBitField.DefaultBit)
|
||||
.remove(overwrites.member?.deny ?? PermissionsBitField.DefaultBit)
|
||||
.add(overwrites.member?.allow ?? PermissionsBitField.DefaultBit)
|
||||
.freeze();
|
||||
}
|
||||
|
||||
@@ -235,10 +235,10 @@ class GuildChannel extends Channel {
|
||||
const roleOverwrites = this.permissionOverwrites.cache.get(role.id);
|
||||
|
||||
return role.permissions
|
||||
.remove(everyoneOverwrites?.deny ?? PermissionsBitField.defaultBit)
|
||||
.add(everyoneOverwrites?.allow ?? PermissionsBitField.defaultBit)
|
||||
.remove(roleOverwrites?.deny ?? PermissionsBitField.defaultBit)
|
||||
.add(roleOverwrites?.allow ?? PermissionsBitField.defaultBit)
|
||||
.remove(everyoneOverwrites?.deny ?? PermissionsBitField.DefaultBit)
|
||||
.add(everyoneOverwrites?.allow ?? PermissionsBitField.DefaultBit)
|
||||
.remove(roleOverwrites?.deny ?? PermissionsBitField.DefaultBit)
|
||||
.add(roleOverwrites?.allow ?? PermissionsBitField.DefaultBit)
|
||||
.freeze();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,12 @@ const Events = require('../util/Events');
|
||||
* @extends {Base}
|
||||
*/
|
||||
class GuildTemplate extends Base {
|
||||
/**
|
||||
* Regular expression that globally matches guild template links
|
||||
* @type {RegExp}
|
||||
*/
|
||||
static GuildTemplatesPattern = /discord(?:app)?\.(?:com\/template|new)\/([\w-]{2,255})/gi;
|
||||
|
||||
constructor(client, data) {
|
||||
super(client);
|
||||
this._patch(data);
|
||||
@@ -230,10 +236,4 @@ class GuildTemplate extends Base {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches guild template links
|
||||
* @type {RegExp}
|
||||
*/
|
||||
GuildTemplate.GUILD_TEMPLATES_PATTERN = /discord(?:app)?\.(?:com\/template|new)\/([\w-]{2,255})/gi;
|
||||
|
||||
module.exports = GuildTemplate;
|
||||
|
||||
@@ -12,6 +12,12 @@ const { Error } = require('../errors');
|
||||
* @extends {Base}
|
||||
*/
|
||||
class Invite extends Base {
|
||||
/**
|
||||
* Regular expression that globally matches Discord invite links
|
||||
* @type {RegExp}
|
||||
*/
|
||||
static InvitesPattern = /discord(?:(?:app)?\.com\/invite|\.gg(?:\/invite)?)\/([\w-]{2,255})/gi;
|
||||
|
||||
constructor(client, data) {
|
||||
super(client);
|
||||
this._patch(data);
|
||||
@@ -308,10 +314,4 @@ class Invite extends Base {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches Discord invite links
|
||||
* @type {RegExp}
|
||||
*/
|
||||
Invite.INVITES_PATTERN = /discord(?:(?:app)?\.com\/invite|\.gg(?:\/invite)?)\/([\w-]{2,255})/gi;
|
||||
|
||||
module.exports = Invite;
|
||||
|
||||
@@ -623,7 +623,7 @@ class Message extends Base {
|
||||
get crosspostable() {
|
||||
const bitfield =
|
||||
PermissionFlagsBits.SendMessages |
|
||||
(this.author.id === this.client.user.id ? PermissionsBitField.defaultBit : PermissionFlagsBits.ManageMessages);
|
||||
(this.author.id === this.client.user.id ? PermissionsBitField.DefaultBit : PermissionFlagsBits.ManageMessages);
|
||||
const { channel } = this;
|
||||
return Boolean(
|
||||
channel?.type === ChannelType.GuildNews &&
|
||||
|
||||
@@ -7,6 +7,30 @@ const Util = require('../util/Util');
|
||||
* Keeps track of mentions in a {@link Message}.
|
||||
*/
|
||||
class MessageMentions {
|
||||
/**
|
||||
* Regular expression that globally matches `@everyone` and `@here`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
static EveryonePattern = /@(everyone|here)/g;
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches user mentions like `<@81440962496172032>`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
static UsersPattern = /<@!?(\d{17,19})>/g;
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches role mentions like `<@&297577916114403338>`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
static RolesPattern = /<@&(\d{17,19})>/g;
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches channel mentions like `<#222079895583457280>`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
static ChannelsPattern = /<#(\d{17,19})>/g;
|
||||
|
||||
constructor(message, users, roles, everyone, crosspostedChannels, repliedUser) {
|
||||
/**
|
||||
* The client the message is from
|
||||
@@ -158,7 +182,7 @@ class MessageMentions {
|
||||
if (this._channels) return this._channels;
|
||||
this._channels = new Collection();
|
||||
let matches;
|
||||
while ((matches = this.constructor.CHANNELS_PATTERN.exec(this._content)) !== null) {
|
||||
while ((matches = this.constructor.ChannelsPattern.exec(this._content)) !== null) {
|
||||
const chan = this.client.channels.cache.get(matches[1]);
|
||||
if (chan) this._channels.set(chan.id, chan);
|
||||
}
|
||||
@@ -212,28 +236,4 @@ class MessageMentions {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches `@everyone` and `@here`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
MessageMentions.EVERYONE_PATTERN = /@(everyone|here)/g;
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches user mentions like `<@81440962496172032>`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
MessageMentions.USERS_PATTERN = /<@!?(\d{17,19})>/g;
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches role mentions like `<@&297577916114403338>`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
MessageMentions.ROLES_PATTERN = /<@&(\d{17,19})>/g;
|
||||
|
||||
/**
|
||||
* Regular expression that globally matches channel mentions like `<#222079895583457280>`
|
||||
* @type {RegExp}
|
||||
*/
|
||||
MessageMentions.CHANNELS_PATTERN = /<#(\d{17,19})>/g;
|
||||
|
||||
module.exports = MessageMentions;
|
||||
|
||||
@@ -175,8 +175,8 @@ class PermissionOverwrites extends Base {
|
||||
return {
|
||||
id: overwrite.id,
|
||||
type: overwrite.type,
|
||||
allow: PermissionsBitField.resolve(overwrite.allow ?? PermissionsBitField.defaultBit).toString(),
|
||||
deny: PermissionsBitField.resolve(overwrite.deny ?? PermissionsBitField.defaultBit).toString(),
|
||||
allow: PermissionsBitField.resolve(overwrite.allow ?? PermissionsBitField.DefaultBit).toString(),
|
||||
deny: PermissionsBitField.resolve(overwrite.deny ?? PermissionsBitField.DefaultBit).toString(),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -187,8 +187,8 @@ class PermissionOverwrites extends Base {
|
||||
return {
|
||||
id: userOrRole.id,
|
||||
type,
|
||||
allow: PermissionsBitField.resolve(overwrite.allow ?? PermissionsBitField.defaultBit).toString(),
|
||||
deny: PermissionsBitField.resolve(overwrite.deny ?? PermissionsBitField.defaultBit).toString(),
|
||||
allow: PermissionsBitField.resolve(overwrite.allow ?? PermissionsBitField.DefaultBit).toString(),
|
||||
deny: PermissionsBitField.resolve(overwrite.deny ?? PermissionsBitField.DefaultBit).toString(),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,13 @@ const BitField = require('./BitField');
|
||||
* Data structure that makes it easy to interact with an {@link Activity#flags} bitfield.
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class ActivityFlagsBitField extends BitField {}
|
||||
class ActivityFlagsBitField extends BitField {
|
||||
/**
|
||||
* Numeric activity flags.
|
||||
* @type {ActivityFlags}
|
||||
*/
|
||||
static Flags = ActivityFlags;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name ActivityFlagsBitField
|
||||
@@ -16,10 +22,4 @@ class ActivityFlagsBitField extends BitField {}
|
||||
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
||||
*/
|
||||
|
||||
/**
|
||||
* Numeric activity flags.
|
||||
* @type {ActivityFlags}
|
||||
*/
|
||||
ActivityFlagsBitField.Flags = ActivityFlags;
|
||||
|
||||
module.exports = ActivityFlagsBitField;
|
||||
|
||||
@@ -7,7 +7,13 @@ const BitField = require('./BitField');
|
||||
* Data structure that makes it easy to interact with a {@link ClientApplication#flags} bitfield.
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class ApplicationFlagsBitField extends BitField {}
|
||||
class ApplicationFlagsBitField extends BitField {
|
||||
/**
|
||||
* Numeric application flags. All available properties:
|
||||
* @type {ApplicationFlags}
|
||||
*/
|
||||
static Flags = ApplicationFlags;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name ApplicationFlagsBitField
|
||||
@@ -16,16 +22,4 @@ class ApplicationFlagsBitField extends BitField {}
|
||||
* @param {BitFieldResolvable} [bits=0] Bit(s) to read from
|
||||
*/
|
||||
|
||||
/**
|
||||
* Bitfield of the packed bits
|
||||
* @type {number}
|
||||
* @name ApplicationFlagsBitField#bitfield
|
||||
*/
|
||||
|
||||
/**
|
||||
* Numeric application flags. All available properties:
|
||||
* @type {ApplicationFlags}
|
||||
*/
|
||||
ApplicationFlagsBitField.Flags = ApplicationFlags;
|
||||
|
||||
module.exports = ApplicationFlagsBitField;
|
||||
|
||||
@@ -7,9 +7,23 @@ const { RangeError } = require('../errors');
|
||||
*/
|
||||
class BitField {
|
||||
/**
|
||||
* @param {BitFieldResolvable} [bits=this.constructor.defaultBit] Bit(s) to read from
|
||||
* Numeric bitfield flags.
|
||||
* <info>Defined in extension classes</info>
|
||||
* @type {Object}
|
||||
* @abstract
|
||||
*/
|
||||
constructor(bits = this.constructor.defaultBit) {
|
||||
static Flags = {};
|
||||
|
||||
/**
|
||||
* @type {number|bigint}
|
||||
* @private
|
||||
*/
|
||||
static DefaultBit = 0;
|
||||
|
||||
/**
|
||||
* @param {BitFieldResolvable} [bits=this.constructor.DefaultBit] Bit(s) to read from
|
||||
*/
|
||||
constructor(bits = this.constructor.DefaultBit) {
|
||||
/**
|
||||
* Bitfield of the packed bits
|
||||
* @type {number|bigint}
|
||||
@@ -23,7 +37,7 @@ class BitField {
|
||||
* @returns {boolean}
|
||||
*/
|
||||
any(bit) {
|
||||
return (this.bitfield & this.constructor.resolve(bit)) !== this.constructor.defaultBit;
|
||||
return (this.bitfield & this.constructor.resolve(bit)) !== this.constructor.DefaultBit;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,7 +83,7 @@ class BitField {
|
||||
* @returns {BitField} These bits or new BitField if the instance is frozen.
|
||||
*/
|
||||
add(...bits) {
|
||||
let total = this.constructor.defaultBit;
|
||||
let total = this.constructor.DefaultBit;
|
||||
for (const bit of bits) {
|
||||
total |= this.constructor.resolve(bit);
|
||||
}
|
||||
@@ -84,7 +98,7 @@ class BitField {
|
||||
* @returns {BitField} These bits or new BitField if the instance is frozen.
|
||||
*/
|
||||
remove(...bits) {
|
||||
let total = this.constructor.defaultBit;
|
||||
let total = this.constructor.DefaultBit;
|
||||
for (const bit of bits) {
|
||||
total |= this.constructor.resolve(bit);
|
||||
}
|
||||
@@ -141,30 +155,16 @@ class BitField {
|
||||
* @returns {number|bigint}
|
||||
*/
|
||||
static resolve(bit) {
|
||||
const { defaultBit } = this;
|
||||
if (typeof defaultBit === typeof bit && bit >= defaultBit) return bit;
|
||||
const { DefaultBit } = this;
|
||||
if (typeof DefaultBit === typeof bit && bit >= DefaultBit) return bit;
|
||||
if (bit instanceof BitField) return bit.bitfield;
|
||||
if (Array.isArray(bit)) return bit.map(p => this.resolve(p)).reduce((prev, p) => prev | p, defaultBit);
|
||||
if (Array.isArray(bit)) return bit.map(p => this.resolve(p)).reduce((prev, p) => prev | p, DefaultBit);
|
||||
if (typeof bit === 'string') {
|
||||
if (typeof this.Flags[bit] !== 'undefined') return this.Flags[bit];
|
||||
if (!isNaN(bit)) return typeof defaultBit === 'bigint' ? BigInt(bit) : Number(bit);
|
||||
if (!isNaN(bit)) return typeof DefaultBit === 'bigint' ? BigInt(bit) : Number(bit);
|
||||
}
|
||||
throw new RangeError('BITFIELD_INVALID', bit);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Numeric bitfield flags.
|
||||
* <info>Defined in extension classes</info>
|
||||
* @type {Object}
|
||||
* @abstract
|
||||
*/
|
||||
BitField.Flags = {};
|
||||
|
||||
/**
|
||||
* @type {number|bigint}
|
||||
* @private
|
||||
*/
|
||||
BitField.defaultBit = 0;
|
||||
|
||||
module.exports = BitField;
|
||||
|
||||
@@ -43,7 +43,7 @@ class DataResolver extends null {
|
||||
* @returns {string}
|
||||
*/
|
||||
static resolveInviteCode(data) {
|
||||
return this.resolveCode(data, Invite.INVITES_PATTERN);
|
||||
return this.resolveCode(data, Invite.InvitesPattern);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,7 +53,7 @@ class DataResolver extends null {
|
||||
*/
|
||||
static resolveGuildTemplateCode(data) {
|
||||
const GuildTemplate = require('../structures/GuildTemplate');
|
||||
return this.resolveCode(data, GuildTemplate.GUILD_TEMPLATES_PATTERN);
|
||||
return this.resolveCode(data, GuildTemplate.GuildTemplatesPattern);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,185 +24,167 @@ const {
|
||||
/**
|
||||
* Contains various Discord-specific functions for formatting messages.
|
||||
*/
|
||||
class Formatters extends null {}
|
||||
class Formatters extends null {
|
||||
/**
|
||||
* Formats the content into a block quote. This needs to be at the start of the line for Discord to format it.
|
||||
* @method blockQuote
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static blockQuote = blockQuote;
|
||||
|
||||
/**
|
||||
* Formats the content into a block quote. This needs to be at the start of the line for Discord to format it.
|
||||
* @method blockQuote
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.blockQuote = blockQuote;
|
||||
/**
|
||||
* Formats the content into bold text.
|
||||
* @method bold
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static bold = bold;
|
||||
|
||||
/**
|
||||
* Formats the content into bold text.
|
||||
* @method bold
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.bold = bold;
|
||||
/**
|
||||
* Formats a channel id into a channel mention.
|
||||
* @method channelMention
|
||||
* @param {string} channelId The channel id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
static channelMention = channelMention;
|
||||
|
||||
/**
|
||||
* Formats a channel id into a channel mention.
|
||||
* @method channelMention
|
||||
* @memberof Formatters
|
||||
* @param {string} channelId The channel id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.channelMention = channelMention;
|
||||
/**
|
||||
* Wraps the content inside a code block with an optional language.
|
||||
* @method codeBlock
|
||||
* @param {string} contentOrLanguage The language to use, content if a second parameter isn't provided.
|
||||
* @param {string} [content] The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static codeBlock = codeBlock;
|
||||
|
||||
/**
|
||||
* Wraps the content inside a code block with an optional language.
|
||||
* @method codeBlock
|
||||
* @memberof Formatters
|
||||
* @param {string} contentOrLanguage The language to use, content if a second parameter isn't provided.
|
||||
* @param {string} [content] The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.codeBlock = codeBlock;
|
||||
/**
|
||||
* Formats an emoji id into a fully qualified emoji identifier
|
||||
* @method formatEmoji
|
||||
* @param {string} emojiId The emoji id to format.
|
||||
* @param {boolean} [animated] Whether the emoji is animated or not. Defaults to `false`
|
||||
* @returns {string}
|
||||
*/
|
||||
static formatEmoji = formatEmoji;
|
||||
|
||||
/**
|
||||
* Formats an emoji id into a fully qualified emoji identifier
|
||||
* @method formatEmoji
|
||||
* @memberof Formatters
|
||||
* @param {string} emojiId The emoji id to format.
|
||||
* @param {boolean} [animated] Whether the emoji is animated or not. Defaults to `false`
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.formatEmoji = formatEmoji;
|
||||
/**
|
||||
* Wraps the URL into `<>`, which stops it from embedding.
|
||||
* @method hideLinkEmbed
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static hideLinkEmbed = hideLinkEmbed;
|
||||
|
||||
/**
|
||||
* Wraps the URL into `<>`, which stops it from embedding.
|
||||
* @method hideLinkEmbed
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.hideLinkEmbed = hideLinkEmbed;
|
||||
/**
|
||||
* Formats the content and the URL into a masked URL with an optional title.
|
||||
* @method hyperlink
|
||||
* @param {string} content The content to display.
|
||||
* @param {string} url The URL the content links to.
|
||||
* @param {string} [title] The title shown when hovering on the masked link.
|
||||
* @returns {string}
|
||||
*/
|
||||
static hyperlink = hyperlink;
|
||||
|
||||
/**
|
||||
* Formats the content and the URL into a masked URL with an optional title.
|
||||
* @method hyperlink
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to display.
|
||||
* @param {string} url The URL the content links to.
|
||||
* @param {string} [title] The title shown when hovering on the masked link.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.hyperlink = hyperlink;
|
||||
/**
|
||||
* Wraps the content inside \`backticks\`, which formats it as inline code.
|
||||
* @method inlineCode
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static inlineCode = inlineCode;
|
||||
|
||||
/**
|
||||
* Wraps the content inside \`backticks\`, which formats it as inline code.
|
||||
* @method inlineCode
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.inlineCode = inlineCode;
|
||||
/**
|
||||
* Formats the content into italic text.
|
||||
* @method italic
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static italic = italic;
|
||||
|
||||
/**
|
||||
* Formats the content into italic text.
|
||||
* @method italic
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.italic = italic;
|
||||
/**
|
||||
* Formats a user id into a member-nickname mention.
|
||||
* @method memberNicknameMention
|
||||
* @param {string} memberId The user id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
static memberNicknameMention = memberNicknameMention;
|
||||
|
||||
/**
|
||||
* Formats a user id into a member-nickname mention.
|
||||
* @method memberNicknameMention
|
||||
* @memberof Formatters
|
||||
* @param {string} memberId The user id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.memberNicknameMention = memberNicknameMention;
|
||||
/**
|
||||
* Formats the content into a quote. This needs to be at the start of the line for Discord to format it.
|
||||
* @method quote
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static quote = quote;
|
||||
|
||||
/**
|
||||
* Formats the content into a quote. This needs to be at the start of the line for Discord to format it.
|
||||
* @method quote
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.quote = quote;
|
||||
/**
|
||||
* Formats a role id into a role mention.
|
||||
* @method roleMention
|
||||
* @param {string} roleId The role id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
static roleMention = roleMention;
|
||||
|
||||
/**
|
||||
* Formats a role id into a role mention.
|
||||
* @method roleMention
|
||||
* @memberof Formatters
|
||||
* @param {string} roleId The role id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.roleMention = roleMention;
|
||||
/**
|
||||
* Formats the content into spoiler text.
|
||||
* @method spoiler
|
||||
* @param {string} content The content to spoiler.
|
||||
* @returns {string}
|
||||
*/
|
||||
static spoiler = spoiler;
|
||||
|
||||
/**
|
||||
* Formats the content into spoiler text.
|
||||
* @method spoiler
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to spoiler.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.spoiler = spoiler;
|
||||
/**
|
||||
* Formats the content into strike-through text.
|
||||
* @method strikethrough
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static strikethrough = strikethrough;
|
||||
|
||||
/**
|
||||
* Formats the content into strike-through text.
|
||||
* @method strikethrough
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.strikethrough = strikethrough;
|
||||
/**
|
||||
* Formats a date into a short date-time string.
|
||||
* @method time
|
||||
* @param {number|Date} [date] The date to format.
|
||||
* @param {TimestampStylesString} [style] The style to use.
|
||||
* @returns {string}
|
||||
*/
|
||||
static time = time;
|
||||
|
||||
/**
|
||||
* Formats a date into a short date-time string.
|
||||
* @method time
|
||||
* @memberof Formatters
|
||||
* @param {number|Date} [date] The date to format.
|
||||
* @param {TimestampStylesString} [style] The style to use.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.time = time;
|
||||
/**
|
||||
* A message formatting timestamp style, as defined in
|
||||
* [here](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles).
|
||||
* * `t` Short time format, consisting of hours and minutes, e.g. 16:20.
|
||||
* * `T` Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30.
|
||||
* * `d` Short date format, consisting of day, month, and year, e.g. 20/04/2021.
|
||||
* * `D` Long date format, consisting of day, month, and year, e.g. 20 April 2021.
|
||||
* * `f` Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20.
|
||||
* * `F` Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20.
|
||||
* * `R` Relative time format, consisting of a relative duration format, e.g. 2 months ago.
|
||||
* @typedef {string} TimestampStylesString
|
||||
*/
|
||||
|
||||
/**
|
||||
* A message formatting timestamp style, as defined in
|
||||
* [here](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles).
|
||||
* * `t` Short time format, consisting of hours and minutes, e.g. 16:20.
|
||||
* * `T` Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30.
|
||||
* * `d` Short date format, consisting of day, month, and year, e.g. 20/04/2021.
|
||||
* * `D` Long date format, consisting of day, month, and year, e.g. 20 April 2021.
|
||||
* * `f` Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20.
|
||||
* * `F` Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20.
|
||||
* * `R` Relative time format, consisting of a relative duration format, e.g. 2 months ago.
|
||||
* @typedef {string} TimestampStylesString
|
||||
*/
|
||||
/**
|
||||
* The message formatting timestamp
|
||||
* [styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord.
|
||||
* @type {Object<string, TimestampStylesString>}
|
||||
*/
|
||||
static TimestampStyles = TimestampStyles;
|
||||
|
||||
/**
|
||||
* The message formatting timestamp
|
||||
* [styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord.
|
||||
* @memberof Formatters
|
||||
* @type {Object<string, TimestampStylesString>}
|
||||
*/
|
||||
Formatters.TimestampStyles = TimestampStyles;
|
||||
/**
|
||||
* Formats the content into underscored text.
|
||||
* @method underscore
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
static underscore = underscore;
|
||||
|
||||
/**
|
||||
* Formats the content into underscored text.
|
||||
* @method underscore
|
||||
* @memberof Formatters
|
||||
* @param {string} content The content to wrap.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.underscore = underscore;
|
||||
|
||||
/**
|
||||
* Formats a user id into a user mention.
|
||||
* @method userMention
|
||||
* @memberof Formatters
|
||||
* @param {string} userId The user id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
Formatters.userMention = userMention;
|
||||
/**
|
||||
* Formats a user id into a user mention.
|
||||
* @method userMention
|
||||
* @param {string} userId The user id to format.
|
||||
* @returns {string}
|
||||
*/
|
||||
static userMention = userMention;
|
||||
}
|
||||
|
||||
module.exports = Formatters;
|
||||
|
||||
@@ -6,7 +6,13 @@ const BitField = require('./BitField');
|
||||
* Data structure that makes it easy to calculate intents.
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class IntentsBitField extends BitField {}
|
||||
class IntentsBitField extends BitField {
|
||||
/**
|
||||
* Numeric WebSocket intents
|
||||
* @type {GatewayIntentBits}
|
||||
*/
|
||||
static Flags = GatewayIntentBits;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name IntentsBitField
|
||||
@@ -24,10 +30,4 @@ class IntentsBitField extends BitField {}
|
||||
* @typedef {string|number|IntentsBitField|IntentsResolvable[]} IntentsResolvable
|
||||
*/
|
||||
|
||||
/**
|
||||
* Numeric WebSocket intents
|
||||
* @type {GatewayIntentBits}
|
||||
*/
|
||||
IntentsBitField.Flags = GatewayIntentBits;
|
||||
|
||||
module.exports = IntentsBitField;
|
||||
|
||||
@@ -7,7 +7,13 @@ const BitField = require('./BitField');
|
||||
* Data structure that makes it easy to interact with a {@link Message#flags} bitfield.
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class MessageFlagsBitField extends BitField {}
|
||||
class MessageFlagsBitField extends BitField {
|
||||
/**
|
||||
* Numeric message flags.
|
||||
* @type {MessageFlags}
|
||||
*/
|
||||
static Flags = MessageFlags;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name MessageFlagsBitField
|
||||
@@ -22,10 +28,4 @@ class MessageFlagsBitField extends BitField {}
|
||||
* @name MessageFlagsBitField#bitfield
|
||||
*/
|
||||
|
||||
/**
|
||||
* Numeric message flags.
|
||||
* @type {MessageFlags}
|
||||
*/
|
||||
MessageFlagsBitField.Flags = MessageFlags;
|
||||
|
||||
module.exports = MessageFlagsBitField;
|
||||
|
||||
@@ -74,11 +74,11 @@ class Options extends null {
|
||||
return {
|
||||
waitGuildTimeout: 15_000,
|
||||
shardCount: 1,
|
||||
makeCache: this.cacheWithLimits(this.defaultMakeCacheSettings),
|
||||
makeCache: this.cacheWithLimits(this.DefaultMakeCacheSettings),
|
||||
partials: [],
|
||||
failIfNotExists: true,
|
||||
presence: {},
|
||||
sweepers: this.defaultSweeperSettings,
|
||||
sweepers: this.DefaultSweeperSettings,
|
||||
ws: {
|
||||
large_threshold: 50,
|
||||
compress: false,
|
||||
@@ -153,30 +153,32 @@ class Options extends null {
|
||||
* * `GuildChannelManager` - Sweep archived threads
|
||||
* * `ThreadManager` - Sweep archived threads
|
||||
* <info>If you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.
|
||||
* `makeCache: Options.cacheWithLimits({ ...Options.defaultMakeCacheSettings, ReactionManager: 0 })`</info>
|
||||
* `makeCache: Options.cacheWithLimits({ ...Options.DefaultMakeCacheSettings, ReactionManager: 0 })`</info>
|
||||
* @type {Object<string, LimitedCollectionOptions|number>}
|
||||
*/
|
||||
static get defaultMakeCacheSettings() {
|
||||
static get DefaultMakeCacheSettings() {
|
||||
return {
|
||||
MessageManager: 200,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The default settings passed to {@link Options.sweepers} (for v14).
|
||||
* The sweepers that this changes are:
|
||||
* * `threads` - Sweep archived threads every hour, removing those archived more than 4 hours ago
|
||||
* <info>If you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.
|
||||
* `sweepers: { ...Options.defaultSweeperSettings, messages: { interval: 300, lifetime: 600 } })`</info>
|
||||
* @type {SweeperOptions}
|
||||
*/
|
||||
Options.defaultSweeperSettings = {
|
||||
threads: {
|
||||
interval: 3600,
|
||||
lifetime: 14400,
|
||||
},
|
||||
};
|
||||
/**
|
||||
* The default settings passed to {@link Options.sweepers} (for v14).
|
||||
* The sweepers that this changes are:
|
||||
* * `threads` - Sweep archived threads every hour, removing those archived more than 4 hours ago
|
||||
* <info>If you want to keep default behavior and add on top of it you can use this object and add on to it, e.g.
|
||||
* `sweepers: { ...Options.DefaultSweeperSettings, messages: { interval: 300, lifetime: 600 } })`</info>
|
||||
* @type {SweeperOptions}
|
||||
*/
|
||||
static get DefaultSweeperSettings() {
|
||||
return {
|
||||
threads: {
|
||||
interval: 3600,
|
||||
lifetime: 14400,
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Options;
|
||||
|
||||
|
||||
@@ -10,6 +10,34 @@ const BitField = require('./BitField');
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class PermissionsBitField extends BitField {
|
||||
/**
|
||||
* Numeric permission flags.
|
||||
* @type {PermissionFlagsBits}
|
||||
* @see {@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags}
|
||||
*/
|
||||
static Flags = PermissionFlagsBits;
|
||||
|
||||
/**
|
||||
* Bitfield representing every permission combined
|
||||
* @type {bigint}
|
||||
*/
|
||||
static All = Object.values(PermissionFlagsBits).reduce((all, p) => all | p, 0n);
|
||||
|
||||
/**
|
||||
* Bitfield representing the default permissions for users
|
||||
* @type {bigint}
|
||||
*/
|
||||
static Default = BigInt(104324673);
|
||||
|
||||
/**
|
||||
* Bitfield representing the permissions required for moderators of stage channels
|
||||
* @type {bigint}
|
||||
*/
|
||||
static StageModerator =
|
||||
PermissionFlagsBits.ManageChannels | PermissionFlagsBits.MuteMembers | PermissionFlagsBits.MoveMembers;
|
||||
|
||||
static DefaultBit = BigInt(0);
|
||||
|
||||
/**
|
||||
* Bitfield of the packed bits
|
||||
* @type {bigint}
|
||||
@@ -64,32 +92,4 @@ class PermissionsBitField extends BitField {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Numeric permission flags.
|
||||
* @type {PermissionFlagsBits}
|
||||
* @see {@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags}
|
||||
*/
|
||||
PermissionsBitField.Flags = PermissionFlagsBits;
|
||||
|
||||
/**
|
||||
* Bitfield representing every permission combined
|
||||
* @type {bigint}
|
||||
*/
|
||||
PermissionsBitField.All = Object.values(PermissionFlagsBits).reduce((all, p) => all | p, 0n);
|
||||
|
||||
/**
|
||||
* Bitfield representing the default permissions for users
|
||||
* @type {bigint}
|
||||
*/
|
||||
PermissionsBitField.Default = BigInt(104324673);
|
||||
|
||||
/**
|
||||
* Bitfield representing the permissions required for moderators of stage channels
|
||||
* @type {bigint}
|
||||
*/
|
||||
PermissionsBitField.StageModerator =
|
||||
PermissionFlagsBits.ManageChannels | PermissionFlagsBits.MuteMembers | PermissionFlagsBits.MoveMembers;
|
||||
|
||||
PermissionsBitField.defaultBit = BigInt(0);
|
||||
|
||||
module.exports = PermissionsBitField;
|
||||
|
||||
@@ -9,7 +9,13 @@ const BitField = require('./BitField');
|
||||
* and by setting their corresponding flags you are disabling them</info>
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class SystemChannelFlagsBitField extends BitField {}
|
||||
class SystemChannelFlagsBitField extends BitField {
|
||||
/**
|
||||
* Numeric system channel flags.
|
||||
* @type {GuildSystemChannelFlags}
|
||||
*/
|
||||
static Flags = GuildSystemChannelFlags;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name SystemChannelFlagsBitField
|
||||
@@ -33,10 +39,4 @@ class SystemChannelFlagsBitField extends BitField {}
|
||||
* @typedef {string|number|SystemChannelFlagsBitField|SystemChannelFlagsResolvable[]} SystemChannelFlagsResolvable
|
||||
*/
|
||||
|
||||
/**
|
||||
* Numeric system channel flags.
|
||||
* @type {GuildSystemChannelFlags}
|
||||
*/
|
||||
SystemChannelFlagsBitField.Flags = GuildSystemChannelFlags;
|
||||
|
||||
module.exports = SystemChannelFlagsBitField;
|
||||
|
||||
@@ -6,7 +6,13 @@ const BitField = require('./BitField');
|
||||
* Data structure that makes it easy to interact with a {@link ThreadMember#flags} bitfield.
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class ThreadMemberFlagsBitField extends BitField {}
|
||||
class ThreadMemberFlagsBitField extends BitField {
|
||||
/**
|
||||
* Numeric thread member flags. There are currently no bitflags relevant to bots for this.
|
||||
* @type {Object<string, number>}
|
||||
*/
|
||||
static Flags = {};
|
||||
}
|
||||
|
||||
/**
|
||||
* @name ThreadMemberFlagsBitField
|
||||
@@ -21,10 +27,4 @@ class ThreadMemberFlagsBitField extends BitField {}
|
||||
* @name ThreadMemberFlagsBitField#bitfield
|
||||
*/
|
||||
|
||||
/**
|
||||
* Numeric thread member flags. There are currently no bitflags relevant to bots for this.
|
||||
* @type {Object<string, number>}
|
||||
*/
|
||||
ThreadMemberFlagsBitField.Flags = {};
|
||||
|
||||
module.exports = ThreadMemberFlagsBitField;
|
||||
|
||||
@@ -7,7 +7,13 @@ const BitField = require('./BitField');
|
||||
* Data structure that makes it easy to interact with a {@link User#flags} bitfield.
|
||||
* @extends {BitField}
|
||||
*/
|
||||
class UserFlagsBitField extends BitField {}
|
||||
class UserFlagsBitField extends BitField {
|
||||
/**
|
||||
* Numeric user flags.
|
||||
* @type {UserFlags}
|
||||
*/
|
||||
static Flags = UserFlags;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name UserFlagsBitField
|
||||
@@ -22,10 +28,4 @@ class UserFlagsBitField extends BitField {}
|
||||
* @name UserFlagsBitField#bitfield
|
||||
*/
|
||||
|
||||
/**
|
||||
* Numeric user flags.
|
||||
* @type {UserFlags}
|
||||
*/
|
||||
UserFlagsBitField.Flags = UserFlags;
|
||||
|
||||
module.exports = UserFlagsBitField;
|
||||
|
||||
16
packages/discord.js/typings/index.d.ts
vendored
16
packages/discord.js/typings/index.d.ts
vendored
@@ -774,8 +774,8 @@ export class ClientUser extends User {
|
||||
|
||||
export class Options extends null {
|
||||
private constructor();
|
||||
public static defaultMakeCacheSettings: CacheWithLimitsOptions;
|
||||
public static defaultSweeperSettings: SweeperOptions;
|
||||
public static get DefaultMakeCacheSettings(): CacheWithLimitsOptions;
|
||||
public static get DefaultSweeperSettings(): SweeperOptions;
|
||||
public static createDefault(): ClientOptions;
|
||||
public static cacheWithLimits(settings?: CacheWithLimitsOptions): CacheFactory;
|
||||
public static cacheEverything(): CacheFactory;
|
||||
@@ -1356,7 +1356,7 @@ export class GuildTemplate extends Base {
|
||||
public delete(): Promise<GuildTemplate>;
|
||||
public edit(options?: EditGuildTemplateOptions): Promise<GuildTemplate>;
|
||||
public sync(): Promise<GuildTemplate>;
|
||||
public static GUILD_TEMPLATES_PATTERN: RegExp;
|
||||
public static GuildTemplatesPattern: RegExp;
|
||||
}
|
||||
|
||||
export class GuildPreviewEmoji extends BaseGuildEmoji {
|
||||
@@ -1525,7 +1525,7 @@ export class Invite extends Base {
|
||||
public delete(reason?: string): Promise<Invite>;
|
||||
public toJSON(): unknown;
|
||||
public toString(): string;
|
||||
public static INVITES_PATTERN: RegExp;
|
||||
public static InvitesPattern: RegExp;
|
||||
/** @deprecated */
|
||||
public stageInstance: InviteStageInstance | null;
|
||||
public guildScheduledEvent: GuildScheduledEvent | null;
|
||||
@@ -1773,10 +1773,10 @@ export class MessageMentions {
|
||||
public crosspostedChannels: Collection<Snowflake, CrosspostedChannel>;
|
||||
public toJSON(): unknown;
|
||||
|
||||
public static CHANNELS_PATTERN: RegExp;
|
||||
public static EVERYONE_PATTERN: RegExp;
|
||||
public static ROLES_PATTERN: RegExp;
|
||||
public static USERS_PATTERN: RegExp;
|
||||
public static ChannelsPattern: RegExp;
|
||||
public static EveryonePattern: RegExp;
|
||||
public static RolesPattern: RegExp;
|
||||
public static UsersPattern: RegExp;
|
||||
}
|
||||
|
||||
export class MessagePayload {
|
||||
|
||||
Reference in New Issue
Block a user