Compare commits

..

2 commits

8 changed files with 47 additions and 48 deletions

View file

@ -3,7 +3,7 @@ import { MessageEmbed, MessageActionRow, MessageSelectMenu } from 'discord.js';
import { exec } from 'node:child_process'; import { exec } from 'node:child_process';
import fs from 'node:fs'; import fs from 'node:fs';
import os from 'node:os'; import os from 'node:os';
import utils from '../utils/videos.js'; import utils from '../../utils/videos.js';
export default { export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()

View file

@ -5,6 +5,6 @@ export default {
.setName('ping') .setName('ping')
.setDescription('Replies with Pong!'), .setDescription('Replies with Pong!'),
async execute(interaction) { async execute(interaction) {
await interaction.reply('Pong!'); await interaction.reply(`Pong! \`${Math.round(interaction.client.ws.ping)} ms\``);
}, },
}; };

View file

@ -1,5 +1,5 @@
import { SlashCommandBuilder } from '@discordjs/builders'; import { SlashCommandBuilder } from '@discordjs/builders';
import utils from '../utils/videos.js'; import utils from '../../utils/videos.js';
import fs from 'node:fs'; import fs from 'node:fs';
import os from 'node:os'; import os from 'node:os';
import path from 'node:path'; import path from 'node:path';
@ -55,7 +55,7 @@ export default {
async function gifski(output, input) { async function gifski(output, input) {
return await new Promise((resolve, reject) => { return await new Promise((resolve, reject) => {
exec(`gifski -o ${output} ${input}`, (err, stdout, stderr) => { exec(`gifski --quality 70 -o ${output} ${input}`, (err, stdout, stderr) => {
if (err) { if (err) {
reject(stderr); reject(stderr);
} }

View file

@ -0,0 +1,6 @@
export default {
name: 'uncaughtException',
async execute(error) {
return console.error(`\x1b[31mUncaughtException: ${error}\x1b[37m`);
},
};

View file

@ -1,7 +1,6 @@
export default { export default {
name: 'unhandledRejection', name: 'unhandledRejection',
once: true,
async execute(error) { async execute(error) {
console.error('Unhandled promise rejection:', error); return console.error(`\x1b[31mUncaught Promise Rejection: ${error}\x1b[37m`);
}, },
}; };

View file

@ -11,49 +11,43 @@ const __dirname = path.dirname(__filename);
const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
// Load commands from the commands folder // Load commands
client.commands = new Collection(); client.commands = new Collection();
const commandsPath = path.join(__dirname, 'commands'); await loadCommandFromDir('fun');
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js')); await loadCommandFromDir('utility');
for (const file of commandFiles) { // Load events
loadEventFromDir('client', client);
loadEventFromDir('process', process);
client.login(token);
async function loadCommandFromDir(dir) {
const commandsPath = path.join(`${__dirname}/commands`, dir);
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const filePath = path.join(commandsPath, file); const filePath = path.join(commandsPath, file);
let command = await import(filePath); let command = await import(filePath);
command = command.default; command = command.default;
client.commands.set(command.data.name, command); client.commands.set(command.data.name, command);
}
} }
// Load client events from the events folder async function loadEventFromDir(dir, listener) {
const clientEventsPath = path.join(__dirname, 'events/client'); const eventsPath = path.join(`${__dirname}/events`, dir);
const clientEventFiles = fs.readdirSync(clientEventsPath).filter(file => file.endsWith('.js')); const eventFiles = fs.readdirSync(eventsPath).filter(file => file.endsWith('.js'));
for (const file of clientEventFiles) { for (const file of eventFiles) {
const filePath = path.join(clientEventsPath, file); const filePath = path.join(eventsPath, file);
let event = await import(filePath); let event = await import(filePath);
event = event.default; event = event.default;
if (event.once) { if (event.once) {
client.once(event.name, (...args) => event.execute(...args)); listener.once(event.name, (...args) => event.execute(...args));
} }
else { else {
client.on(event.name, (...args) => event.execute(...args)); listener.on(event.name, (...args) => event.execute(...args));
}
} }
} }
// Load process events from the events folder
const processEventsPath = path.join(__dirname, 'events/process');
const processEventFiles = fs.readdirSync(processEventsPath).filter(file => file.endsWith('.js'));
for (const file of processEventFiles) {
const filePath = path.join(processEventsPath, file);
let event = await import(filePath);
event = event.default;
if (event.once) {
process.once(event.name, (...args) => event.execute(...args));
}
else {
process.on(event.name, (...args) => event.execute(...args));
}
}
client.login(token);