Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const {
- ActionRowBuilder,
- ButtonBuilder,
- ButtonStyle,
- ComponentType,
- EmbedBuilder,
- PermissionsBitField,
- SlashCommandBuilder,
- } = require('discord.js');
- const mConfig = require('../../utils/messageConfig.json');
- const eConfig = require('../../utils/emoji.json');
- const leader = require('../../Schemas/leaderSchema');
- module.exports = {
- data: new SlashCommandBuilder()
- .setName('lb')
- .setDescription('TGR Leaderboard')
- .setDMPermission(false)
- .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageChannels)
- .addSubcommand(command => command
- .setName('add')
- .setDescription('Add an Entry to the Leaderboard Database')
- .addUserOption(option => option
- .setName('setter')
- .setDescription('The Setter for This BG Session')
- .setRequired(true)
- )
- .addNumberOption(option => option
- .setName('relics')
- .setDescription('The Amount of Relics Received')
- .setRequired(true)
- )
- .addStringOption(option => option
- .setName('hero')
- .setDescription('The Hero the Relics were For')
- .setRequired(true)
- .addChoices(
- { name: 'mance', value: `${eConfig.Mance} MANCE ${eConfig.Mance}` },
- { name: 'rattle', value: `${eConfig.Rattle} RATTLE ${eConfig.Rattle}` }
- )
- )
- .addStringOption(option => option
- .setName('fillers')
- .setDescription('The Fillers for This Session')
- .setRequired(true)
- )
- )
- .addSubcommand(command => command
- .setName('check')
- .setDescription('Check the Current Leaderboard Submissions')
- )
- .addSubcommand(command => command
- .setName('remove')
- .setDescription('Remove a Leaderboard Submission')
- .addStringOption(option => option
- .setName('id')
- .setDescription('The ID of the Submission. Use /lb check to Get the ID.')
- .setRequired(true)
- )
- ),
- async execute(interaction) {
- await interaction.deferReply({ ephemeral: true });
- const { options } = interaction;
- if (!interaction.member.permissions.has(
- PermissionsBitField.Flags.ManageChannels)
- )
- return await interaction.reply({
- content: `Sorry You Do Not Have Permission for This Command`,
- ephemeral: true,
- });
- const sub = options.getSubcommand();
- let data;
- //const data = await leader.findOne({ Setter: interaction.guild.id });
- switch (sub) {
- case 'add':
- const setter = options.getUser('setter');
- const relics = options.getNumber('relics');
- const hero = options.getString('hero');
- const fillers = options.getString('fillers');
- await leader.create({
- Guild: interaction.guild.id,
- Hero: hero,
- Setter: setter.id,
- Relics: relics,
- Fillers: fillers,
- });
- await interaction.editReply('New Submission Entered');
- break;
- case 'check':
- data = await leader.find({Guild: interaction.guild.id});
- var string = ``;
- await data.forEach(async (value) => {
- string += `\n\n> ID: \`${value._id}\`\n> Hero: \`${value.Hero}\`\n> Setter: \`${value.Setter}\`\n> Relics: \`${value.Relics}\`\n> Fillers: \`${value.Fillers}\` \n`;
- });
- if (string.length == 0)
- string = 'Looks Like Nothing Has Been Submitted Yet';
- await interaction.editReply('Submission Embed Sent.');
- const embed = new EmbedBuilder()
- .setColor(`${mConfig.PeachEmbed}`)
- .setTitle('BG Leaderboard Submissions')
- .setDescription(string);
- await interaction.followUp({
- embeds: [embed],
- ephemeral: true,
- });
- break;
- case 'remove':
- const lbId = options.getString('id');
- data = await leader.findOne({
- Guild: interaction.guild.id,
- _id: lbId,
- });
- if (!data) {
- await interaction.editReply('This ID is Not in the Database. Please Double Check You Typed it Correctly.');
- } else {
- await leader.deleteOne({
- Guild: interaction.guild.id,
- _id: lbId,
- });
- await interaction.editReply('Successfully Deleted Submission');
- };
- }
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment