From 7ea009714bea8e45d9e52499b02677e7ec029c9a Mon Sep 17 00:00:00 2001 From: Pax <37164780+Pax-0@users.noreply.github.com> Date: Fri, 25 Oct 2024 06:36:49 +0400 Subject: [PATCH] misc fixes --- discord/commands/Whois.ts | 2 +- index.ts | 135 +++++++++++++++++++++----------------- 2 files changed, 74 insertions(+), 63 deletions(-) diff --git a/discord/commands/Whois.ts b/discord/commands/Whois.ts index fdf559e..21077e4 100644 --- a/discord/commands/Whois.ts +++ b/discord/commands/Whois.ts @@ -117,7 +117,7 @@ export default class Whois extends DiscordInteractionCommand { }); break; case 'offline': - embed.addFields({ name: 'Status', value: 'offline', inline: true }); + embed.addFields({ name: 'Status', value: 'Offline', inline: true }); break; case 'invisible': embed.addFields({ name: 'Status', value: 'invisible', inline: true }); diff --git a/index.ts b/index.ts index 8063e56..c5133f2 100644 --- a/index.ts +++ b/index.ts @@ -1,77 +1,88 @@ -import { Client, GatewayIntentBits, Partials, REST, Routes } from "discord.js"; -import { discordBotToken, discordClientID } from "./config.json" -import Collection from "./util/Collection"; -import DiscordInteractionCommand from "./util/DiscordInteractionCommand"; -import DiscordEvent from "./util/DiscordEvent"; -import * as DiscordInteractionCommandsIndex from "./discord/commands"; -import * as DiscordEventsIndex from "./discord/events"; -import mongoose from "mongoose"; +import { Client, GatewayIntentBits, Partials, REST, Routes } from 'discord.js'; +import { discordBotToken, discordClientID, MongoDbUrl } from './config.json'; +import Collection from './util/Collection'; +import DiscordInteractionCommand from './util/DiscordInteractionCommand'; +import DiscordEvent from './util/DiscordEvent'; +import * as DiscordInteractionCommandsIndex from './discord/commands'; +import * as DiscordEventsIndex from './discord/events'; +import mongoose from 'mongoose'; -export const DiscordInteractionCommands: Collection = new Collection(); +export const DiscordInteractionCommands: Collection = + new Collection(); export const DiscordEvents: Collection = new Collection(); // Instantiates a new Discord client const discordClient = new Client({ - intents: [ - GatewayIntentBits.DirectMessages, - GatewayIntentBits.GuildIntegrations, - GatewayIntentBits.GuildPresences, - GatewayIntentBits.GuildMessages, - GatewayIntentBits.Guilds, - GatewayIntentBits.GuildInvites, - GatewayIntentBits.GuildModeration, - ], - partials: [ Partials.GuildMember, Partials.Message, Partials.User, Partials.Channel, ], + intents: [ + GatewayIntentBits.DirectMessages, + GatewayIntentBits.GuildIntegrations, + GatewayIntentBits.GuildPresences, + GatewayIntentBits.GuildMessages, + GatewayIntentBits.Guilds, + GatewayIntentBits.GuildInvites, + GatewayIntentBits.GuildModeration, + ], + partials: [ + Partials.GuildMember, + Partials.Message, + Partials.User, + Partials.Channel, + ], }); const discordREST = new REST().setToken(discordBotToken); // const stripeClient = new Stripe(stripeToken, { typescript: true }); export async function main() { - // Connect to the databases - try { - mongoose.connection.once("open", () => { - console.info("[Info - Database] Connected to MongoDB"); - }) - // TODO: Fetch the MongoDB URI from the config file - await mongoose.connect("mongodb://localhost:27017/crra-main", {}); - } catch (error) { - console.error(`[Error - Database] Failed to connect to MongoDB: ${error}`); - process.exit(1); - } - // Load Discord interaction commands - for (const Command of Object.values(DiscordInteractionCommandsIndex)) { - const instance = new Command(); - DiscordInteractionCommands.add(instance.name, instance); - console.info(`[Info - Discord] Loaded interaction command: ${instance.name}`); - } - // Load Discord events - for (const Event of Object.values(DiscordEventsIndex)) { - const instance = new Event(discordClient); - DiscordEvents.add(instance.name, instance); - discordClient.on(instance.name, instance.execute); - console.info(`[Info - Discord] Loaded event: ${instance.name}`); - } - await discordClient.login(discordBotToken); + // Connect to the databases + try { + //@ts-ignore + mongoose.connection.once('open', () => { + console.info('[Info - Database] Connected to MongoDB'); + }); + // TODO: Fetch the MongoDB URI from the config file + await mongoose.connect(MongoDbUrl, {}); + } catch (error) { + console.error(`[Error - Database] Failed to connect to MongoDB: ${error}`); + process.exit(1); + } + // Load Discord interaction commands + for (const Command of Object.values(DiscordInteractionCommandsIndex)) { + const instance = new Command(); + DiscordInteractionCommands.add(instance.name, instance); + console.info( + `[Info - Discord] Loaded interaction command: ${instance.name}` + ); + } + // Load Discord events + for (const Event of Object.values(DiscordEventsIndex)) { + const instance = new Event(discordClient); + DiscordEvents.add(instance.name, instance); + discordClient.on(instance.name, instance.execute); + console.info(`[Info - Discord] Loaded event: ${instance.name}`); + } + await discordClient.login(discordBotToken); - try { - console.log(`Started refreshing ${DiscordInteractionCommands.size} application (/) commands.`); - const interactionCommandsData = []; - for (const command of DiscordInteractionCommands.values()) { - interactionCommandsData.push(command.builder.toJSON()); - } - - // The put method is used to fully refresh all commands in the guild with the current set - const data = await discordREST.put( - Routes.applicationCommands(discordClientID), - { body: interactionCommandsData }, - ); - - // @ts-ignore - console.log(`Successfully reloaded ${data?.length} application (/) commands.`); - } catch (error) { - // And of course, make sure you catch and log any errors! - console.error(error); + try { + console.log( + `Started refreshing ${DiscordInteractionCommands.size} application (/) commands.` + ); + const interactionCommandsData = []; + for (const command of DiscordInteractionCommands.values()) { + interactionCommandsData.push(command.builder.toJSON()); } + + // The put method is used to fully refresh all commands in the guild with the current set + const data = await discordREST.put( + Routes.applicationCommands(discordClientID), + { body: interactionCommandsData } + ); + console.log( + `Successfully reloaded ${interactionCommandsData?.length} application (/) commands.` + ); + } catch (error) { + // And of course, make sure you catch and log any errors! + console.error(error); + } } main();