Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • EventEmitter
    • PageEmbedBuilder

Index

Constructors

  • Builds an embed with a number of pages based on how many are in the EmbedBuilder array given.

    Parameters

    • channel: TextChannel | DMChannel

    Returns PageEmbedBuilder

Events

  • create(sent: Message<boolean>, reactions: Collection<string, MessageReaction>): void
  • Emitted when the builder is finished creating the first page.

    Parameters

    • sent: Message<boolean>
    • reactions: Collection<string, MessageReaction>

    Returns void

  • pageUpdate(page: number): void
  • Emitted when the page for the builder has updated.

    Parameters

    • page: number

    Returns void

  • preSend(reactions: Map<string, boolean>): void
  • Emitted before the first embed has been sent.

    Parameters

    • reactions: Map<string, boolean>

    Returns void

  • stop(sent: Message<boolean>, lastPage: number, collector: ReactionCollector): void
  • Emitted when the builder has stopped

    Parameters

    • sent: Message<boolean>
    • lastPage: number
    • collector: ReactionCollector

    Returns void

Properties

back: string = '◀'
channel: TextChannel | DMChannel

The channel being used with the EmbedBuilder.

collection: undefined | ReactionCollector
date?: number
embeds: EmbedBuilder[] = []

All embeds in the builder.

emojis: Emoji[] = []
enabledReactions: string[] = ...
endColor: ColorResolvable = 0xE21717
first: string = '⏪'
hasColor: boolean = false
last: string = '⏩'
next: string = '▶'
pageFormat: string = '%p/%m'
stop: string = '⏹'
stopFunc?: (() => void)

Type declaration

    • (): void
    • Returns void

time: number = 60000
timer?: Timeout
usingPageNumber: boolean = true
usingPages: boolean = true

