/** * Represents a limited emoji set used for both custom and unicode emojis. Custom emojis * will use this class opposed to the Emoji class when the client doesn't know enough * information about them. */ class ReactionEmoji { constructor(reaction, name, id) { /** * The message reaction this emoji refers to * @type {MessageReaction} */ this.reaction = reaction; /** * The name of this reaction emoji. * @type {string} */ this.name = name; /** * The ID of this reaction emoji. * @type {string} */ this.id = id; } /** * The identifier of this emoji, used for message reactions * @readonly * @type {string} */ get identifier() { if (this.id) return `${this.name}:${this.id}`; return encodeURIComponent(this.name); } /** * Creates the text required to form a graphical emoji on Discord. * @example * // send the emoji used in a reaction to the channel the reaction is part of * reaction.message.channel.sendMessage(`The emoji used is ${reaction.emoji}`); * @returns {string} */ toString() { return this.id ? `<:${this.name}:${this.id}>` : this.name; } } module.exports = ReactionEmoji;