2023-12-30 01:56:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								const  {  SlashCommandBuilder ,  EmbedBuilder  }  =  require ( 'discord.js' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-11 21:32:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								const  {  getUserRegistration ,  deleteBeatenGameNum ,  checkGameStorageId ,  getRecentBeatenGameEntry ,  deleteBeatenGameId ,  getBeatenGameCount ,  getPlanningGameCount ,  getPlayingGameCount  }  =  require ( '../../databaseHelperFunctions.js' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:56:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								const  {  getCoverURL ,  getGameJson  }  =  require ( '../../igdbHelperFunctions.js' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-19 20:42:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								module . exports  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    data :  new  SlashCommandBuilder ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-11 21:32:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        . setName ( 'deletebeatengame' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-19 20:42:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        . setDescription ( 'Delete a game that you have beaten from the 100 game challenge!' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        . addNumberOption ( option  =>  option . setName ( 'beatgamenumber' ) . setDescription ( 'Index of the game to delete in the list of beaten games.' ) . setMinValue ( 1 ) . setMaxValue ( 100 ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    async  execute ( interaction )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 21:12:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        await  interaction . deferReply ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-31 23:30:06 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-19 20:42:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        const  beatGameNumber  =  interaction . options . getNumber ( 'beatgamenumber' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        const  userDatabaseEntry  =  await  getUserRegistration ( interaction . user ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        let  result ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:31:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( beatGameNumber )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-19 20:42:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								            result  =  await  deleteBeatenGameNum ( beatGameNumber ,  userDatabaseEntry ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:36:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        else  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-11 19:42:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            const  recentGame  =  await  getRecentBeatenGameEntry ( userDatabaseEntry . id ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:55:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            result  =  await  deleteBeatenGameId ( recentGame . id ,  userDatabaseEntry ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:36:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-19 20:42:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( result )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:56:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            const  gameDatabaseEntry  =  await  checkGameStorageId ( result . gameId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            const  body  =  ` where id =  ${  gameDatabaseEntry . igdb _id  } ; fields *; ` ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            const  res  =  await  getGameJson ( body ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 21:12:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            if  ( ! res )  return  interaction . editReply ( {  content :  'No game found.' ,  ephemeral :  true  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:56:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            const  game  =  res [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-11 21:32:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            const  beatNum  =  await  getBeatenGameCount ( userDatabaseEntry ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            const  planNum  =  await  getPlanningGameCount ( userDatabaseEntry ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            const  playNum  =  await  getPlayingGameCount ( userDatabaseEntry ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:56:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            const  embed  =  new  EmbedBuilder ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            . setColor ( 0xFF0000 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            . setAuthor ( {  name :  ` ${ interaction . user . displayName }  deleted a game! ` ,  iconURL :  interaction . user . avatarURL ( )  } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            . setTitle ( ` ${ game . name }  deleted! ` ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            . setFooter ( {  text :  'The Ochulus • 100 Games Challenge' ,  iconURL :  interaction . client . user . avatarURL ( )  } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            . setTimestamp ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-09 23:38:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            embed . addFields ( {  name :  'Planned' ,  value :  ` ${ planNum }  game(s) ` ,  inline :  true  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            embed . addFields ( {  name :  'Now Playing' ,  value :  ` ${ playNum }  game(s) ` ,  inline :  true  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            embed . addFields ( {  name :  'Beaten' ,  value :  ` ${ beatNum } /100 ( ${ 100  -  beatNum }  game(s) remaining) ` ,  inline :  true  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-14 19:11:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            if  ( game . cover )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                const  coverUrl  =  await  getCoverURL ( game . cover ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                embed . setThumbnail ( ` ${ coverUrl } ` ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 21:12:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  interaction . editReply ( {  embeds :  [ embed ]  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-19 20:42:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 21:12:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  interaction . editReply ( {  content :  'Unable to delete entry / No entry found.' ,  ephemeral :  true  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-19 20:42:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    } , 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-30 01:56:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} ;