mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
refactor: remove duplicate send checks (#2790)
* re-direct pr code to master * fix Webhook send docs * requested changes * typings: Updated to latest commit * requested change * requested change
This commit is contained in:
@@ -81,7 +81,7 @@ class TextBasedChannel {
|
||||
|
||||
/**
|
||||
* Sends a message to this channel.
|
||||
* @param {StringResolvable} [content=''] The content to send
|
||||
* @param {StringResolvable|APIMessage} [content=''] The content to send
|
||||
* @param {MessageOptions|MessageAdditions} [options={}] The options to provide
|
||||
* @returns {Promise<Message|Message[]>}
|
||||
* @example
|
||||
@@ -125,30 +125,23 @@ class TextBasedChannel {
|
||||
async send(content, options) {
|
||||
const User = require('../User');
|
||||
const GuildMember = require('../GuildMember');
|
||||
|
||||
if (this instanceof User || this instanceof GuildMember) {
|
||||
return this.createDM().then(dm => dm.send(content, options));
|
||||
}
|
||||
|
||||
const apiMessage = APIMessage.create(this, content, options);
|
||||
const data = apiMessage.resolveData();
|
||||
if (data.content instanceof Array) {
|
||||
const messages = [];
|
||||
for (let i = 0; i < data.content.length; i++) {
|
||||
let opt;
|
||||
if (i === data.content.length - 1) {
|
||||
opt = { tts: data.tts, embed: data.embed, files: apiMessage.options.files };
|
||||
} else {
|
||||
opt = { tts: data.tts };
|
||||
}
|
||||
let apiMessage;
|
||||
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
const message = await this.send(data.content[i], opt);
|
||||
messages.push(message);
|
||||
if (content instanceof APIMessage) {
|
||||
apiMessage = content.resolveData();
|
||||
} else {
|
||||
apiMessage = APIMessage.create(this, content, options).resolveData();
|
||||
if (apiMessage.data.content instanceof Array) {
|
||||
return Promise.all(apiMessage.split().map(this.send.bind(this)));
|
||||
}
|
||||
return messages;
|
||||
}
|
||||
|
||||
const files = await apiMessage.resolveFiles();
|
||||
const { data, files } = await apiMessage.resolveFiles();
|
||||
return this.client.api.channels[this.id].messages.post({ data, files })
|
||||
.then(d => this.client.actions.MessageCreate.handle(d).message);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user