discord.js 15.0.0-dev.1736899921-1fd587c93 → 15.0.0-dev.1737029096-0c40bc195
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 +5 -5
- package/src/managers/GuildMessageManager.js +15 -0
- package/src/managers/MessageManager.js +0 -13
- package/src/structures/BaseGuildEmoji.js +1 -1
- package/src/structures/Emoji.js +3 -3
- package/src/structures/interfaces/TextBasedChannel.js +13 -25
- package/typings/index.d.mts +3 -3
- package/typings/index.d.ts +3 -3
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.1737029096-0c40bc195",
|
|
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",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"@discordjs/collection": "^2.1.1",
|
|
63
63
|
"@discordjs/rest": "^2.4.0",
|
|
64
64
|
"@discordjs/ws": "^2.0.0",
|
|
65
|
-
"@discordjs/
|
|
66
|
-
"@discordjs/
|
|
65
|
+
"@discordjs/formatters": "^0.5.0",
|
|
66
|
+
"@discordjs/util": "^1.1.1"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@favware/cliff-jumper": "^4.1.0",
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
"turbo": "^2.3.3",
|
|
82
82
|
"typescript": "~5.5.4",
|
|
83
83
|
"@discordjs/api-extractor": "^7.38.1",
|
|
84
|
-
"@discordjs/
|
|
85
|
-
"@discordjs/
|
|
84
|
+
"@discordjs/docgen": "^0.12.1",
|
|
85
|
+
"@discordjs/scripts": "^0.1.0"
|
|
86
86
|
},
|
|
87
87
|
"engines": {
|
|
88
88
|
"node": ">=20"
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
const { Routes } = require('discord-api-types/v10');
|
|
3
4
|
const MessageManager = require('./MessageManager');
|
|
5
|
+
const { DiscordjsTypeError, ErrorCodes } = require('../errors');
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Manages API methods for messages in a guild and holds their cache.
|
|
@@ -12,6 +14,19 @@ class GuildMessageManager extends MessageManager {
|
|
|
12
14
|
* @name GuildMessageManager#channel
|
|
13
15
|
* @type {GuildTextBasedChannel}
|
|
14
16
|
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Publishes a message in an announcement channel to all channels following it, even if it's not cached.
|
|
20
|
+
* @param {MessageResolvable} message The message to publish
|
|
21
|
+
* @returns {Promise<Message>}
|
|
22
|
+
*/
|
|
23
|
+
async crosspost(message) {
|
|
24
|
+
const messageId = this.resolveId(message);
|
|
25
|
+
if (!messageId) throw new DiscordjsTypeError(ErrorCodes.InvalidType, 'message', 'MessageResolvable');
|
|
26
|
+
|
|
27
|
+
const data = await this.client.rest.post(Routes.channelMessageCrosspost(this.channel.id, messageId));
|
|
28
|
+
return this.cache.get(data.id) ?? this._add(data);
|
|
29
|
+
}
|
|
15
30
|
}
|
|
16
31
|
|
|
17
32
|
module.exports = GuildMessageManager;
|
|
@@ -196,19 +196,6 @@ class MessageManager extends CachedManager {
|
|
|
196
196
|
return this._add(d);
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
/**
|
|
200
|
-
* Publishes a message in an announcement channel to all channels following it, even if it's not cached.
|
|
201
|
-
* @param {MessageResolvable} message The message to publish
|
|
202
|
-
* @returns {Promise<Message>}
|
|
203
|
-
*/
|
|
204
|
-
async crosspost(message) {
|
|
205
|
-
message = this.resolveId(message);
|
|
206
|
-
if (!message) throw new DiscordjsTypeError(ErrorCodes.InvalidType, 'message', 'MessageResolvable');
|
|
207
|
-
|
|
208
|
-
const data = await this.client.rest.post(Routes.channelMessageCrosspost(this.channel.id, message));
|
|
209
|
-
return this.cache.get(data.id) ?? this._add(data);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
199
|
/**
|
|
213
200
|
* Pins a message to the channel's pinned messages, even if it's not cached.
|
|
214
201
|
* @param {MessageResolvable} message The message to pin
|
|
@@ -58,7 +58,7 @@ class BaseGuildEmoji extends Emoji {
|
|
|
58
58
|
* @method imageURL
|
|
59
59
|
* @memberof BaseGuildEmoji
|
|
60
60
|
* @instance
|
|
61
|
-
* @param {
|
|
61
|
+
* @param {ImageURLOptions} [options={}] Options for the image URL
|
|
62
62
|
* @returns {string}
|
|
63
63
|
*/
|
|
64
64
|
|
package/src/structures/Emoji.js
CHANGED
|
@@ -42,11 +42,11 @@ class Emoji extends Base {
|
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Returns a URL for the emoji or `null` if this is not a custom emoji.
|
|
45
|
-
* @param {
|
|
45
|
+
* @param {ImageURLOptions} [options={}] Options for the image URL
|
|
46
46
|
* @returns {?string}
|
|
47
47
|
*/
|
|
48
|
-
imageURL(options) {
|
|
49
|
-
return this.id && this.client.rest.cdn.emoji(this.id, options);
|
|
48
|
+
imageURL(options = {}) {
|
|
49
|
+
return this.id && this.client.rest.cdn.emoji(this.id, this.animated, options);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
/**
|
|
@@ -286,56 +286,44 @@ class TextBasedChannel {
|
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
/**
|
|
289
|
-
* Bulk deletes given messages
|
|
289
|
+
* Bulk deletes given messages up to 2 weeks old.
|
|
290
290
|
* @param {Collection<Snowflake, Message>|MessageResolvable[]|number} messages
|
|
291
291
|
* Messages or number of messages to delete
|
|
292
292
|
* @param {boolean} [filterOld=false] Filter messages to remove those which are older than two weeks automatically
|
|
293
|
-
* @returns {Promise<
|
|
293
|
+
* @returns {Promise<Snowflake[]>} Returns the deleted messages ids
|
|
294
294
|
* @example
|
|
295
295
|
* // Bulk delete messages
|
|
296
296
|
* channel.bulkDelete(5)
|
|
297
|
-
* .then(messages => console.log(`Bulk deleted ${messages.
|
|
297
|
+
* .then(messages => console.log(`Bulk deleted ${messages.length} messages`))
|
|
298
298
|
* .catch(console.error);
|
|
299
299
|
*/
|
|
300
300
|
async bulkDelete(messages, filterOld = false) {
|
|
301
301
|
if (Array.isArray(messages) || messages instanceof Collection) {
|
|
302
302
|
let messageIds =
|
|
303
303
|
messages instanceof Collection ? [...messages.keys()] : messages.map(message => message.id ?? message);
|
|
304
|
+
|
|
304
305
|
if (filterOld) {
|
|
305
306
|
messageIds = messageIds.filter(
|
|
306
307
|
id => Date.now() - DiscordSnowflake.timestampFrom(id) < MaxBulkDeletableMessageAge,
|
|
307
308
|
);
|
|
308
309
|
}
|
|
309
|
-
|
|
310
|
+
|
|
311
|
+
if (messageIds.length === 0) return [];
|
|
312
|
+
|
|
310
313
|
if (messageIds.length === 1) {
|
|
311
|
-
const message = this.client.actions.MessageDelete.getMessage(
|
|
312
|
-
{
|
|
313
|
-
message_id: messageIds[0],
|
|
314
|
-
},
|
|
315
|
-
this,
|
|
316
|
-
);
|
|
317
314
|
await this.client.rest.delete(Routes.channelMessage(this.id, messageIds[0]));
|
|
318
|
-
return
|
|
315
|
+
return messageIds;
|
|
319
316
|
}
|
|
317
|
+
|
|
320
318
|
await this.client.rest.post(Routes.channelBulkDelete(this.id), { body: { messages: messageIds } });
|
|
321
|
-
return messageIds
|
|
322
|
-
(col, id) =>
|
|
323
|
-
col.set(
|
|
324
|
-
id,
|
|
325
|
-
this.client.actions.MessageDeleteBulk.getMessage(
|
|
326
|
-
{
|
|
327
|
-
message_id: id,
|
|
328
|
-
},
|
|
329
|
-
this,
|
|
330
|
-
),
|
|
331
|
-
),
|
|
332
|
-
new Collection(),
|
|
333
|
-
);
|
|
319
|
+
return messageIds;
|
|
334
320
|
}
|
|
335
|
-
|
|
321
|
+
|
|
322
|
+
if (!Number.isNaN(messages)) {
|
|
336
323
|
const msgs = await this.messages.fetch({ limit: messages });
|
|
337
324
|
return this.bulkDelete(msgs, filterOld);
|
|
338
325
|
}
|
|
326
|
+
|
|
339
327
|
throw new DiscordjsTypeError(ErrorCodes.MessageBulkDeleteType);
|
|
340
328
|
}
|
|
341
329
|
|
package/typings/index.d.mts
CHANGED
|
@@ -634,7 +634,7 @@ export abstract class BaseGuild extends Base {
|
|
|
634
634
|
|
|
635
635
|
export class BaseGuildEmoji extends Emoji {
|
|
636
636
|
protected constructor(client: Client<true>, data: RawGuildEmojiData, guild: Guild | GuildPreview);
|
|
637
|
-
public imageURL(options?:
|
|
637
|
+
public imageURL(options?: ImageURLOptions): string;
|
|
638
638
|
public get url(): string;
|
|
639
639
|
public available: boolean | null;
|
|
640
640
|
public get createdAt(): Date;
|
|
@@ -1333,7 +1333,7 @@ export class Emoji extends Base {
|
|
|
1333
1333
|
public id: Snowflake | null;
|
|
1334
1334
|
public name: string | null;
|
|
1335
1335
|
public get identifier(): string;
|
|
1336
|
-
public imageURL(options?:
|
|
1336
|
+
public imageURL(options?: ImageURLOptions): string | null;
|
|
1337
1337
|
public get url(): string | null;
|
|
1338
1338
|
public toJSON(): unknown;
|
|
1339
1339
|
public toString(): string;
|
|
@@ -4584,7 +4584,7 @@ export interface TextBasedChannelFields<InGuild extends boolean = boolean, InDM
|
|
|
4584
4584
|
bulkDelete(
|
|
4585
4585
|
messages: Collection<Snowflake, Message> | readonly MessageResolvable[] | number,
|
|
4586
4586
|
filterOld?: boolean,
|
|
4587
|
-
): Promise<
|
|
4587
|
+
): Promise<Snowflake[]>;
|
|
4588
4588
|
createMessageComponentCollector<ComponentType extends MessageComponentType>(
|
|
4589
4589
|
options?: MessageChannelCollectorOptionsParams<ComponentType, true>,
|
|
4590
4590
|
): InteractionCollector<MappedInteractionTypes[ComponentType]>;
|
package/typings/index.d.ts
CHANGED
|
@@ -634,7 +634,7 @@ export abstract class BaseGuild extends Base {
|
|
|
634
634
|
|
|
635
635
|
export class BaseGuildEmoji extends Emoji {
|
|
636
636
|
protected constructor(client: Client<true>, data: RawGuildEmojiData, guild: Guild | GuildPreview);
|
|
637
|
-
public imageURL(options?:
|
|
637
|
+
public imageURL(options?: ImageURLOptions): string;
|
|
638
638
|
public get url(): string;
|
|
639
639
|
public available: boolean | null;
|
|
640
640
|
public get createdAt(): Date;
|
|
@@ -1333,7 +1333,7 @@ export class Emoji extends Base {
|
|
|
1333
1333
|
public id: Snowflake | null;
|
|
1334
1334
|
public name: string | null;
|
|
1335
1335
|
public get identifier(): string;
|
|
1336
|
-
public imageURL(options?:
|
|
1336
|
+
public imageURL(options?: ImageURLOptions): string | null;
|
|
1337
1337
|
public get url(): string | null;
|
|
1338
1338
|
public toJSON(): unknown;
|
|
1339
1339
|
public toString(): string;
|
|
@@ -4584,7 +4584,7 @@ export interface TextBasedChannelFields<InGuild extends boolean = boolean, InDM
|
|
|
4584
4584
|
bulkDelete(
|
|
4585
4585
|
messages: Collection<Snowflake, Message> | readonly MessageResolvable[] | number,
|
|
4586
4586
|
filterOld?: boolean,
|
|
4587
|
-
): Promise<
|
|
4587
|
+
): Promise<Snowflake[]>;
|
|
4588
4588
|
createMessageComponentCollector<ComponentType extends MessageComponentType>(
|
|
4589
4589
|
options?: MessageChannelCollectorOptionsParams<ComponentType, true>,
|
|
4590
4590
|
): InteractionCollector<MappedInteractionTypes[ComponentType]>;
|