aaif-goose--goose
8a21a212f8
Deploy Documentation / deploy (push) Has been cancelled
Canary / build-cli (push) Has been skipped
Canary / Upload Install Script (push) Has been skipped
Canary / bundle-desktop (push) Has been skipped
Canary / bundle-desktop-intel (push) Has been skipped
Canary / bundle-desktop-linux (push) Has been skipped
Canary / bundle-desktop-windows (push) Has been skipped
Canary / bundle-desktop-windows-cuda (push) Has been skipped
Canary / Release (push) Has been skipped
Cargo Deny / deny (push) Has been skipped
Unused Dependencies / machete (push) Has been skipped
Canary / Prepare Version (push) Failing after 1s
Live Provider Tests / check-fork (push) Failing after 0s
Create Minor Release PR / check-version-bump-pr (push) Has been skipped
Publish Ask AI Bot Docker Image / docker (push) Failing after 1s
Live Provider Tests / changes (push) Has been skipped
Scorecard supply-chain security / Scorecard analysis (push) Has been skipped
Publish Docker Image / docker (push) Failing after 1s
CI / changes (push) Failing after 8s
Create Minor Release PR / release (push) Has been skipped
Live Provider Tests / Smoke Tests (push) Has been cancelled
Live Provider Tests / Smoke Tests (Code Execution) (push) Has been cancelled
Live Provider Tests / Compaction Tests (push) Has been cancelled
CI / Build Rust Project on Windows (push) Has been cancelled
Live Provider Tests / Build Binary (push) Has been cancelled
CI / Lint Rust Code (push) Has been cancelled
CI / Check Generated Schemas are Up-to-Date (push) Has been cancelled
CI / Test and Lint Electron Desktop App (push) Has been cancelled
CI / Check Rust Code Format (push) Has been cancelled
CI / Build and Test Rust Project (push) Has been cancelled
CI / Check MSRV (push) Has been cancelled
64 行
1.7 KiB
TypeScript
64 行
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);
|
|
});
|