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 | ||||
|    */ | ||||
|   async awaitAvailability(delay: number = 1000): Promise<void> { | ||||
|     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); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue