discord.js 15.0.0-dev.1739405525-4b63bb804 → 15.0.0-dev.1739621068-b7fd2d105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/client/Client.js +0 -14
- package/src/index.js +0 -1
- package/src/managers/GuildEmojiManager.js +74 -5
- package/src/structures/GuildOnboardingPromptOption.js +1 -1
- package/src/structures/MessageReaction.js +3 -8
- package/src/structures/PollAnswer.js +2 -1
- package/src/structures/WelcomeChannel.js +1 -1
- package/src/util/Util.js +24 -0
- package/typings/index.d.mts +5 -8
- package/typings/index.d.ts +5 -8
- package/src/managers/BaseGuildEmojiManager.js +0 -85
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "discord.js",
|
|
4
|
-
"version": "15.0.0-dev.
|
|
4
|
+
"version": "15.0.0-dev.1739621068-b7fd2d105",
|
|
5
5
|
"description": "A powerful library for interacting with the Discord API",
|
|
6
6
|
"main": "./src/index.js",
|
|
7
7
|
"types": "./typings/index.d.ts",
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"tslib": "^2.8.1",
|
|
62
62
|
"undici": "6.21.1",
|
|
63
63
|
"@discordjs/collection": "^2.1.1",
|
|
64
|
-
"@discordjs/formatters": "^0.5.0",
|
|
65
64
|
"@discordjs/rest": "^2.4.0",
|
|
66
65
|
"@discordjs/util": "^1.1.1",
|
|
66
|
+
"@discordjs/formatters": "^0.5.0",
|
|
67
67
|
"@discordjs/ws": "^2.0.0"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
package/src/client/Client.js
CHANGED
|
@@ -11,7 +11,6 @@ const { ActionsManager } = require('./actions/ActionsManager.js');
|
|
|
11
11
|
const { ClientVoiceManager } = require('./voice/ClientVoiceManager.js');
|
|
12
12
|
const { PacketHandlers } = require('./websocket/handlers/index.js');
|
|
13
13
|
const { DiscordjsError, DiscordjsTypeError, ErrorCodes } = require('../errors/index.js');
|
|
14
|
-
const { BaseGuildEmojiManager } = require('../managers/BaseGuildEmojiManager.js');
|
|
15
14
|
const { ChannelManager } = require('../managers/ChannelManager.js');
|
|
16
15
|
const { GuildManager } = require('../managers/GuildManager.js');
|
|
17
16
|
const { UserManager } = require('../managers/UserManager.js');
|
|
@@ -217,19 +216,6 @@ class Client extends BaseClient {
|
|
|
217
216
|
this._attachEvents();
|
|
218
217
|
}
|
|
219
218
|
|
|
220
|
-
/**
|
|
221
|
-
* A manager of all the custom emojis that the client has access to
|
|
222
|
-
* @type {BaseGuildEmojiManager}
|
|
223
|
-
* @readonly
|
|
224
|
-
*/
|
|
225
|
-
get emojis() {
|
|
226
|
-
const emojis = new BaseGuildEmojiManager(this);
|
|
227
|
-
for (const guild of this.guilds.cache.values()) {
|
|
228
|
-
if (guild.available) for (const emoji of guild.emojis.cache.values()) emojis.cache.set(emoji.id, emoji);
|
|
229
|
-
}
|
|
230
|
-
return emojis;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
219
|
/**
|
|
234
220
|
* Time at which the client was last regarded as being in the {@link Status.Ready} state
|
|
235
221
|
* (each time the client disconnects and successfully reconnects, this will be overwritten)
|
package/src/index.js
CHANGED
|
@@ -58,7 +58,6 @@ exports.ApplicationCommandPermissionsManager =
|
|
|
58
58
|
require('./managers/ApplicationCommandPermissionsManager.js').ApplicationCommandPermissionsManager;
|
|
59
59
|
exports.ApplicationEmojiManager = require('./managers/ApplicationEmojiManager.js').ApplicationEmojiManager;
|
|
60
60
|
exports.AutoModerationRuleManager = require('./managers/AutoModerationRuleManager.js').AutoModerationRuleManager;
|
|
61
|
-
exports.BaseGuildEmojiManager = require('./managers/BaseGuildEmojiManager.js').BaseGuildEmojiManager;
|
|
62
61
|
exports.CachedManager = require('./managers/CachedManager.js').CachedManager;
|
|
63
62
|
exports.ChannelManager = require('./managers/ChannelManager.js').ChannelManager;
|
|
64
63
|
exports.ClientVoiceManager = require('./client/voice/ClientVoiceManager.js').ClientVoiceManager;
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
2
|
const { Collection } = require('@discordjs/collection');
|
|
4
3
|
const { Routes, PermissionFlagsBits } = require('discord-api-types/v10');
|
|
5
|
-
const {
|
|
4
|
+
const { CachedManager } = require('./CachedManager.js');
|
|
6
5
|
const { DiscordjsError, DiscordjsTypeError, ErrorCodes } = require('../errors/index.js');
|
|
6
|
+
const { ApplicationEmoji } = require('../structures/ApplicationEmoji.js');
|
|
7
|
+
const { GuildEmoji } = require('../structures/GuildEmoji.js');
|
|
8
|
+
const { ReactionEmoji } = require('../structures/ReactionEmoji.js');
|
|
7
9
|
const { resolveImage } = require('../util/DataResolver.js');
|
|
10
|
+
const { parseEmoji } = require('../util/Util.js');
|
|
8
11
|
|
|
9
12
|
/**
|
|
10
13
|
* Manages API methods for GuildEmojis and stores their cache.
|
|
11
|
-
* @extends {
|
|
14
|
+
* @extends {CachedManager}
|
|
12
15
|
*/
|
|
13
|
-
class GuildEmojiManager extends
|
|
16
|
+
class GuildEmojiManager extends CachedManager {
|
|
14
17
|
constructor(guild, iterable) {
|
|
15
|
-
super(guild.client, iterable);
|
|
18
|
+
super(guild.client, GuildEmoji, iterable);
|
|
16
19
|
|
|
17
20
|
/**
|
|
18
21
|
* The guild this manager belongs to
|
|
@@ -25,6 +28,72 @@ class GuildEmojiManager extends BaseGuildEmojiManager {
|
|
|
25
28
|
return super._add(data, cache, { extras: [this.guild] });
|
|
26
29
|
}
|
|
27
30
|
|
|
31
|
+
/**
|
|
32
|
+
* The cache of GuildEmojis
|
|
33
|
+
* @type {Collection<Snowflake, GuildEmoji>}
|
|
34
|
+
* @name GuildEmojiManager#cache
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Data that can be resolved into a GuildEmoji object. This can be:
|
|
39
|
+
* * A Snowflake
|
|
40
|
+
* * A GuildEmoji object
|
|
41
|
+
* * A ReactionEmoji object
|
|
42
|
+
* * An ApplicationEmoji object
|
|
43
|
+
* @typedef {Snowflake|GuildEmoji|ReactionEmoji|ApplicationEmoji} EmojiResolvable
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Resolves an EmojiResolvable to an Emoji object.
|
|
48
|
+
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
49
|
+
* @returns {?GuildEmoji}
|
|
50
|
+
*/
|
|
51
|
+
resolve(emoji) {
|
|
52
|
+
if (emoji instanceof ReactionEmoji) return super.cache.get(emoji.id) ?? null;
|
|
53
|
+
if (emoji instanceof ApplicationEmoji) return super.cache.get(emoji.id) ?? null;
|
|
54
|
+
return super.resolve(emoji);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Resolves an EmojiResolvable to an Emoji id string.
|
|
59
|
+
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
60
|
+
* @returns {?Snowflake}
|
|
61
|
+
*/
|
|
62
|
+
resolveId(emoji) {
|
|
63
|
+
if (emoji instanceof ReactionEmoji) return emoji.id;
|
|
64
|
+
if (emoji instanceof ApplicationEmoji) return emoji.id;
|
|
65
|
+
return super.resolveId(emoji);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Data that can be resolved to give an emoji identifier. This can be:
|
|
70
|
+
* * An EmojiResolvable
|
|
71
|
+
* * The `<a:name:id>`, `<:name:id>`, `a:name:id` or `name:id` emoji identifier string of an emoji
|
|
72
|
+
* * The Unicode representation of an emoji
|
|
73
|
+
* @typedef {string|EmojiResolvable} EmojiIdentifierResolvable
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Resolves an EmojiResolvable to an emoji identifier.
|
|
78
|
+
* @param {EmojiIdentifierResolvable} emoji The emoji resolvable to resolve
|
|
79
|
+
* @returns {?string}
|
|
80
|
+
*/
|
|
81
|
+
resolveIdentifier(emoji) {
|
|
82
|
+
const emojiResolvable = this.resolve(emoji);
|
|
83
|
+
if (emojiResolvable) return emojiResolvable.identifier;
|
|
84
|
+
if (emoji instanceof ReactionEmoji) return emoji.identifier;
|
|
85
|
+
if (emoji instanceof ApplicationEmoji) return emoji.identifier;
|
|
86
|
+
if (typeof emoji === 'string') {
|
|
87
|
+
const res = parseEmoji(emoji);
|
|
88
|
+
if (res?.name.length) {
|
|
89
|
+
emoji = `${res.animated ? 'a:' : ''}${res.name}${res.id ? `:${res.id}` : ''}`;
|
|
90
|
+
}
|
|
91
|
+
if (!emoji.includes('%')) return encodeURIComponent(emoji);
|
|
92
|
+
return emoji;
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
|
|
28
97
|
/**
|
|
29
98
|
* Options used for creating an emoji in a guild.
|
|
30
99
|
* @typedef {Object} GuildEmojiCreateOptions
|
|
@@ -79,7 +79,7 @@ class GuildOnboardingPromptOption extends Base {
|
|
|
79
79
|
*/
|
|
80
80
|
get emoji() {
|
|
81
81
|
if (!this._emoji.id && !this._emoji.name) return null;
|
|
82
|
-
return this.
|
|
82
|
+
return this.guild.emojis.cache.get(this._emoji.id) ?? new Emoji(this.client, this._emoji);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -5,7 +5,7 @@ const { ApplicationEmoji } = require('./ApplicationEmoji.js');
|
|
|
5
5
|
const { GuildEmoji } = require('./GuildEmoji.js');
|
|
6
6
|
const { ReactionEmoji } = require('./ReactionEmoji.js');
|
|
7
7
|
const { ReactionUserManager } = require('../managers/ReactionUserManager.js');
|
|
8
|
-
const { flatten } = require('../util/Util.js');
|
|
8
|
+
const { flatten, resolveGuildEmoji } = require('../util/Util.js');
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Represents a reaction to a message.
|
|
@@ -127,14 +127,9 @@ class MessageReaction {
|
|
|
127
127
|
this._emoji = emoji;
|
|
128
128
|
return emoji;
|
|
129
129
|
}
|
|
130
|
-
const emojis = this.message.client.emojis.cache;
|
|
131
|
-
if (emojis.has(this._emoji.id)) {
|
|
132
|
-
const emoji = emojis.get(this._emoji.id);
|
|
133
|
-
this._emoji = emoji;
|
|
134
|
-
return emoji;
|
|
135
|
-
}
|
|
136
130
|
}
|
|
137
|
-
|
|
131
|
+
const emoji = resolveGuildEmoji(this.client, this._emoji.id);
|
|
132
|
+
return emoji ?? this._emoji;
|
|
138
133
|
}
|
|
139
134
|
|
|
140
135
|
/**
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { Base } = require('./Base.js');
|
|
4
4
|
const { Emoji } = require('./Emoji.js');
|
|
5
|
+
const { resolveGuildEmoji } = require('../util/Util.js');
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Represents an answer to a {@link Poll}
|
|
@@ -61,7 +62,7 @@ class PollAnswer extends Base {
|
|
|
61
62
|
*/
|
|
62
63
|
get emoji() {
|
|
63
64
|
if (!this._emoji || (!this._emoji.id && !this._emoji.name)) return null;
|
|
64
|
-
return this.client
|
|
65
|
+
return resolveGuildEmoji(this.client, this._emoji.id) ?? new Emoji(this.client, this._emoji);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
/**
|
|
@@ -53,7 +53,7 @@ class WelcomeChannel extends Base {
|
|
|
53
53
|
* @type {GuildEmoji|Emoji}
|
|
54
54
|
*/
|
|
55
55
|
get emoji() {
|
|
56
|
-
return this.
|
|
56
|
+
return this.guild.emojis.cache.get(this._emoji.id) ?? new Emoji(this.client, this._emoji);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
package/src/util/Util.js
CHANGED
|
@@ -122,6 +122,29 @@ function resolvePartialEmoji(emoji) {
|
|
|
122
122
|
return { id, name, animated: Boolean(animated) };
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
/**
|
|
126
|
+
* Resolves a {@link GuildEmoji} from an emoji id.
|
|
127
|
+
* @param {Client} client The client to use to resolve the emoji
|
|
128
|
+
* @param {Snowflake} emojiId The emoji id to resolve
|
|
129
|
+
* @returns {?GuildEmoji}
|
|
130
|
+
* @private
|
|
131
|
+
*/
|
|
132
|
+
function resolveGuildEmoji(client, emojiId) {
|
|
133
|
+
for (const guild of client.guilds.cache.values()) {
|
|
134
|
+
if (!guild.available) {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const emoji = guild.emojis.cache.get(emojiId);
|
|
139
|
+
|
|
140
|
+
if (emoji) {
|
|
141
|
+
return emoji;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
|
|
125
148
|
/**
|
|
126
149
|
* Options used to make an error object.
|
|
127
150
|
* @typedef {Object} MakeErrorOptions
|
|
@@ -503,6 +526,7 @@ exports.flatten = flatten;
|
|
|
503
526
|
exports.fetchRecommendedShardCount = fetchRecommendedShardCount;
|
|
504
527
|
exports.parseEmoji = parseEmoji;
|
|
505
528
|
exports.resolvePartialEmoji = resolvePartialEmoji;
|
|
529
|
+
exports.resolveGuildEmoji = resolveGuildEmoji;
|
|
506
530
|
exports.makeError = makeError;
|
|
507
531
|
exports.makePlainError = makePlainError;
|
|
508
532
|
exports.getSortableGroupTypes = getSortableGroupTypes;
|
package/typings/index.d.mts
CHANGED
|
@@ -976,7 +976,6 @@ export class Client<Ready extends boolean = boolean> extends BaseClient<ClientEv
|
|
|
976
976
|
|
|
977
977
|
public application: If<Ready, ClientApplication>;
|
|
978
978
|
public channels: ChannelManager;
|
|
979
|
-
public get emojis(): BaseGuildEmojiManager;
|
|
980
979
|
public guilds: GuildManager;
|
|
981
980
|
public lastPingTimestamps: ReadonlyCollection<number, number>;
|
|
982
981
|
public options: Omit<ClientOptions, 'intents'> & { intents: IntentsBitField };
|
|
@@ -3456,6 +3455,7 @@ export function discordSort<Key, Value extends { rawPosition: number; id: Snowfl
|
|
|
3456
3455
|
export function cleanCodeBlockContent(text: string): string;
|
|
3457
3456
|
export function fetchRecommendedShardCount(token: string, options?: FetchRecommendedShardCountOptions): Promise<number>;
|
|
3458
3457
|
export function flatten(obj: unknown, ...props: Record<string, boolean | string>[]): unknown;
|
|
3458
|
+
|
|
3459
3459
|
/** @internal */
|
|
3460
3460
|
export function makeError(obj: MakeErrorOptions): Error;
|
|
3461
3461
|
/** @internal */
|
|
@@ -3474,6 +3474,8 @@ export function resolveColor(color: ColorResolvable): number;
|
|
|
3474
3474
|
export function resolvePartialEmoji(emoji: Snowflake): PartialEmojiOnlyId;
|
|
3475
3475
|
/** @internal */
|
|
3476
3476
|
export function resolvePartialEmoji(emoji: Emoji | EmojiIdentifierResolvable): PartialEmoji | null;
|
|
3477
|
+
/** @internal */
|
|
3478
|
+
export function resolveGuildEmoji(client: Client, emojiId: Snowflake): GuildEmoji | null;
|
|
3477
3479
|
export function verifyString(data: string, error?: typeof Error, errorMessage?: string, allowEmpty?: boolean): string;
|
|
3478
3480
|
/** @internal */
|
|
3479
3481
|
export function setPosition<Item extends Channel | Role>(
|
|
@@ -3997,11 +3999,6 @@ export class AutoModerationRuleManager extends CachedManager<
|
|
|
3997
3999
|
public delete(autoModerationRule: AutoModerationRuleResolvable, reason?: string): Promise<void>;
|
|
3998
4000
|
}
|
|
3999
4001
|
|
|
4000
|
-
export class BaseGuildEmojiManager extends CachedManager<Snowflake, GuildEmoji, EmojiResolvable> {
|
|
4001
|
-
protected constructor(client: Client<true>, iterable?: Iterable<RawGuildEmojiData>);
|
|
4002
|
-
public resolveIdentifier(emoji: EmojiIdentifierResolvable): string | null;
|
|
4003
|
-
}
|
|
4004
|
-
|
|
4005
4002
|
export class CategoryChannelChildManager extends DataManager<Snowflake, CategoryChildChannel, GuildChannelResolvable> {
|
|
4006
4003
|
private constructor(channel: CategoryChannel);
|
|
4007
4004
|
|
|
@@ -4142,7 +4139,7 @@ export class GuildChannelManager extends CachedManager<Snowflake, GuildBasedChan
|
|
|
4142
4139
|
public delete(channel: GuildChannelResolvable, reason?: string): Promise<void>;
|
|
4143
4140
|
}
|
|
4144
4141
|
|
|
4145
|
-
export class GuildEmojiManager extends
|
|
4142
|
+
export class GuildEmojiManager extends CachedManager<Snowflake, GuildEmoji, EmojiResolvable> {
|
|
4146
4143
|
private constructor(guild: Guild, iterable?: Iterable<RawGuildEmojiData>);
|
|
4147
4144
|
public guild: Guild;
|
|
4148
4145
|
public create(options: GuildEmojiCreateOptions): Promise<GuildEmoji>;
|
|
@@ -4151,6 +4148,7 @@ export class GuildEmojiManager extends BaseGuildEmojiManager {
|
|
|
4151
4148
|
public fetchAuthor(emoji: EmojiResolvable): Promise<User>;
|
|
4152
4149
|
public delete(emoji: EmojiResolvable, reason?: string): Promise<void>;
|
|
4153
4150
|
public edit(emoji: EmojiResolvable, options: GuildEmojiEditOptions): Promise<GuildEmoji>;
|
|
4151
|
+
public resolveIdentifier(emoji: EmojiIdentifierResolvable): string | null;
|
|
4154
4152
|
}
|
|
4155
4153
|
|
|
4156
4154
|
export class GuildEmojiRoleManager extends DataManager<Snowflake, Role, RoleResolvable> {
|
|
@@ -4969,7 +4967,6 @@ export interface Caches {
|
|
|
4969
4967
|
ApplicationCommandManager: [manager: typeof ApplicationCommandManager, holds: typeof ApplicationCommand];
|
|
4970
4968
|
ApplicationEmojiManager: [manager: typeof ApplicationEmojiManager, holds: typeof ApplicationEmoji];
|
|
4971
4969
|
AutoModerationRuleManager: [manager: typeof AutoModerationRuleManager, holds: typeof AutoModerationRule];
|
|
4972
|
-
BaseGuildEmojiManager: [manager: typeof BaseGuildEmojiManager, holds: typeof GuildEmoji];
|
|
4973
4970
|
// TODO: ChannelManager: [manager: typeof ChannelManager, holds: typeof Channel];
|
|
4974
4971
|
DMMessageManager: [manager: typeof MessageManager, holds: typeof Message<false>];
|
|
4975
4972
|
EntitlementManager: [manager: typeof EntitlementManager, holds: typeof Entitlement];
|
package/typings/index.d.ts
CHANGED
|
@@ -976,7 +976,6 @@ export class Client<Ready extends boolean = boolean> extends BaseClient<ClientEv
|
|
|
976
976
|
|
|
977
977
|
public application: If<Ready, ClientApplication>;
|
|
978
978
|
public channels: ChannelManager;
|
|
979
|
-
public get emojis(): BaseGuildEmojiManager;
|
|
980
979
|
public guilds: GuildManager;
|
|
981
980
|
public lastPingTimestamps: ReadonlyCollection<number, number>;
|
|
982
981
|
public options: Omit<ClientOptions, 'intents'> & { intents: IntentsBitField };
|
|
@@ -3456,6 +3455,7 @@ export function discordSort<Key, Value extends { rawPosition: number; id: Snowfl
|
|
|
3456
3455
|
export function cleanCodeBlockContent(text: string): string;
|
|
3457
3456
|
export function fetchRecommendedShardCount(token: string, options?: FetchRecommendedShardCountOptions): Promise<number>;
|
|
3458
3457
|
export function flatten(obj: unknown, ...props: Record<string, boolean | string>[]): unknown;
|
|
3458
|
+
|
|
3459
3459
|
/** @internal */
|
|
3460
3460
|
export function makeError(obj: MakeErrorOptions): Error;
|
|
3461
3461
|
/** @internal */
|
|
@@ -3474,6 +3474,8 @@ export function resolveColor(color: ColorResolvable): number;
|
|
|
3474
3474
|
export function resolvePartialEmoji(emoji: Snowflake): PartialEmojiOnlyId;
|
|
3475
3475
|
/** @internal */
|
|
3476
3476
|
export function resolvePartialEmoji(emoji: Emoji | EmojiIdentifierResolvable): PartialEmoji | null;
|
|
3477
|
+
/** @internal */
|
|
3478
|
+
export function resolveGuildEmoji(client: Client, emojiId: Snowflake): GuildEmoji | null;
|
|
3477
3479
|
export function verifyString(data: string, error?: typeof Error, errorMessage?: string, allowEmpty?: boolean): string;
|
|
3478
3480
|
/** @internal */
|
|
3479
3481
|
export function setPosition<Item extends Channel | Role>(
|
|
@@ -3997,11 +3999,6 @@ export class AutoModerationRuleManager extends CachedManager<
|
|
|
3997
3999
|
public delete(autoModerationRule: AutoModerationRuleResolvable, reason?: string): Promise<void>;
|
|
3998
4000
|
}
|
|
3999
4001
|
|
|
4000
|
-
export class BaseGuildEmojiManager extends CachedManager<Snowflake, GuildEmoji, EmojiResolvable> {
|
|
4001
|
-
protected constructor(client: Client<true>, iterable?: Iterable<RawGuildEmojiData>);
|
|
4002
|
-
public resolveIdentifier(emoji: EmojiIdentifierResolvable): string | null;
|
|
4003
|
-
}
|
|
4004
|
-
|
|
4005
4002
|
export class CategoryChannelChildManager extends DataManager<Snowflake, CategoryChildChannel, GuildChannelResolvable> {
|
|
4006
4003
|
private constructor(channel: CategoryChannel);
|
|
4007
4004
|
|
|
@@ -4142,7 +4139,7 @@ export class GuildChannelManager extends CachedManager<Snowflake, GuildBasedChan
|
|
|
4142
4139
|
public delete(channel: GuildChannelResolvable, reason?: string): Promise<void>;
|
|
4143
4140
|
}
|
|
4144
4141
|
|
|
4145
|
-
export class GuildEmojiManager extends
|
|
4142
|
+
export class GuildEmojiManager extends CachedManager<Snowflake, GuildEmoji, EmojiResolvable> {
|
|
4146
4143
|
private constructor(guild: Guild, iterable?: Iterable<RawGuildEmojiData>);
|
|
4147
4144
|
public guild: Guild;
|
|
4148
4145
|
public create(options: GuildEmojiCreateOptions): Promise<GuildEmoji>;
|
|
@@ -4151,6 +4148,7 @@ export class GuildEmojiManager extends BaseGuildEmojiManager {
|
|
|
4151
4148
|
public fetchAuthor(emoji: EmojiResolvable): Promise<User>;
|
|
4152
4149
|
public delete(emoji: EmojiResolvable, reason?: string): Promise<void>;
|
|
4153
4150
|
public edit(emoji: EmojiResolvable, options: GuildEmojiEditOptions): Promise<GuildEmoji>;
|
|
4151
|
+
public resolveIdentifier(emoji: EmojiIdentifierResolvable): string | null;
|
|
4154
4152
|
}
|
|
4155
4153
|
|
|
4156
4154
|
export class GuildEmojiRoleManager extends DataManager<Snowflake, Role, RoleResolvable> {
|
|
@@ -4969,7 +4967,6 @@ export interface Caches {
|
|
|
4969
4967
|
ApplicationCommandManager: [manager: typeof ApplicationCommandManager, holds: typeof ApplicationCommand];
|
|
4970
4968
|
ApplicationEmojiManager: [manager: typeof ApplicationEmojiManager, holds: typeof ApplicationEmoji];
|
|
4971
4969
|
AutoModerationRuleManager: [manager: typeof AutoModerationRuleManager, holds: typeof AutoModerationRule];
|
|
4972
|
-
BaseGuildEmojiManager: [manager: typeof BaseGuildEmojiManager, holds: typeof GuildEmoji];
|
|
4973
4970
|
// TODO: ChannelManager: [manager: typeof ChannelManager, holds: typeof Channel];
|
|
4974
4971
|
DMMessageManager: [manager: typeof MessageManager, holds: typeof Message<false>];
|
|
4975
4972
|
EntitlementManager: [manager: typeof EntitlementManager, holds: typeof Entitlement];
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { CachedManager } = require('./CachedManager.js');
|
|
4
|
-
const { ApplicationEmoji } = require('../structures/ApplicationEmoji.js');
|
|
5
|
-
const { GuildEmoji } = require('../structures/GuildEmoji.js');
|
|
6
|
-
const { ReactionEmoji } = require('../structures/ReactionEmoji.js');
|
|
7
|
-
const { parseEmoji } = require('../util/Util.js');
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Holds methods to resolve GuildEmojis and stores their cache.
|
|
11
|
-
* @extends {CachedManager}
|
|
12
|
-
*/
|
|
13
|
-
class BaseGuildEmojiManager extends CachedManager {
|
|
14
|
-
constructor(client, iterable) {
|
|
15
|
-
super(client, GuildEmoji, iterable);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* The cache of GuildEmojis
|
|
20
|
-
* @type {Collection<Snowflake, GuildEmoji>}
|
|
21
|
-
* @name BaseGuildEmojiManager#cache
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Data that can be resolved into a GuildEmoji object. This can be:
|
|
26
|
-
* * A Snowflake
|
|
27
|
-
* * A GuildEmoji object
|
|
28
|
-
* * A ReactionEmoji object
|
|
29
|
-
* * An ApplicationEmoji object
|
|
30
|
-
* @typedef {Snowflake|GuildEmoji|ReactionEmoji|ApplicationEmoji} EmojiResolvable
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Resolves an EmojiResolvable to an Emoji object.
|
|
35
|
-
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
36
|
-
* @returns {?GuildEmoji}
|
|
37
|
-
*/
|
|
38
|
-
resolve(emoji) {
|
|
39
|
-
if (emoji instanceof ReactionEmoji) return super.cache.get(emoji.id) ?? null;
|
|
40
|
-
if (emoji instanceof ApplicationEmoji) return super.cache.get(emoji.id) ?? null;
|
|
41
|
-
return super.resolve(emoji);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Resolves an EmojiResolvable to an Emoji id string.
|
|
46
|
-
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
|
|
47
|
-
* @returns {?Snowflake}
|
|
48
|
-
*/
|
|
49
|
-
resolveId(emoji) {
|
|
50
|
-
if (emoji instanceof ReactionEmoji) return emoji.id;
|
|
51
|
-
if (emoji instanceof ApplicationEmoji) return emoji.id;
|
|
52
|
-
return super.resolveId(emoji);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Data that can be resolved to give an emoji identifier. This can be:
|
|
57
|
-
* * An EmojiResolvable
|
|
58
|
-
* * The `<a:name:id>`, `<:name:id>`, `a:name:id` or `name:id` emoji identifier string of an emoji
|
|
59
|
-
* * The Unicode representation of an emoji
|
|
60
|
-
* @typedef {string|EmojiResolvable} EmojiIdentifierResolvable
|
|
61
|
-
*/
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Resolves an EmojiResolvable to an emoji identifier.
|
|
65
|
-
* @param {EmojiIdentifierResolvable} emoji The emoji resolvable to resolve
|
|
66
|
-
* @returns {?string}
|
|
67
|
-
*/
|
|
68
|
-
resolveIdentifier(emoji) {
|
|
69
|
-
const emojiResolvable = this.resolve(emoji);
|
|
70
|
-
if (emojiResolvable) return emojiResolvable.identifier;
|
|
71
|
-
if (emoji instanceof ReactionEmoji) return emoji.identifier;
|
|
72
|
-
if (emoji instanceof ApplicationEmoji) return emoji.identifier;
|
|
73
|
-
if (typeof emoji === 'string') {
|
|
74
|
-
const res = parseEmoji(emoji);
|
|
75
|
-
if (res?.name.length) {
|
|
76
|
-
emoji = `${res.animated ? 'a:' : ''}${res.name}${res.id ? `:${res.id}` : ''}`;
|
|
77
|
-
}
|
|
78
|
-
if (!emoji.includes('%')) return encodeURIComponent(emoji);
|
|
79
|
-
return emoji;
|
|
80
|
-
}
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
exports.BaseGuildEmojiManager = BaseGuildEmojiManager;
|