goose/services/ask-ai-bot/index.ts
BestCodes 849cc60fbc
feat: ask ai discord bot (#6842)
Signed-off-by: The-Best-Codes <bestcodes.official@gmail.com>
2026-02-02 22:11:28 +00:00

63 lines
1.7 KiB
TypeScript

import { configDotenv } from "dotenv";
configDotenv();
// Command and index files are generated by the CLI...
// Run `discraft dev` or `discraft build` to generate them
import { Events } from "discord.js";
import { registerCommands } from "./.discraft/commands/index";
import { registerEvents } from "./.discraft/events/index";
import client from "./clients/discord";
import { logger } from "./utils/logger";
logger.start("Starting bot...");
// Register events before login
registerEvents(client)
.then(() => {
logger.verbose("Events registered in main process.");
})
.catch((err) => {
logger.error("Error registering events.");
logger.verbose(err);
})
.finally(() => {
client.on(Events.ClientReady, async () => {
logger.success("Client logged in.");
try {
await registerCommands(client);
} catch (err) {
logger.error("Error registering commands.");
logger.verbose(err);
}
});
client.login(process.env.DISCORD_TOKEN).catch((err) => {
logger.error(
"Client login failed, make sure your token is set correctly.",
);
logger.verbose(err);
});
});
process.on("uncaughtException", (err) => {
logger.error("Uncaught exception.");
logger.verbose(err);
});
process.on("unhandledRejection", (err) => {
logger.error("Unhandled rejection.");
logger.verbose(err);
});
process.on("SIGINT", async () => {
logger.info("Received SIGINT, Gracefully shutting down...");
try {
logger.info("Closing client...");
await client.destroy();
logger.success("Client closed.");
} catch (err) {
logger.error("Error while shutting down client.");
logger.verbose(err);
}
logger.info("Exiting...");
process.exit(0);
});