mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 18:43:31 +01:00
feat(ThreadChannel): add ThreadChannel#viewable (#6975)
This commit is contained in:
@@ -551,7 +551,15 @@ class Message extends Base {
|
|||||||
* @readonly
|
* @readonly
|
||||||
*/
|
*/
|
||||||
get editable() {
|
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);
|
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
|
* Whether the client user can send messages in this thread
|
||||||
* @type {boolean}
|
* @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 readonly joined: boolean;
|
||||||
public locked: boolean | null;
|
public locked: boolean | null;
|
||||||
public readonly manageable: boolean;
|
public readonly manageable: boolean;
|
||||||
|
public readonly viewable: boolean;
|
||||||
public readonly sendable: boolean;
|
public readonly sendable: boolean;
|
||||||
public memberCount: number | null;
|
public memberCount: number | null;
|
||||||
public messageCount: number | null;
|
public messageCount: number | null;
|
||||||
|
|||||||
Reference in New Issue
Block a user