import { SlashCommandBuilder } from '@discordjs/builders'; import { MessageEmbed, CommandInteraction } from 'discord.js'; import gitlog from 'gitlog'; import userScore from '../models/userScore'; import { paginateInteraction } from '../helpers/util/pagination'; export const data = new SlashCommandBuilder() .setName('about') .setDescription('Commands regarding the creation/development of the bot'); export async function execute(interaction: CommandInteraction) { await interaction.deferReply(); const client = interaction.client; const embeds: MessageEmbed[] = []; const contributorEmbed = new MessageEmbed().setTitle('Contributors') .addField('Creator', '<@745063586422063214> [ADawesomeguy#3602]', true) .addField('Contributors', '<@650525101048987649> [tEjAs#8127]\n<@426864344463048705> [tetrident#9396]', true) // Add more contributors here, first one is Abheek, second one is Tejas .setTimestamp() .setColor('#ffffff'); embeds.push(contributorEmbed); const gitRepoLocation = __dirname; const commits = gitlog({ repo: gitRepoLocation, number: 5, fields: ['hash', 'abbrevHash', 'subject', 'authorName', 'authorDateRel'], }); const changelogEmbed = new MessageEmbed() .setAuthor({ name: interaction.user.tag, iconURL: interaction.user.displayAvatarURL() }) .setTitle('Changelog') .setColor('#ffffff') .setTimestamp(); commits.forEach(commit => { changelogEmbed.addField(commit.abbrevHash, `> \`Hash:\`${commit.hash}\n> \`Subject:\`${commit.subject}\n> \`Author:\`${commit.authorName}\n> \`Date:\`${commit.authorDateRel}\n> \`Link\`: [GitHub](https://github.com/ADawesomeguy/AwesomeSciBo/commit/${commit.hash})\n`); }); embeds.push(changelogEmbed); await client.guilds.fetch(); const trainingDocuments = await userScore.countDocuments({}); const aboutBotEmbed = new MessageEmbed() .setAuthor({ name: interaction.user.tag, iconURL: interaction.user.displayAvatarURL() }) .setTitle('About AwesomeSciBo') .addField('Servers', `${client.guilds.cache.size}`, true) .addField('Training Users', `${trainingDocuments}`, true) .setTimestamp(); embeds.push(aboutBotEmbed); paginateInteraction(interaction, embeds); }