From 6b5c15d19af659c6c1010e85b8894e729004c4d3 Mon Sep 17 00:00:00 2001 From: ZiomaleQ Date: Tue, 5 Jan 2021 14:42:27 +0100 Subject: [PATCH] event based await in guildAvailability method --- src/structures/guild.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/structures/guild.ts b/src/structures/guild.ts index 5081fcf..04ebcfe 100644 --- a/src/structures/guild.ts +++ b/src/structures/guild.ts @@ -311,16 +311,15 @@ export class Guild extends Base { * @param delay the delay between checking guild availability */ async awaitAvailability(delay: number = 1000): Promise { - if(!this.unavailable) return; - var loaded = false; - var listener = (guild: Guild): void => { loaded = loaded || guild.id === this.id }; - this.client.on('guildLoaded', listener); - while(true) { - await new Promise(resolve => setTimeout(resolve, delay)); - if(loaded) { - this.client.removeListener('guildLoaded', listener); - return; - } + return await new Promise((resolve, reject) => { + if(!this.unavailable) return; + var listener = (guild: Guild): void => { + if (guild.id === this.id) { + this.removeListener('guildLoaded', listener); + resolve(); + } + }; + this.client.on('guildLoaded', listener); } } }