项目文件夹

文件
wehub-resource-sync 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
chore: import upstream snapshot with attribution
2026-07-13 12:04:08 +08:00

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);
});