Fixed awaiting

This commit is contained in:
hydrabolt
2015-11-21 20:59:33 +00:00
parent ddfed4da6c
commit d916e5719b
5 changed files with 58 additions and 9 deletions

View File

@@ -797,6 +797,25 @@ class Client extends EventEmitter {
});
}
// def awaitResponse
awaitResponse(msg, callback = function (e, newMsg) { }) {
return new Promise((resolve, reject) => {
this.internal.awaitResponse(msg)
.then(newMsg => {
resolve(newMsg);
callback(null, newMsg);
})
.catch(e => {
callback(e);
reject(e);
});
})
}
setStatusIdle() {
this.setStatus("idle");
}

View File

@@ -77,13 +77,14 @@ class InternalClient {
return;
}
var awaitID = msg.channel.id + msg.id;
var awaitID = msg.channel.id + msg.author.id;
if( !this.messageAwaits[awaitID] ){
this.messageAwaits[awaitID] = [];
}
this.messageAwaits[awaitID].push(resolve);
});
}
@@ -1350,9 +1351,9 @@ class InternalClient {
if (channel) {
var msg = channel.messages.add(new Message(data, channel, client));
if(self.messageAwaits[channel.id + msg.id]){
self.messageAwaits[channel.id + msg.id].map( fn => fn() );
self.messageAwaits[channel.id + msg.id] = null;
if(self.messageAwaits[channel.id + msg.author.id]){
self.messageAwaits[channel.id + msg.author.id].map( fn => fn(msg) );
self.messageAwaits[channel.id + msg.author.id] = null;
client.emit("message", msg, true); //2nd param is isAwaitedMessage
}else{
client.emit("message", msg);