Methods

  • Parameters

    • embed: EmbedBuilder

      The embed to push to the array of embeds.

    Returns PageEmbedBuilder

  • addEmoji(unicodeEmoji: string, func: ((sent: Message<boolean>, page: number, emoji: string) => void)): PageEmbedBuilder
  • Add an emoji which will perform it's own action when pressed.

    Parameters

    • unicodeEmoji: string
    • func: ((sent: Message<boolean>, page: number, emoji: string) => void)
        • (sent: Message<boolean>, page: number, emoji: string): void
        • Parameters

          • sent: Message<boolean>
          • page: number
          • emoji: string

          Returns void

    Returns PageEmbedBuilder

  • builder.addEmojis({
    '❗': (sent, page, emoji) => {
    builder.cancel();
    sent.delete();
    sent.channel.send(`A new message ${emoji}\nThe page you were on before was ${page}`);
    }
    });

    Parameters

    • emojis: Emojis

      The emojis to push.

    Returns PageEmbedBuilder

  • Adds a single field to all embeds.

    Parameters

    • name: string

      Name of the field

    • value: string

      Value of the field

    • Optional inline: boolean

      Inline?

    Returns PageEmbedBuilder

  • Adds multiple fields to all embeds.

    Parameters

    • fields: APIEmbedField[]

      An array of APIEmbedField

    Returns PageEmbedBuilder

  • Use after embed has already been built to add time to the current collector.

    Parameters

    • time: number

      Time to add to current amount of time. (ms)

    Returns PageEmbedBuilder

  • Whenever the builder changes it's page, it will add specified amount of time (ms) to the current running timer.

    Parameters

    • timeToAdd: number

      Time to add to current amount of time. (ms)

    Returns PageEmbedBuilder

  • Create an updater to await responses from a user, then set the builders current page to the page given.

    emits

    pageUpdate

    Parameters

    • user: User

      The user to accept a page update from.

    • Optional options: PageUpdateOptions

    Returns PageEmbedBuilder

  • Builds the embed.

    emits

    stop

    emits

    create

    emits

    pageUpdate

    emits

    preSend

    listens

    pageUpdate

    Returns Promise<PageEmbedBuilder>

  • calculatePages(data: number, dataPerPage: number, insert: ((embed: EmbedBuilder, index: number) => void)): PageEmbedBuilder
  • This calculates pages for the builder to work with.

    // This will generate a builder with a data length set to an array
    // It will have 10 fields per page, which will all be inline, containing username and points data.
    embedBuilder.calculatePages(users.length, 10, (embed, i) => {
    embed.addFields({name: users[i].username, value: users[i].points, inline: true});
    });

    Parameters

    • data: number

      This is the amount of data to process.

    • dataPerPage: number

      This is how much data you want displayed per page.

    • insert: ((embed: EmbedBuilder, index: number) => void)

      Gives you an embed and the current index.

        • (embed: EmbedBuilder, index: number): void
        • Parameters

          • embed: EmbedBuilder
          • index: number

          Returns void

    Returns PageEmbedBuilder

  • calculatePagesAsync(data: number, dataPerPage: number, insert: ((embed: EmbedBuilder, index: number) => Promise<void>)): Promise<PageEmbedBuilder>
  • Async version of calculatePages

    Makes the page calculator wait for operations to finish.

    await embedBuilder.calculatePagesAsync(users.length, 10, async (embed, i) => {
    const user = await getSomeUser(users[i]);
    embed.addFields({name: users.username, value: users.points, inline: true});
    });

    Parameters

    • data: number

      This is the amount of data to process.

    • dataPerPage: number

      This is how much data you want displayed per page.

    • insert: ((embed: EmbedBuilder, index: number) => Promise<void>)

      Gives you an embed and the current index.

        • (embed: EmbedBuilder, index: number): Promise<void>
        • Parameters

          • embed: EmbedBuilder
          • index: number

          Returns Promise<void>

    Returns Promise<PageEmbedBuilder>

  • Cancels the builder

    emits

    stop

    Parameters

    • Optional callback: (() => void)
        • (): void
        • Returns void

    Returns PageEmbedBuilder

  • Warning: This should not be used to set the channel. You can set that in the constructor

    Parameters

    • channel: TextChannel | DMChannel

      The channel to switch the current one to.

    Returns PageEmbedBuilder

  • Adds the embeds given to the end of the current embeds array.

    Parameters

    • embeds: EmbedBuilder[]

      The embeds given here will be put at the end of the current embed array.

    Returns PageEmbedBuilder

  • Parameters

    • reactions: []

      The reactions the bot will use. If this method is not used in the builder, the bot will automatically add all reactions. Any reactions left out will not be used.

    Returns PageEmbedBuilder

  • Deletes an emoji from the emoji list

    Parameters

    • unicodeEmoji: string

    Returns PageEmbedBuilder

  • Resets the timer to either the time already set, or a new time given.

    Parameters

    • Optional time: number

      New time to set (ms)

    Returns PageEmbedBuilder

  • Whenever the builder changes it's page, it will reset the timer to the current set time.

    Parameters

    • Optional time: number

    Returns PageEmbedBuilder

  • Parameters

    • name: string
    • Optional icon: string
    • Optional url: string

    Returns PageEmbedBuilder

  • Parameters

    • color: ColorResolvable

    Returns PageEmbedBuilder

  • Parameters

    • description: string

    Returns PageEmbedBuilder

  • Parameters

    • embeds: EmbedBuilder[]

      The array of embeds to use.

    Returns PageEmbedBuilder

  • When the collection has ended, and no other custom color is being used, this will be the color the embed is set to. Default is 0xE21717

    Parameters

    • color: ColorResolvable

      Any color resolvable

    Returns PageEmbedBuilder

  • Parameters

    • text: string
    • Optional icon: string

    Returns PageEmbedBuilder

  • Parameters

    • url: string

    Returns PageEmbedBuilder

  • Replaces current type of emoji given with the new emoji provided.

    Parameters

    • emoji: string

      The type of page emoji to replace. Types: back, first, stop, last, next.

    • newEmoji: string

      This emoji will replace the current page emoji for the given type.

    Returns PageEmbedBuilder

  • Parameters

    • format: string

      The format that the footer will use to display page number (if enabled).

      // %p = current page
      // %m = the amount of pages there are
      embedBuilder.setPageFormat('Page (%p/%m)');
      // -> Page (1/3)

    Returns PageEmbedBuilder

  • Parameters

    • url: string

    Returns PageEmbedBuilder

  • Parameters

    • time: number

      The amount of time the bot will allow reactions for. (ms)

    Returns PageEmbedBuilder

  • Parameters

    • Optional timestamp: number | Date

    Returns PageEmbedBuilder

  • Parameters

    • title: string

    Returns PageEmbedBuilder

  • Parameters

    • url: string

    Returns PageEmbedBuilder

  • Parameters

    • use: boolean

    Returns PageEmbedBuilder

  • spliceFields(index: number, deleteCount: number, field: APIEmbedField): PageEmbedBuilder
  • Parameters

    • index: number
    • deleteCount: number
    • field: APIEmbedField

    Returns PageEmbedBuilder

  • Sets the current embeds page to the one provided. Do not use this unless the first page has initialized already.

    emits

    pageUpdate

    Parameters

    • page: number

      The page to update the embed to.

    Returns PageEmbedBuilder

  • Parameters

    • use: boolean

      Use the page system for the embed.

    Returns PageEmbedBuilder

Generated using TypeDoc