mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 12:33:30 +01:00
Merge remote-tracking branch 'origin/indev' into indev-voice
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "discord.js",
|
"name": "discord.js",
|
||||||
"version": "9.3.0",
|
"version": "10.0.0",
|
||||||
"description": "A powerful library for interacting with the Discord API",
|
"description": "A powerful library for interacting with the Discord API",
|
||||||
"main": "./src/index",
|
"main": "./src/index",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -372,26 +372,27 @@ class RESTMethods {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
banGuildMember(guild, member, deleteDays) {
|
banGuildMember(guild, member, deleteDays = 0) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const id = this.rest.client.resolver.resolveUserID(member);
|
const id = this.rest.client.resolver.resolveUserID(member);
|
||||||
if (!id) throw new Error('Couldn\'t resolve the user ID to ban.');
|
if (!id) throw new Error('Couldn\'t resolve the user ID to ban.');
|
||||||
|
|
||||||
this.rest.makeRequest('put', `${Constants.Endpoints.guildBans(guild.id)}/${id}`, true, {
|
this.rest.makeRequest('put',
|
||||||
'delete-message-days': deleteDays,
|
`${Constants.Endpoints.guildBans(guild.id)}/${id}?delete-message-days=${deleteDays}`, true, {
|
||||||
}).then(() => {
|
'delete-message-days': deleteDays,
|
||||||
if (member instanceof GuildMember) {
|
}).then(() => {
|
||||||
resolve(member);
|
if (member instanceof GuildMember) {
|
||||||
return;
|
resolve(member);
|
||||||
}
|
return;
|
||||||
const user = this.rest.client.resolver.resolveUser(id);
|
}
|
||||||
if (user) {
|
const user = this.rest.client.resolver.resolveUser(id);
|
||||||
member = this.rest.client.resolver.resolveGuildMember(guild, user);
|
if (user) {
|
||||||
resolve(member || user);
|
member = this.rest.client.resolver.resolveGuildMember(guild, user);
|
||||||
return;
|
resolve(member || user);
|
||||||
}
|
return;
|
||||||
resolve(id);
|
}
|
||||||
}).catch(reject);
|
resolve(id);
|
||||||
|
}).catch(reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,16 +90,24 @@ class ClientUser extends User {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the avatar of the logged in Client.
|
* Set the avatar of the logged in Client.
|
||||||
* @param {Base64Resolvable} avatar The new avatar
|
* @param {FileResolvable|Base64Resolveable} avatar The new avatar
|
||||||
* @returns {Promise<ClientUser>}
|
* @returns {Promise<ClientUser>}
|
||||||
* @example
|
* @example
|
||||||
* // set avatar
|
* // set avatar
|
||||||
* client.user.setAvatar(fs.readFileSync('./avatar.png'))
|
* client.user.setAvatar('./avatar.png')
|
||||||
* .then(user => console.log(`New avatar set!`))
|
* .then(user => console.log(`New avatar set!`))
|
||||||
* .catch(console.error);
|
* .catch(console.error);
|
||||||
*/
|
*/
|
||||||
setAvatar(avatar) {
|
setAvatar(avatar) {
|
||||||
return this.client.rest.methods.updateCurrentUser({ avatar });
|
return new Promise(resolve => {
|
||||||
|
if (avatar.startsWith('data:')) {
|
||||||
|
resolve(this.client.rest.methods.updateCurrentUser({ avatar }));
|
||||||
|
} else {
|
||||||
|
this.client.resolver.resolveFile(avatar).then(data => {
|
||||||
|
resolve(this.client.rest.methods.updateCurrentUser({ avatar: data }));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -176,12 +176,11 @@ class Webhook {
|
|||||||
* @param {FileResolvable} avatar The new avatar for the Webhook.
|
* @param {FileResolvable} avatar The new avatar for the Webhook.
|
||||||
* @returns {Promise<Webhook>}
|
* @returns {Promise<Webhook>}
|
||||||
*/
|
*/
|
||||||
edit(name, avatar) {
|
edit(name = this.name, avatar) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (avatar) {
|
if (avatar) {
|
||||||
this.client.resolver.resolveFile(avatar).then(file => {
|
this.client.resolver.resolveFile(avatar).then(file => {
|
||||||
let base64 = new Buffer(file, 'binary').toString('base64');
|
const dataURI = this.client.resolver.resolveBase64(file);
|
||||||
let dataURI = `data:;base64,${base64}`;
|
|
||||||
this.client.rest.methods.editWebhook(this, name, dataURI)
|
this.client.rest.methods.editWebhook(this, name, dataURI)
|
||||||
.then(resolve).catch(reject);
|
.then(resolve).catch(reject);
|
||||||
}).catch(reject);
|
}).catch(reject);
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ class TextBasedChannel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a single message from this channel, regardless of it being cached or not.
|
* Gets a single message from this channel, regardless of it being cached or not.
|
||||||
|
* <warn>Only OAuth bot accounts can use this method.</warn>
|
||||||
* @param {string} messageID The ID of the message to get
|
* @param {string} messageID The ID of the message to get
|
||||||
* @returns {Promise<Message>}
|
* @returns {Promise<Message>}
|
||||||
* @example
|
* @example
|
||||||
@@ -310,17 +311,22 @@ class TextBasedChannel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bulk delete a given Collection or Array of messages in one go. Returns the deleted messages after.
|
* Bulk delete given messages.
|
||||||
* Only OAuth Bot accounts may use this method.
|
* Only OAuth Bot accounts may use this method.
|
||||||
* @param {Collection<string, Message>|Message[]} messages The messages to delete
|
* @param {Collection<string, Message>|Message[]|number} messages Messages to delete, or number of messages to delete
|
||||||
* @returns {Collection<string, Message>}
|
* @returns {Promise<Collection<string, Message>>} Deleted messages
|
||||||
*/
|
*/
|
||||||
bulkDelete(messages) {
|
bulkDelete(messages) {
|
||||||
if (!(messages instanceof Array || messages instanceof Collection)) {
|
return new Promise((resolve, reject) => {
|
||||||
return Promise.reject(new TypeError('Messages must be an Array or Collection.'));
|
if (!isNaN(messages)) {
|
||||||
}
|
this.fetchMessages({ limit: messages }).then(msgs => resolve(this.bulkDelete(msgs)));
|
||||||
const messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id);
|
} else if (messages instanceof Array || messages instanceof Collection) {
|
||||||
return this.client.rest.methods.bulkDeleteMessages(this, messageIDs);
|
const messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id);
|
||||||
|
resolve(this.client.rest.methods.bulkDeleteMessages(this, messageIDs));
|
||||||
|
} else {
|
||||||
|
reject(new TypeError('Messages must be an Array, Collection, or number.'));
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
_cacheMessage(message) {
|
_cacheMessage(message) {
|
||||||
|
|||||||
Reference in New Issue
Block a user