mirror of
https://github.com/danbulant/discord.js
synced 2026-07-07 12:11:11 +00:00
Added awaiting internally
This commit is contained in:
parent
20439172c1
commit
ddfed4da6c
2 changed files with 72 additions and 6 deletions
|
|
@ -50,6 +50,8 @@ var InternalClient = (function () {
|
||||||
this.voiceConnection = null;
|
this.voiceConnection = null;
|
||||||
this.resolver = new Resolver(this);
|
this.resolver = new Resolver(this);
|
||||||
this.readyTime = null;
|
this.readyTime = null;
|
||||||
|
|
||||||
|
this.messageAwaits = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
//def leaveVoiceChannel
|
//def leaveVoiceChannel
|
||||||
|
|
@ -67,6 +69,30 @@ var InternalClient = (function () {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//def awaitResponse
|
||||||
|
|
||||||
|
InternalClient.prototype.awaitResponse = function awaitResponse(msg) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
return new Promise(function (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
|
//def joinVoiceChannel
|
||||||
|
|
||||||
InternalClient.prototype.joinVoiceChannel = function joinVoiceChannel(chann) {
|
InternalClient.prototype.joinVoiceChannel = function joinVoiceChannel(chann) {
|
||||||
|
|
@ -256,7 +282,7 @@ var InternalClient = (function () {
|
||||||
// def logout
|
// def logout
|
||||||
|
|
||||||
InternalClient.prototype.logout = function logout() {
|
InternalClient.prototype.logout = function logout() {
|
||||||
var _this = this;
|
var _this2 = this;
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
@ -270,9 +296,9 @@ var InternalClient = (function () {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject(new Error(err));
|
reject(new Error(err));
|
||||||
} else {
|
} else {
|
||||||
if (_this.websocket) {
|
if (_this2.websocket) {
|
||||||
_this.websocket.close();
|
_this2.websocket.close();
|
||||||
_this.websocket = null;
|
_this2.websocket = null;
|
||||||
}
|
}
|
||||||
self.token = null;
|
self.token = null;
|
||||||
self.email = null;
|
self.email = null;
|
||||||
|
|
@ -1247,7 +1273,16 @@ var InternalClient = (function () {
|
||||||
var channel = self.channels.get("id", data.channel_id) || self.private_channels.get("id", data.channel_id);
|
var channel = self.channels.get("id", data.channel_id) || self.private_channels.get("id", data.channel_id);
|
||||||
if (channel) {
|
if (channel) {
|
||||||
var msg = channel.messages.add(new Message(data, channel, client));
|
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(function (fn) {
|
||||||
|
return 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);
|
self.ack(msg);
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "message created but channel is not cached");
|
client.emit("warn", "message created but channel is not cached");
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,8 @@ class InternalClient {
|
||||||
this.voiceConnection = null;
|
this.voiceConnection = null;
|
||||||
this.resolver = new Resolver(this);
|
this.resolver = new Resolver(this);
|
||||||
this.readyTime = null;
|
this.readyTime = null;
|
||||||
|
|
||||||
|
this.messageAwaits = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
get uptime() {
|
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
|
//def joinVoiceChannel
|
||||||
joinVoiceChannel(chann) {
|
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);
|
var channel = self.channels.get("id", data.channel_id) || self.private_channels.get("id", data.channel_id);
|
||||||
if (channel) {
|
if (channel) {
|
||||||
var msg = channel.messages.add(new Message(data, channel, client));
|
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);
|
self.ack(msg);
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "message created but channel is not cached");
|
client.emit("warn", "message created but channel is not cached");
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue