55 lines
1.2 KiB
TypeScript
55 lines
1.2 KiB
TypeScript
import {
|
|
ActivityTypes,
|
|
createBot,
|
|
enableCachePlugin,
|
|
enableCacheSweepers,
|
|
fastFileLoader,
|
|
GatewayIntents,
|
|
startBot,
|
|
} from "./deps.ts";
|
|
import { logger } from "./src/utils/logger.ts";
|
|
import { events } from "./src/events/mod.ts";
|
|
import { updateCommands } from "./src/utils/helpers.ts";
|
|
|
|
const log = logger({ name: "Main" });
|
|
|
|
log.info("Starting Bot, this might take a while...");
|
|
|
|
const paths = ["./src/events", "./src/commands"];
|
|
await fastFileLoader(paths).catch((err) => {
|
|
log.fatal(`Unable to Import ${paths}`);
|
|
log.fatal(err);
|
|
Deno.exit(1);
|
|
});
|
|
|
|
export const bot = enableCachePlugin(
|
|
createBot({
|
|
token: Deno.env.get("BOT_TOKEN") || "",
|
|
intents:
|
|
GatewayIntents.Guilds |
|
|
GatewayIntents.DirectMessages |
|
|
GatewayIntents.MessageContent |
|
|
GatewayIntents.GuildMessages,
|
|
events,
|
|
})
|
|
);
|
|
|
|
enableCacheSweepers(bot);
|
|
|
|
bot.gateway.manager.createShardOptions.makePresence = (shardId: number) => {
|
|
return {
|
|
shardId,
|
|
status: "online",
|
|
activities: [
|
|
{
|
|
name: "🫠",
|
|
type: ActivityTypes.Game,
|
|
createdAt: Date.now(),
|
|
},
|
|
],
|
|
};
|
|
};
|
|
|
|
await startBot(bot);
|
|
|
|
await updateCommands(bot);
|