diff --git a/packages/discord.js/src/structures/ThreadChannel.js b/packages/discord.js/src/structures/ThreadChannel.js index e317c3836..fb69bf1e5 100644 --- a/packages/discord.js/src/structures/ThreadChannel.js +++ b/packages/discord.js/src/structures/ThreadChannel.js @@ -103,12 +103,8 @@ class ThreadChannel extends Channel { this.archiveTimestamp = Date.parse(data.thread_metadata.archive_timestamp); if ('create_timestamp' in data.thread_metadata) { - /** - * The timestamp when this thread was created. This isn't available for threads - * created before 2022-01-09 - * @type {?number} - */ - this.createdTimestamp = Date.parse(data.thread_metadata.create_timestamp); + // Note: this is needed because we can't assign directly to getters + this._createdTimestamp = Date.parse(data.thread_metadata.create_timestamp); } } else { this.locked ??= null; @@ -118,7 +114,7 @@ class ThreadChannel extends Channel { this.invitable ??= null; } - this.createdTimestamp ??= this.type === ChannelType.GuildPrivateThread ? super.createdTimestamp : null; + this._createdTimestamp ??= this.type === ChannelType.GuildPrivateThread ? super.createdTimestamp : null; if ('owner_id' in data) { /** @@ -188,6 +184,16 @@ class ThreadChannel extends Channel { if (data.messages) for (const message of data.messages) this.messages._add(message); } + /** + * The timestamp when this thread was created. This isn't available for threads + * created before 2022-01-09 + * @type {?number} + * @readonly + */ + get createdTimestamp() { + return this._createdTimestamp; + } + /** * A collection of associated guild member objects of this thread's members * @type {Collection} diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index cfd13f52b..43e878a7d 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -2193,7 +2193,8 @@ export class ThreadChannel extends TextBasedChannelMixin(Channel) { public readonly archivedAt: Date | null; public archiveTimestamp: number | null; public readonly createdAt: Date | null; - public createdTimestamp: number | null; + private _createdTimestamp: number | null; + public readonly createdTimestamp: number | null; public autoArchiveDuration: ThreadAutoArchiveDuration | null; public readonly editable: boolean; public guild: Guild;