mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
feat(Invite): add deletable getter (#3203)
* add Invite#deletable * fix ci * reee * since guild is nullable * accommodate for external invites * nit(Invite): use guild instead of channel.guild
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const { Endpoints } = require('../util/Constants');
|
||||
const Permissions = require('../util/Permissions');
|
||||
const Base = require('./Base');
|
||||
|
||||
/**
|
||||
@@ -91,6 +92,18 @@ class Invite extends Base {
|
||||
return this.createdTimestamp ? new Date(this.createdTimestamp) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the invite is deletable by the client user
|
||||
* @type {boolean}
|
||||
* @readonly
|
||||
*/
|
||||
get deletable() {
|
||||
const guild = this.guild;
|
||||
if (!guild || !this.client.guilds.has(guild.id)) return false;
|
||||
return this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_CHANNELS, false) ||
|
||||
guild.me.permissions.has(Permissions.FLAGS.MANAGE_GUILD);
|
||||
}
|
||||
|
||||
/**
|
||||
* The timestamp the invite will expire at
|
||||
* @type {?number}
|
||||
|
||||
3
typings/index.d.ts
vendored
3
typings/index.d.ts
vendored
@@ -615,7 +615,8 @@ declare module 'discord.js' {
|
||||
constructor(client: Client, data: object);
|
||||
public channel: GuildChannel;
|
||||
public code: string;
|
||||
public readonly createdAt: Date;
|
||||
public readonly deletable: boolean;
|
||||
public readonly createdAt: Date | null;
|
||||
public createdTimestamp: number | null;
|
||||
public readonly expiresAt: Date | null;
|
||||
public readonly expiresTimestamp: number | null;
|
||||
|
||||
Reference in New Issue
Block a user