event based await in guildAvailability method
This commit is contained in:
parent
c4a3fbc45c
commit
6b5c15d19a
1 changed files with 9 additions and 10 deletions
|
@ -311,16 +311,15 @@ export class Guild extends Base {
|
||||||
* @param delay the delay between checking guild availability
|
* @param delay the delay between checking guild availability
|
||||||
*/
|
*/
|
||||||
async awaitAvailability(delay: number = 1000): Promise<void> {
|
async awaitAvailability(delay: number = 1000): Promise<void> {
|
||||||
if(!this.unavailable) return;
|
return await new Promise((resolve, reject) => {
|
||||||
var loaded = false;
|
if(!this.unavailable) return;
|
||||||
var listener = (guild: Guild): void => { loaded = loaded || guild.id === this.id };
|
var listener = (guild: Guild): void => {
|
||||||
this.client.on('guildLoaded', listener);
|
if (guild.id === this.id) {
|
||||||
while(true) {
|
this.removeListener('guildLoaded', listener);
|
||||||
await new Promise(resolve => setTimeout(resolve, delay));
|
resolve();
|
||||||
if(loaded) {
|
}
|
||||||
this.client.removeListener('guildLoaded', listener);
|
};
|
||||||
return;
|
this.client.on('guildLoaded', listener);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue