feat(Threads): update permissions and fix getters (#6466)

This commit is contained in:
Advaith
2021-10-02 04:41:05 -07:00
committed by GitHub
parent 7c4d1dffb4
commit 10478ad148
3 changed files with 19 additions and 14 deletions

View File

@@ -415,7 +415,9 @@ class ThreadChannel extends Channel {
* @readonly * @readonly
*/ */
get editable() { get editable() {
return (this.ownerId === this.client.user.id && (this.type !== 'private_thread' || this.joined)) || this.manageable; return (
(this.ownerId === this.client.user.id && (this.type !== 'GUILD_PRIVATE_THREAD' || this.joined)) || this.manageable
);
} }
/** /**
@@ -450,17 +452,10 @@ class ThreadChannel extends Channel {
*/ */
get sendable() { get sendable() {
return ( return (
!this.archived && (!(this.archived && this.locked && !this.manageable) &&
(this.type !== 'private_thread' || this.joined || this.manageable) && (this.type !== 'GUILD_PRIVATE_THREAD' || this.joined || this.manageable) &&
this.permissionsFor(this.client.user)?.any( this.permissionsFor(this.client.user)?.has(Permissions.FLAGS.SEND_MESSAGES_IN_THREADS, false)) ??
[ false
Permissions.FLAGS.SEND_MESSAGES,
this.type === 'GUILD_PRIVATE_THREAD'
? Permissions.FLAGS.USE_PRIVATE_THREADS
: Permissions.FLAGS.USE_PUBLIC_THREADS,
],
false,
)
); );
} }

View File

@@ -91,9 +91,12 @@ class Permissions extends BitField {
* * `USE_APPLICATION_COMMANDS` * * `USE_APPLICATION_COMMANDS`
* * `REQUEST_TO_SPEAK` * * `REQUEST_TO_SPEAK`
* * `MANAGE_THREADS` * * `MANAGE_THREADS`
* * `USE_PUBLIC_THREADS` * * `USE_PUBLIC_THREADS` (deprecated)
* * `USE_PRIVATE_THREADS` * * `CREATE_PUBLIC_THREADS`
* * `USE_PRIVATE_THREADS` (deprecated)
* * `CREATE_PRIVATE_THREADS`
* * `USE_EXTERNAL_STICKERS` (use stickers from different guilds) * * `USE_EXTERNAL_STICKERS` (use stickers from different guilds)
* * `SEND_MESSAGES_IN_THREADS`
* * `START_EMBEDDED_ACTIVITIES` * * `START_EMBEDDED_ACTIVITIES`
* @type {Object<string, bigint>} * @type {Object<string, bigint>}
* @see {@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags} * @see {@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags}
@@ -133,9 +136,13 @@ Permissions.FLAGS = {
USE_APPLICATION_COMMANDS: 1n << 31n, USE_APPLICATION_COMMANDS: 1n << 31n,
REQUEST_TO_SPEAK: 1n << 32n, REQUEST_TO_SPEAK: 1n << 32n,
MANAGE_THREADS: 1n << 34n, MANAGE_THREADS: 1n << 34n,
// TODO: Remove deprecated USE_*_THREADS flags in v14
USE_PUBLIC_THREADS: 1n << 35n, USE_PUBLIC_THREADS: 1n << 35n,
CREATE_PUBLIC_THREADS: 1n << 35n,
USE_PRIVATE_THREADS: 1n << 36n, USE_PRIVATE_THREADS: 1n << 36n,
CREATE_PRIVATE_THREADS: 1n << 36n,
USE_EXTERNAL_STICKERS: 1n << 37n, USE_EXTERNAL_STICKERS: 1n << 37n,
SEND_MESSAGES_IN_THREADS: 1n << 38n,
START_EMBEDDED_ACTIVITIES: 1n << 39n, START_EMBEDDED_ACTIVITIES: 1n << 39n,
}; };

3
typings/index.d.ts vendored
View File

@@ -4535,8 +4535,11 @@ export type PermissionString =
| 'REQUEST_TO_SPEAK' | 'REQUEST_TO_SPEAK'
| 'MANAGE_THREADS' | 'MANAGE_THREADS'
| 'USE_PUBLIC_THREADS' | 'USE_PUBLIC_THREADS'
| 'CREATE_PUBLIC_THREADS'
| 'USE_PRIVATE_THREADS' | 'USE_PRIVATE_THREADS'
| 'CREATE_PRIVATE_THREADS'
| 'USE_EXTERNAL_STICKERS' | 'USE_EXTERNAL_STICKERS'
| 'SEND_MESSAGES_IN_THREADS'
| 'START_EMBEDDED_ACTIVITIES'; | 'START_EMBEDDED_ACTIVITIES';
export type RecursiveArray<T> = ReadonlyArray<T | RecursiveArray<T>>; export type RecursiveArray<T> = ReadonlyArray<T | RecursiveArray<T>>;