mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
feat(ThreadChannel): add ThreadChannel#viewable (#6975)
This commit is contained in:
@@ -551,7 +551,15 @@ class Message extends Base {
|
||||
* @readonly
|
||||
*/
|
||||
get editable() {
|
||||
return Boolean(this.author.id === this.client.user.id && !this.deleted && (!this.guild || this.channel?.viewable));
|
||||
const precheck = Boolean(
|
||||
this.author.id === this.client.user.id && !this.deleted && (!this.guild || this.channel?.viewable),
|
||||
);
|
||||
// Regardless of permissions thread messages cannot be edited if
|
||||
// the thread is locked.
|
||||
if (this.channel?.isThread()) {
|
||||
return precheck && !this.channel.locked;
|
||||
}
|
||||
return precheck;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -442,6 +442,18 @@ class ThreadChannel extends Channel {
|
||||
return this.permissionsFor(this.client.user)?.has(Permissions.FLAGS.MANAGE_THREADS, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the thread is viewable by the client user
|
||||
* @type {boolean}
|
||||
* @readonly
|
||||
*/
|
||||
get viewable() {
|
||||
if (this.client.user.id === this.guild.ownerId) return true;
|
||||
const permissions = this.permissionsFor(this.client.user);
|
||||
if (!permissions) return false;
|
||||
return permissions.has(Permissions.FLAGS.VIEW_CHANNEL, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the client user can send messages in this thread
|
||||
* @type {boolean}
|
||||
|
||||
1
typings/index.d.ts
vendored
1
typings/index.d.ts
vendored
@@ -2099,6 +2099,7 @@ export class ThreadChannel extends TextBasedChannel(Channel) {
|
||||
public readonly joined: boolean;
|
||||
public locked: boolean | null;
|
||||
public readonly manageable: boolean;
|
||||
public readonly viewable: boolean;
|
||||
public readonly sendable: boolean;
|
||||
public memberCount: number | null;
|
||||
public messageCount: number | null;
|
||||
|
||||
Reference in New Issue
Block a user