UNPKG

discord-giveaway-easy

Version:

A module allowing the simple creation of a discord giveaway with your bot supported by Discord.js^14.0.0

128 lines (108 loc) 3.62 kB
const Discord = require("discord.js") const {EmbedGeneratorOptions} = require("./Constants") module.exports = class EmbedGeneratorBuilder { /** * @param {Number} time * @param {EmbedGeneratorOptions} options * * @exemple * ``` * let time = "10m" * * new EmbedGeneratorBuilder(time, { * interaction: message, * winnerNumber: options.winnerNumber, * Title: "TitleExemple", * Color: "#ffffff", * }) * ``` */ constructor(time, options) { this.time = time; this.emoji = options.Emoji; this.winnerNumber = options.winnerNumber; this.interaction = options.interaction; this.Title = options.Title; this.Color = options.Color; this.winnerRandom = options.winnerRandom; this.entries = options.entries; } Embed() { let Embed = new Discord.EmbedBuilder() .setTitle(this.Title) .setColor(this.Color) .setDescription(`React with ${this.emoji} to participate!\nTime remaining: <t:${this.time}:R>\nHosted by: ${this.interaction.user}`) .setTimestamp() .setFooter({text: `Entrie: 0 | winner(s): ${this.winnerNumber}`}) return Embed; } /** * * @param {Number} Entrie * @param {Number} newTime * @returns */ unpauseEmbed(Entrie, newTime) { let Embed = new Discord.EmbedBuilder() .setTitle(this.Title) .setColor(this.Color) .setDescription(`React with ${this.emoji} to participate!\nTime remaining: <t:${newTime}:R>\nHosted by: ${this.interaction.user}`) .setTimestamp() .setFooter({text: `Entrie: ${Entrie} | winner(s): ${this.winnerNumber}`}) return Embed; } /** * * @param {Number} Entrie * @returns */ pauseEmbed(Entrie) { let Embed = new Discord.EmbedBuilder() .setTitle(this.Title) .setColor("C89C15") .setDescription(`\n\n⚠️ **Giveaway Paused**\n\nReact with ${this.emoji} to participate!\nTime remaining: **infinite**\nHosted by: ${this.interaction.user}`) .setTimestamp() .setFooter({text: `Entrie: ${Entrie} | winner(s): ${this.winnerNumber}`}) return Embed; } /** * * @param {Number} Entrie * @returns */ editEmbed(Entrie) { let Embed = new Discord.EmbedBuilder() .setTitle(this.Title) .setColor(this.Color) .setDescription(`React with ${this.emoji} to participate!\nTime remaining: <t:${this.time}:R>\nHosted by: ${this.interaction.user}`) .setFooter({text: `Entrie: ${Entrie} | winner(s): ${this.winnerNumber}`}) .setTimestamp() return Embed; } /** * * @param {Number} Entrie * @param {Number} FinishTime * @returns */ endEmbed(Entrie, FinishTime) { let Embed = new Discord.EmbedBuilder() .setTitle(this.Title) .setColor("#2f3136") .setDescription(`Ended: <t:${FinishTime === undefined ? this.time : this.time + FinishTime}:R> (<t:${FinishTime === undefined ? this.time : this.time + FinishTime}:f>)\nWinner(s): \n${this.winnerRandom.join("\n")}\nHosted by: ${this.interaction.user}`) .setFooter({text: `Entrie: ${Entrie} | winner(s): ${this.winnerNumber}`}) .setTimestamp() return Embed; } /** * * @param {Discord.Message} message * @returns */ entrieEmbed(message) { let EntrieEmbed = new Discord.EmbedBuilder() .setDescription(`**${this.entries}** entries. [↗️](${message.url})`) .setColor("#2f3136") return EntrieEmbed; } }