Skip to content

Commit 99f81ce

Browse files
committed
Chore: Rebuild bin
1 parent 61ffb00 commit 99f81ce

File tree

5 files changed

+35
-11
lines changed

5 files changed

+35
-11
lines changed

bin/Embeds.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ exports.Embeds = class extends t.PaginationEmbed {
2121
for (const e of this.array) e.addField(r, t, s);
2222
return this;
2323
}
24+
attachFiles(r) {
25+
if (!this.array) throw new TypeError("this.array must be set first.");
26+
if (!r) return this;
27+
for (const t of this.array) t.attachFiles(r);
28+
return this;
29+
}
2430
async build() {
2531
return this.pages = this.array.length, await this._verify(), this.listenerCount("start") && this.emit("start"),
2632
this._loadList();

bin/base/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ exports.PaginationEmbed = class extends t.EventEmitter {
147147
if (t) return this._drawEmojis();
148148
}
149149
async _loadPage(t = 1) {
150-
return this.setPage(t), await this._loadList(!1), this._awaitResponse();
150+
return this.setPage(t), this.listenerCount("pageUpdate") && this.emit("pageUpdate"),
151+
await this._loadList(!1), this._awaitResponse();
151152
}
152153
async _awaitResponse() {
153154
const t = Object.values(this.navigationEmojis), e = (e, i) => {
@@ -188,7 +189,7 @@ exports.PaginationEmbed = class extends t.EventEmitter {
188189
}
189190
}
190191
async _cleanUp(t, e, i = !0, s) {
191-
if (this.deleteOnTimeout && e.deletable && await e.delete(), e.guild && !e.deleted && await e.reactions.removeAll(),
192+
if (this.deleteOnTimeout && e.deletable && (await e.delete(), e.deleted = !0), e.guild && !e.deleted && await e.reactions.removeAll(),
192193
t instanceof Error) return void (this.listenerCount("error") && this.emit("error", t));
193194
const a = i ? "expire" : "finish";
194195
this.listenerCount(a) && this.emit(a, s);

typings/Embeds.d.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ColorResolvable, EmbedField, MessageEmbed, StringResolvable } from 'discord.js';
1+
import { ColorResolvable, EmbedField, FileOptions, MessageAttachment, MessageEmbed, StringResolvable } from 'discord.js';
22
import { PaginationEmbed } from './base';
33
/**
44
* A pagination mode that uses an array of MessageEmbed to paginate.
@@ -47,6 +47,11 @@ export declare class Embeds extends PaginationEmbed<MessageEmbed> {
4747
* @param inline - Whether the field is inline to the other fields.
4848
*/
4949
addField(name: string, value: StringResolvable, inline?: boolean): this;
50+
/**
51+
* Files to attach to all embeds.
52+
* @param files - Files to attach.
53+
*/
54+
attachFiles(files: Array<FileOptions | string | MessageAttachment>): this;
5055
/**
5156
* Build the Pagination Embeds.
5257
*

typings/FieldsEmbed.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export declare class FieldsEmbed<Element> extends PaginationEmbed<Element> {
4747
* })
4848
* .setFunctionEmojis({
4949
* '🔄': (user, instance) => {
50-
* const field = instance.fields[0];
50+
* const field = instance.embed.fields[0];
5151
*
5252
* if (field.name === 'Name')
5353
* field.name = user.tag;

typings/base/index.d.ts

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,16 @@ export declare class PaginationEmbed<Element> extends EventEmitter {
2626
page: number;
2727
/** The time for awaiting a user action before timeout in ms. Default: `30000` */
2828
timeout: number;
29-
/** The emojis used for navigation emojis. */
29+
/**
30+
* The emojis used for navigation emojis.
31+
* Navigation emojis are the default message reactions for navigating through the pagination.
32+
*/
3033
navigationEmojis: INavigationEmojis;
31-
/** The emojis used for function emojis. */
34+
/**
35+
* The emojis used for function emojis.
36+
* Function emojis are user-customised message reactions
37+
* for modifying the current instance of the pagination such as modifying embed texts, stopping the pagination, etc.
38+
*/
3239
functionEmojis: IFunctionEmoji<Element>;
3340
/**
3441
* The disabled navigation emojis.
@@ -60,7 +67,7 @@ export declare class PaginationEmbed<Element> extends EventEmitter {
6067
* ### Example
6168
* ```js
6269
* <PaginationEmbed>.addFunctionEmoji('🅱', (_, instance) => {
63-
* const field = instance.fields[0];
70+
* const field = instance.embed.fields[0];
6471
*
6572
* if (field.name.includes('🅱'))
6673
* field.name = 'Name';
@@ -126,7 +133,7 @@ export declare class PaginationEmbed<Element> extends EventEmitter {
126133
* ```js
127134
* <PaginationEmbed>.setFunctionEmojis({
128135
* '🔄': (user, instance) => {
129-
* const field = instance.fields[0];
136+
* const field = instance.embed.fields[0];
130137
*
131138
* if (field.name === 'Name')
132139
* field.name = user.tag;
@@ -199,8 +206,8 @@ export declare class PaginationEmbed<Element> extends EventEmitter {
199206
/** Awaits the reaction from the user(s). */
200207
protected _awaitResponse(): Promise<void>;
201208
/**
202-
* Only used for _awaitResponse:
203-
* Deletes the client's message, and emites either error or finish depending on the passed parameters.
209+
* Only used for `_awaitResponse`:
210+
* Deletes the client's message, and emits either `error` or `finish` event depending on the passed parameters.
204211
* @param err The error object.
205212
* @param clientMessage The client's message.
206213
* @param expired Whether the clean up is for `expired` event.
@@ -222,6 +229,11 @@ export declare class PaginationEmbed<Element> extends EventEmitter {
222229
* @event
223230
*/
224231
on(event: 'finish', listener: ListenerUser): this;
232+
/**
233+
* Emitted when the page number is updated.
234+
* @event
235+
*/
236+
on(event: 'pageUpdate', listener: () => void): this;
225237
/**
226238
* Emitted upon a user reacting on the instance.
227239
* @event
@@ -240,7 +252,7 @@ export declare class PaginationEmbed<Element> extends EventEmitter {
240252
/** @event */
241253
once(event: 'finish', listener: ListenerUser): this;
242254
/** @event */
243-
once(event: 'start' | 'expire', listener: () => void): this;
255+
once(event: 'start' | 'expire' | 'pageUpdate', listener: () => void): this;
244256
/** @event */
245257
once(event: 'react', listener: ListenerReact): this;
246258
/** @event */

0 commit comments

Comments
 (0)