You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.8 KiB
78 lines
2.8 KiB
const { SlashCommandBuilder } = require('@discordjs/builders');
|
|
const { MessageEmbed } = require('discord.js');
|
|
|
|
const gitlog = require('gitlog').default;
|
|
|
|
const userScore = require('../models/userScore');
|
|
|
|
module.exports = {
|
|
data: new SlashCommandBuilder()
|
|
.setName('about')
|
|
.setDescription('Commands regarding the creation/development of the bot')
|
|
.addSubcommand(subcommand => {
|
|
subcommand
|
|
.setName('contributors')
|
|
.setDescription('Lists contributors to the AwesomeSciBo bot');
|
|
return subcommand;
|
|
})
|
|
.addSubcommand(subcommand => {
|
|
subcommand
|
|
.setName('changelog')
|
|
.setDescription('Lists the 5 most recent changes in a "git log" type format');
|
|
return subcommand;
|
|
})
|
|
.addSubcommand(subcommand => {
|
|
subcommand
|
|
.setName('bot')
|
|
.setDescription('Lists information about AwesomeSciBo');
|
|
return subcommand;
|
|
}),
|
|
async execute(interaction) {
|
|
await interaction.deferReply();
|
|
|
|
const client = interaction.client;
|
|
const action = interaction.options.getSubcommand();
|
|
if (action === 'contributors') {
|
|
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');
|
|
|
|
interaction.followUp({ embeds: [contributorEmbed] });
|
|
}
|
|
else if (action === 'changelog') {
|
|
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`);
|
|
});
|
|
|
|
interaction.followUp({ embeds: [changelogEmbed] });
|
|
}
|
|
else if (action === 'bot') {
|
|
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();
|
|
|
|
interaction.followUp({ embeds: [aboutBotEmbed] });
|
|
}
|
|
},
|
|
};
|
|
|