|
|
|
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);
|
|
|
|
}
|