Version 3.0 sortie, fusion avec JujulBot
This commit is contained in:
		
							
								
								
									
										58
									
								
								src/commands/salonpostam/crack.ts
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										58
									
								
								src/commands/salonpostam/crack.ts
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| import { SlashCommandBuilder, EmbedBuilder, ChatInputCommandInteraction, MessageReaction, User }from 'discord.js' | ||||
| import * as crack from '../../utils/crack' | ||||
|  | ||||
| export default { | ||||
| 	data: new SlashCommandBuilder().setName('crack').setDescription('Télécharge un crack sur le site online-fix.me !') | ||||
| 		.addStringOption(option => option.setName('jeu').setDescription('Quel jeu tu veux DL ?').setRequired(true)), | ||||
| 	async execute(interaction: ChatInputCommandInteraction) { | ||||
| 		await interaction.deferReply() | ||||
|  | ||||
| 		let query = interaction.options.getString('jeu') | ||||
| 		if (!query) return | ||||
|  | ||||
| 		let games = await crack.search(query) as crack.Game[] | ||||
| 		if (!Array.isArray(games)) { | ||||
| 			//if (games.toString() == "TypeError: Cannot read properties of undefined (reading 'split')") return interaction.followUp({ content: `J'ai rien trouvé pour "${query}" !` }) | ||||
| 			//else return interaction.followUp({ content: "Une erreur s'est produite ! ```" + games + "```" }) | ||||
| 			return interaction.followUp({ content: `J'ai rien trouvé pour "${query}" !` }) | ||||
| 		} | ||||
|  | ||||
| 		let game = {} as crack.Game | ||||
| 		if (games.length > 1) { | ||||
| 			games = games.slice(0, 9) | ||||
| 			let list = '' | ||||
| 			for (let i = 0; i < games.length; i++) list += `\n${i + 1}. ${games[i].name} (${games[i].link})` | ||||
| 			let message = await interaction.followUp({ content: `J'ai trouvé plusieurs jeux pour "${query}" ! ${list}` }) | ||||
|  | ||||
| 			let emojis = ['1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣', '9️⃣'] | ||||
| 			for (let i = 0; i < games.length; i++) await message.react(emojis[i]) | ||||
| 			 | ||||
| 			// Wait for a reaction to be added by the interaction author. | ||||
| 			const filter: any = (reaction: MessageReaction, user: User) => { if (reaction.emoji.name) return emojis.includes(reaction.emoji.name) && user.id === interaction.user.id } | ||||
| 			await message.awaitReactions({ filter, max: 1, time: 5000, errors: ['time'] }).then(collected => { | ||||
| 				console.log(collected) | ||||
| 				if (!collected.first) return | ||||
| 				let reaction = collected.first() | ||||
| 				let index = emojis.indexOf(reaction?.emoji.name ?? '') | ||||
| 				game = games[index] | ||||
| 			}).catch(() => { return interaction.followUp({ content: 'T\'as mis trop de temps à choisir !' }) }) | ||||
| 		} | ||||
| 		else game = games[0] | ||||
|  | ||||
| 		let url = await crack.repo(game) | ||||
| 		if (!url) return | ||||
| 		let file = await crack.torrent(url) | ||||
| 		if (!file) return | ||||
| 		let filePath = await crack.download(url, file) | ||||
| 		if (!filePath) return | ||||
| 		let link = await crack.magnet(filePath) | ||||
|  | ||||
| 		let embed = new EmbedBuilder() | ||||
| 			.setColor('#ffc370') | ||||
| 			.setTitle(game.name) | ||||
| 			.setURL(game.link) | ||||
| 			.setDescription(`Voici ce que j'ai trouvé pour "${query}".\nTu peux aussi cliquer sur [ce lien](https://angels-dev.fr/magnet/${link}) pour pouvoir télécharger le jeu direct !`) | ||||
|  | ||||
| 		await interaction.followUp({ embeds: [embed], files: [filePath] }) | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user