UNPKG

@oceanicjs/builders

Version:

Helpful builders for various Discord related things.

132 lines 6.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const Component_1 = tslib_1.__importDefault(require("./Component")); const oceanic_js_1 = require("oceanic.js"); class Button extends Component_1.default { customID; emoji; label; style; url; /** * Create a new Button. * @param style The style of this button. * @param urlOrCustomID The url of this button if style 5, else the custom ID of this button. */ constructor(style, urlOrCustomID) { super(oceanic_js_1.ComponentTypes.BUTTON); this.style = style; if (style === oceanic_js_1.ButtonStyles.LINK) { this.url = urlOrCustomID; } else { this.customID = urlOrCustomID; } } /** this method is meant to be for internal use only, don't use it, as it may break or change at a moments notice */ load(style, urlOrCustomID, label, emoji, disabled) { if (style) { this.setStyle(style); } if (urlOrCustomID) { if (this.style === oceanic_js_1.ButtonStyles.LINK) { this.url = urlOrCustomID; } else { this.customID = urlOrCustomID; } } if (label) { this.setLabel(label); } if (emoji) { this.setEmoji(emoji); } if (typeof disabled !== "undefined") { if (disabled) { this.disable(); } else { this.enable(); } } return this; } /** * Set the custom id of this button (styles 1-4). * @param customID A developer-defined identifier for the button, max 100 characters. */ setCustomID(customID) { this.customID = customID; return this; } /** * Set the emoji of this button. * @param emoji The emoji to display on this button. */ setEmoji(emoji) { this.emoji = emoji; return this; } /** * Set the label of this button * @param label The label to display on this button. */ setLabel(label) { this.label = label; return this; } /** * Set the style of this button. * * 1 - blurple * * 2 - grey * * 3 - green * * 4 - red * * 5 - link * @param style The [style](https://discord.com/developers/docs/interactions/message-components#button-object-button-styles) of this button. */ setStyle(style) { this.style = style; return this; } /** * Set the custom id of this button (style 5). * @param url The url to open when this button is clicked. */ setURL(url) { this.url = url; return this; } toJSON() { const obj = { type: this.type, style: this.style, label: this.label, emoji: this.emoji, disabled: this.disabled }; if (this.style === oceanic_js_1.ButtonStyles.LINK) { obj.url = this.url; return obj; } else { obj.customID = this.customID; return obj; } } toJSONRaw() { const json = this.toJSON(); if (this.style === oceanic_js_1.ButtonStyles.LINK) { return json; } else { const raw = json; raw.custom_id = raw.customID; delete raw.customID; return raw; } } } exports.default = Button; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL1N0cnVjdHVyZXMvQnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9FQUFvQztBQUVwQywyQ0FPb0I7QUFFcEIsTUFBcUIsTUFBTyxTQUFRLG1CQUFnQztJQUNoRSxRQUFRLENBQVU7SUFDbEIsS0FBSyxDQUFnQjtJQUNyQixLQUFLLENBQVU7SUFDZixLQUFLLENBQThCO0lBQ25DLEdBQUcsQ0FBVTtJQUNiOzs7O09BSUc7SUFDSCxZQUFZLEtBQWtDLEVBQUUsYUFBcUI7UUFDakUsS0FBSyxDQUFDLDJCQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxLQUFLLEtBQUsseUJBQVksQ0FBQyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUM7U0FDNUI7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELG9IQUFvSDtJQUM1RyxJQUFJLENBQUMsS0FBbUMsRUFBRSxhQUFzQixFQUFFLEtBQWMsRUFBRSxLQUFvQixFQUFFLFFBQWtCO1FBQzlILElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtRQUNELElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLHlCQUFZLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQzthQUM1QjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQzthQUNqQztTQUNKO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDakMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xCO2lCQUFNO2dCQUNILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNqQjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQW1CO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxRQUFRLENBQUMsS0FBa0M7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRVEsTUFBTTtRQUNYLE1BQU0sR0FBRyxHQUFHO1lBQ1IsSUFBSSxFQUFNLElBQUksQ0FBQyxJQUFJO1lBQ25CLEtBQUssRUFBSyxJQUFJLENBQUMsS0FBSztZQUNwQixLQUFLLEVBQUssSUFBSSxDQUFDLEtBQUs7WUFDcEIsS0FBSyxFQUFLLElBQUksQ0FBQyxLQUFLO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUNBLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLHlCQUFZLENBQUMsSUFBSSxFQUFFO1lBQ2pDLEdBQWlCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFJLENBQUM7WUFDbkMsT0FBTyxHQUFHLENBQUM7U0FDZDthQUFNO1lBQ0YsR0FBa0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVMsQ0FBQztZQUM5QyxPQUFPLEdBQUcsQ0FBQztTQUNkO0lBQ0wsQ0FBQztJQUVRLFNBQVM7UUFDZCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLHlCQUFZLENBQUMsSUFBSSxFQUFFO1lBQ2xDLE9BQU8sSUFBaUIsQ0FBQztTQUM1QjthQUFNO1lBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBMEMsQ0FBQztZQUN2RCxHQUFHLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDN0IsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ3BCLE9BQU8sR0FBK0IsQ0FBQztTQUMxQztJQUNMLENBQUM7Q0FDSjtBQWhJRCx5QkFnSUMifQ==