From e4450c8417624b71d779cb4f41692538f9165e10 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sat, 2 Sep 2023 19:12:47 -0400 Subject: first commit --- .../discord.js/src/structures/ButtonBuilder.js | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 node_modules/discord.js/src/structures/ButtonBuilder.js (limited to 'node_modules/discord.js/src/structures/ButtonBuilder.js') diff --git a/node_modules/discord.js/src/structures/ButtonBuilder.js b/node_modules/discord.js/src/structures/ButtonBuilder.js new file mode 100644 index 0000000..ada4188 --- /dev/null +++ b/node_modules/discord.js/src/structures/ButtonBuilder.js @@ -0,0 +1,44 @@ +'use strict'; + +const { ButtonBuilder: BuildersButton } = require('@discordjs/builders'); +const { isJSONEncodable } = require('@discordjs/util'); +const { toSnakeCase } = require('../util/Transformers'); +const { resolvePartialEmoji } = require('../util/Util'); + +/** + * Represents a button builder. + * @extends {BuildersButton} + */ +class ButtonBuilder extends BuildersButton { + constructor({ emoji, ...data } = {}) { + super(toSnakeCase({ ...data, emoji: emoji && typeof emoji === 'string' ? resolvePartialEmoji(emoji) : emoji })); + } + + /** + * Sets the emoji to display on this button + * @param {string|APIMessageComponentEmoji} emoji The emoji to display on this button + * @returns {ButtonBuilder} + */ + setEmoji(emoji) { + if (typeof emoji === 'string') { + return super.setEmoji(resolvePartialEmoji(emoji)); + } + return super.setEmoji(emoji); + } + + /** + * Creates a new button builder from JSON data + * @param {ButtonBuilder|ButtonComponent|APIButtonComponent} other The other data + * @returns {ButtonBuilder} + */ + static from(other) { + return new this(isJSONEncodable(other) ? other.toJSON() : other); + } +} + +module.exports = ButtonBuilder; + +/** + * @external BuildersButton + * @see {@link https://discord.js.org/docs/packages/builders/stable/ButtonBuilder:Class} + */ -- cgit v1.2.3