diff --git a/src/structures/Emoji.js b/src/structures/Emoji.js index 20d6b12bb..ed844f18a 100644 --- a/src/structures/Emoji.js +++ b/src/structures/Emoji.js @@ -1,5 +1,7 @@ +const Snowflake = require('../util/Snowflake'); const Base = require('./Base'); + /** * Represents an emoji, see {@link GuildEmoji} and {@link ReactionEmoji}. * @extends {Base} @@ -52,6 +54,26 @@ class Emoji extends Base { return this.client.rest.cdn.Emoji(this.id, this.animated ? 'gif' : 'png'); } + /** + * The timestamp the emoji was created at, or null if unicode + * @type {?number} + * @readonly + */ + get createdTimestamp() { + if (!this.id) return null; + return Snowflake.deconstruct(this.id).timestamp; + } + + /** + * The time the emoji was created at, or null if unicode + * @type {?Date} + * @readonly + */ + get createdAt() { + if (!this.id) return null; + return new Date(this.createdTimestamp); + } + /** * When concatenated with a string, this automatically returns the text required to form a graphical emoji on Discord * instead of the Emoji object. diff --git a/src/structures/GuildEmoji.js b/src/structures/GuildEmoji.js index 20e48aa06..93e8d275d 100644 --- a/src/structures/GuildEmoji.js +++ b/src/structures/GuildEmoji.js @@ -1,7 +1,6 @@ const GuildEmojiRoleStore = require('../stores/GuildEmojiRoleStore'); const Permissions = require('../util/Permissions'); const { Error } = require('../errors'); -const Snowflake = require('../util/Snowflake'); const Emoji = require('./Emoji'); /** @@ -65,24 +64,6 @@ class GuildEmoji extends Emoji { return new GuildEmojiRoleStore(this); } - /** - * The timestamp the emoji was created at - * @type {number} - * @readonly - */ - get createdTimestamp() { - return Snowflake.deconstruct(this.id).timestamp; - } - - /** - * The time the emoji was created at - * @type {Date} - * @readonly - */ - get createdAt() { - return new Date(this.createdTimestamp); - } - /** * Fetches the author for this emoji * @returns {Promise} diff --git a/typings/index.d.ts b/typings/index.d.ts index 2a570ec57..ca77f6438 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -370,6 +370,8 @@ declare module 'discord.js' { export class Emoji extends Base { constructor(client: Client, emoji: object); public animated: boolean; + public readonly createdAt: Date; + public readonly createdTimestamp: number; public readonly deletable: boolean; public id: Snowflake; public name: string; @@ -544,8 +546,6 @@ declare module 'discord.js' { constructor(client: Client, data: object, guild: Guild); private _roles: string[]; - public readonly createdAt: Date; - public readonly createdTimestamp: number; public deleted: boolean; public guild: Guild; public managed: boolean;