Add initial configuration files and code structure

This commit is contained in:
Bildcraft1 2024-06-05 22:12:03 +02:00
parent 127a7dc87f
commit c1b886a226
3 changed files with 66 additions and 1 deletions

20
README.md Normal file
View file

@ -0,0 +1,20 @@
# AI Discord Bot
## Configuration (config.json)
The `config.json` file contains the configuration settings for your AI Discord bot. It is used to store sensitive information and customize the behavior of your bot.
### Fields in config.json
- `token`: The Discord bot token. This is a secret key that allows your bot to authenticate with the Discord API. Make sure to keep this token private and never share it publicly.
- `clientID`: The bot userID
- `ownerID`: The Discord user ID of the bot owner. This is used to restrict certain commands or actions to the bot owner only. You can find your user ID by enabling Developer Mode in Discord and right-clicking on your username.
### Setting up the config.json file
Before running your bot, make sure to fill in the appropriate values for each field in the `config.json` file. Replace the placeholder values with your own Discord bot token, command prefix, owner ID, status message, activity type, and activity name.
Once you have filled in the necessary information, you can start your AI Discord bot and it will use the configuration settings specified in the `config.json` file.

View file

@ -1,7 +1,6 @@
{
"token": "bot-token",
"clientId": "bot-id",
"guildId": "server-id",
"ownerId": "owner-id",
"whitelist": []
}

46
deploy-globally.js Normal file
View file

@ -0,0 +1,46 @@
const { REST, Routes } = require('discord.js');
const { clientId, token } = require('./config.json');
const fs = require('node:fs');
const path = require('node:path');
const commands = [];
// Grab all the command folders 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);
const command = require(filePath);
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
const rest = new REST().setToken(token);
// 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(
Routes.applicationCommands(clientId),
{ 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);
}
})();