mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-12 09:33:32 +01:00
Merge branch 'master' into indev-prism
This commit is contained in:
@@ -297,6 +297,14 @@ class ClientUser extends User {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Invite|string} invite Invite or code to accept
|
||||
* @returns {Promise<Guild>} Joined guild
|
||||
*/
|
||||
acceptInvite(invite) {
|
||||
return this.client.rest.methods.acceptInvite(invite);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ClientUser;
|
||||
|
||||
@@ -325,14 +325,15 @@ class Guild {
|
||||
/**
|
||||
* Fetch a single guild member from a user.
|
||||
* @param {UserResolvable} user The user to fetch the member for
|
||||
* @param {boolean} [cache=true] Insert the user into the users cache
|
||||
* @returns {Promise<GuildMember>}
|
||||
*/
|
||||
fetchMember(user) {
|
||||
fetchMember(user, cache = true) {
|
||||
if (this._fetchWaiter) return Promise.reject(new Error('Already fetching guild members.'));
|
||||
user = this.client.resolver.resolveUser(user);
|
||||
if (!user) return Promise.reject(new Error('User is not cached. Use Client.fetchUser first.'));
|
||||
if (this.members.has(user.id)) return Promise.resolve(this.members.get(user.id));
|
||||
return this.client.rest.methods.getGuildMember(this, user);
|
||||
return this.client.rest.methods.getGuildMember(this, user, cache);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -343,7 +344,7 @@ class Guild {
|
||||
*/
|
||||
fetchMembers(query = '') {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this._fetchWaiter) throw new Error('Already fetching guild members in ${this.id}.');
|
||||
if (this._fetchWaiter) throw new Error(`Already fetching guild members in ${this.id}.`);
|
||||
if (this.memberCount === this.members.size) {
|
||||
resolve(this);
|
||||
return;
|
||||
|
||||
@@ -45,13 +45,23 @@ class VoiceChannel extends GuildChannel {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the voice channel is full
|
||||
* @type {boolean}
|
||||
*/
|
||||
get full() {
|
||||
return this.members.size >= this.userLimit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the client has permission join the voice channel
|
||||
* @type {boolean}
|
||||
*/
|
||||
get joinable() {
|
||||
if (this.client.browser) return false;
|
||||
return this.permissionsFor(this.client.user).hasPermission('CONNECT');
|
||||
if (!this.permissionsFor(this.client.user).hasPermission('CONNECT')) return false;
|
||||
if (this.full && !this.permissionsFor(this.client.user).hasPermission('MOVE_MEMBERS')) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -353,16 +353,17 @@ class TextBasedChannel {
|
||||
}
|
||||
|
||||
/**
|
||||
* Bulk delete given messages.
|
||||
* Bulk delete given messages that are newer than two weeks
|
||||
* <warn>This is only available when using a bot account.</warn>
|
||||
* @param {Collection<string, Message>|Message[]|number} messages Messages to delete, or number of messages to delete
|
||||
* @param {boolean} [filterOld=false] Filter messages to remove those which are older than two weeks automatically
|
||||
* @returns {Promise<Collection<string, Message>>} Deleted messages
|
||||
*/
|
||||
bulkDelete(messages) {
|
||||
bulkDelete(messages, filterOld = false) {
|
||||
if (!isNaN(messages)) return this.fetchMessages({ limit: messages }).then(msgs => this.bulkDelete(msgs));
|
||||
if (messages instanceof Array || messages instanceof Collection) {
|
||||
const messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id);
|
||||
return this.client.rest.methods.bulkDeleteMessages(this, messageIDs);
|
||||
return this.client.rest.methods.bulkDeleteMessages(this, messageIDs, filterOld);
|
||||
}
|
||||
throw new TypeError('The messages must be an Array, Collection, or number.');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user