| 
									
										
										
										
											2023-11-26 23:02:34 +00:00
										 |  |  | const { REST, Routes } = require('discord.js'); | 
					
						
							|  |  |  | const { config } = require('dotenv'); | 
					
						
							| 
									
										
										
										
											2023-11-19 23:59:41 +00:00
										 |  |  | config(); | 
					
						
							| 
									
										
										
										
											2023-11-17 23:24:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-27 23:41:23 +00:00
										 |  |  | const fs = require('node:fs'); | 
					
						
							|  |  |  | const path = require('node:path'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-17 23:24:07 +00:00
										 |  |  | const commands = []; | 
					
						
							|  |  |  | // Grab all the command files from the commands directory you created earlier
 | 
					
						
							|  |  |  | const foldersPath = path.join(__dirname, 'commands'); | 
					
						
							|  |  |  | const commandFolders = fs.readdirSync(foldersPath); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for (const folder of commandFolders) { | 
					
						
							|  |  |  | 	// Grab all the command files from the commands directory you created earlier
 | 
					
						
							|  |  |  | 	const commandsPath = path.join(foldersPath, folder); | 
					
						
							|  |  |  | 	const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js')); | 
					
						
							|  |  |  | 	// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
 | 
					
						
							|  |  |  | 	for (const file of commandFiles) { | 
					
						
							|  |  |  | 		const filePath = path.join(commandsPath, file); | 
					
						
							| 
									
										
										
										
											2023-11-26 23:02:34 +00:00
										 |  |  | 		const command = require(filePath); | 
					
						
							| 
									
										
										
										
											2023-11-17 23:24:07 +00:00
										 |  |  | 		if ('data' in command && 'execute' in command) { | 
					
						
							|  |  |  | 			commands.push(command.data.toJSON()); | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Construct and prepare an instance of the REST module
 | 
					
						
							| 
									
										
										
										
											2023-12-30 00:50:23 +00:00
										 |  |  | const rest = new REST().setToken(process.env.discordToken); | 
					
						
							| 
									
										
										
										
											2023-11-17 23:24:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // and deploy your commands!
 | 
					
						
							|  |  |  | (async () => { | 
					
						
							|  |  |  | 	try { | 
					
						
							|  |  |  | 		console.log(`Started refreshing ${commands.length} application (/) commands.`); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// The put method is used to fully refresh all commands in the guild with the current set
 | 
					
						
							|  |  |  | 		const data = await rest.put( | 
					
						
							| 
									
										
										
										
											2023-12-30 00:50:23 +00:00
										 |  |  | 			Routes.applicationGuildCommands(process.env.discordClientId, process.env.discordGuildId), | 
					
						
							| 
									
										
										
										
											2023-11-17 23:24:07 +00:00
										 |  |  | 			{ body: commands }, | 
					
						
							|  |  |  | 		); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		console.log(`Successfully reloaded ${data.length} application (/) commands.`); | 
					
						
							|  |  |  | 	} catch (error) { | 
					
						
							|  |  |  | 		// And of course, make sure you catch and log any errors!
 | 
					
						
							|  |  |  | 		console.error(error); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | })(); |