mirror of
https://github.com/MinazukiAmane/Tinasha-Bot.git
synced 2025-03-15 04:15:58 +08:00
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
require("dotenv").config();
|
|
require("module-alias/register");
|
|
|
|
// register extenders
|
|
require("@helpers/extenders/Message");
|
|
require("@helpers/extenders/Guild");
|
|
require("@helpers/extenders/GuildChannel");
|
|
|
|
const { checkForUpdates } = require("@helpers/BotUtils");
|
|
const { initializeMongoose } = require("@src/database/mongoose");
|
|
const { BotClient } = require("@src/structures");
|
|
const { validateConfiguration } = require("@helpers/Validator");
|
|
|
|
validateConfiguration();
|
|
|
|
// initialize client
|
|
const client = new BotClient();
|
|
client.loadCommands("src/commands");
|
|
client.loadContexts("src/contexts");
|
|
client.loadEvents("src/events");
|
|
|
|
// find unhandled promise rejections
|
|
process.on("unhandledRejection", (err) => client.logger.error(`Unhandled exception`, err));
|
|
|
|
(async () => {
|
|
// check for updates
|
|
await checkForUpdates();
|
|
|
|
// start the dashboard
|
|
if (client.config.DASHBOARD.enabled) {
|
|
client.logger.log("Launching dashboard");
|
|
try {
|
|
const { launch } = require("@root/dashboard/app");
|
|
|
|
// let the dashboard initialize the database
|
|
await launch(client);
|
|
} catch (ex) {
|
|
client.logger.error("Failed to launch dashboard", ex);
|
|
}
|
|
} else {
|
|
// initialize the database
|
|
await initializeMongoose();
|
|
}
|
|
|
|
// start the client
|
|
await client.login(process.env.BOT_TOKEN);
|
|
})();
|