pkgs/bot/src/discord.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import { Client, Events, GatewayIntentBits } from "discord.js";
import { parseArgs } from "util";
import rest from "./rest";
export { rest };
import registerEvents from "./handlers/events.ts";
import registerInteractions from "./handlers/interactions.ts";
import { startTicketWatcher } from "./tasks/ticketWatcher.ts";
import logger from "./utils/logging.ts";
const client = new Client({
intents: [
GatewayIntentBits.GuildMessages,
GatewayIntentBits.Guilds,
GatewayIntentBits.MessageContent,
],
});
client.on(Events.ClientReady, async (client) => {
const { values } = parseArgs({
args: Bun.argv,
options: {
ignoreCommands: {
type: "boolean",
default: false,
short: "i",
},
},
strict: true,
allowPositionals: true,
});
logger.info(`logged in as ${client.user?.tag}!`);
if (!values.ignoreCommands) {
await Promise.all([registerEvents(client), registerInteractions(client)]);
logger.info("events and interactions registered!");
console.log();
} else {
logger.warn("ignoring commands");
}
startTicketWatcher(client);
});
export default client;
|