From 0b5ef296cb475de52b24fb0d63e2446ce9c5e862 Mon Sep 17 00:00:00 2001 From: Schuyler Cebulskie Date: Sat, 15 Oct 2016 20:23:32 -0400 Subject: [PATCH] Fix split messages resolving with multiple of the same message --- src/client/rest/RESTMethods.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/client/rest/RESTMethods.js b/src/client/rest/RESTMethods.js index 3bbe155dd..e885ac50b 100644 --- a/src/client/rest/RESTMethods.js +++ b/src/client/rest/RESTMethods.js @@ -68,8 +68,7 @@ class RESTMethods { if (channel instanceof User || channel instanceof GuildMember) { this.createDM(channel).then(chan => { this._sendMessageRequest(chan, content, file, tts, nonce, resolve, reject); - }) - .catch(reject); + }).catch(reject); } else { this._sendMessageRequest(channel, content, file, tts, nonce, resolve, reject); } @@ -79,22 +78,24 @@ class RESTMethods { _sendMessageRequest(channel, content, file, tts, nonce, resolve, reject) { if (content instanceof Array) { const datas = []; - const promise = this.rest.makeRequest('post', Constants.Endpoints.channelMessages(channel.id), true, { + let promise = this.rest.makeRequest('post', Constants.Endpoints.channelMessages(channel.id), true, { content: content[0], tts, nonce, }, file).catch(reject); + for (let i = 1; i <= content.length; i++) { if (i < content.length) { - promise.then(data => { + const i2 = i; + promise = promise.then(data => { datas.push(data); return this.rest.makeRequest('post', Constants.Endpoints.channelMessages(channel.id), true, { - content: content[i], tts, nonce, + content: content[i2], tts, nonce, }, file); - }); + }).catch(reject); } else { promise.then(data => { datas.push(data); resolve(this.rest.client.actions.MessageCreate.handle(datas).messages); - }); + }).catch(reject); } } } else {