mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 00:53:31 +01:00
Added awaiting internally
This commit is contained in:
@@ -44,6 +44,8 @@ class InternalClient {
|
||||
this.voiceConnection = null;
|
||||
this.resolver = new Resolver(this);
|
||||
this.readyTime = null;
|
||||
|
||||
this.messageAwaits = {};
|
||||
}
|
||||
|
||||
get uptime() {
|
||||
@@ -63,6 +65,28 @@ class InternalClient {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//def awaitResponse
|
||||
awaitResponse(msg){
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
msg = this.resolver.resolveMessage(msg);
|
||||
|
||||
if(!msg){
|
||||
reject(new Error("message undefined"));
|
||||
return;
|
||||
}
|
||||
|
||||
var awaitID = msg.channel.id + msg.id;
|
||||
|
||||
if( !this.messageAwaits[awaitID] ){
|
||||
this.messageAwaits[awaitID] = [];
|
||||
}
|
||||
|
||||
this.messageAwaits[awaitID].push(resolve);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//def joinVoiceChannel
|
||||
joinVoiceChannel(chann) {
|
||||
@@ -1325,7 +1349,14 @@ class InternalClient {
|
||||
var channel = self.channels.get("id", data.channel_id) || self.private_channels.get("id", data.channel_id);
|
||||
if (channel) {
|
||||
var msg = channel.messages.add(new Message(data, channel, client));
|
||||
client.emit("message", msg);
|
||||
|
||||
if(self.messageAwaits[channel.id + msg.id]){
|
||||
self.messageAwaits[channel.id + msg.id].map( fn => fn() );
|
||||
self.messageAwaits[channel.id + msg.id] = null;
|
||||
client.emit("message", msg, true); //2nd param is isAwaitedMessage
|
||||
}else{
|
||||
client.emit("message", msg);
|
||||
}
|
||||
self.ack(msg);
|
||||
} else {
|
||||
client.emit("warn", "message created but channel is not cached");
|
||||
|
||||
Reference in New Issue
Block a user