maptest-bot/bot.js
Carter Penterman 3a167cf686
Some checks failed
continuous-integration/drone/push Build is failing
Parse map models and validate them (#13)
The enhancements:
- Added map validation that checks for some common errors that maps have
- /take: Does map validation but will still take the map even if there are problems
- /take: Improved the help text and added links to the maptest places
- /submit: Does map validation and will not let you submit if there are problems
- /submissions: Now shows the map's display name and creator
- Added an ESLint config and tidied some things up
- Updated some of the packages

Reviewed-on: #13
Co-authored-by: Carter Penterman <carterpenterman@gmail.com>
Co-committed-by: Carter Penterman <carterpenterman@gmail.com>
2024-04-24 06:28:07 +00:00

44 lines
1.1 KiB
JavaScript

const fs = require('node:fs');
const { Client, Collection } = require("discord.js");
const {token} = require("./config/config.json");
const client = new Client({intents: ["Guilds"]});
client.commands = new Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
// Set a new item in the Collection
// With the key as the command name and the value as the exported module
client.commands.set(command.data.name, command);
}
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return;
const command = client.commands.get(interaction.commandName);
if (!command) return;
try {
await command.execute(interaction);
} catch (error) {
console.error(error);
await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
}
});
client.on("error", async _error => {
});
client.once("ready", () => {
console.log("Ready");
client.user.setActivity({
name: "use /take and /submit",
type: 0
});
});
client.login(token);