Add initial configuration files and code structure
This commit is contained in:
parent
127a7dc87f
commit
c1b886a226
3 changed files with 66 additions and 1 deletions
20
README.md
Normal file
20
README.md
Normal 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.
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"token": "bot-token",
|
"token": "bot-token",
|
||||||
"clientId": "bot-id",
|
"clientId": "bot-id",
|
||||||
"guildId": "server-id",
|
|
||||||
"ownerId": "owner-id",
|
"ownerId": "owner-id",
|
||||||
"whitelist": []
|
"whitelist": []
|
||||||
}
|
}
|
46
deploy-globally.js
Normal file
46
deploy-globally.js
Normal 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);
|
||||||
|
}
|
||||||
|
})();
|
Loading…
Add table
Add a link
Reference in a new issue