48 lines
1.9 KiB
JavaScript
48 lines
1.9 KiB
JavaScript
const { SlashCommandBuilder, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js");
|
|
const { Card, User, Character } = require("../models");
|
|
const { QUALITY, QUALITY_NAMES } = require('../config/constants');
|
|
const { UserUtils, SearchUtils } = require("../util");
|
|
|
|
const pageSize = 8;
|
|
|
|
//fetch all cards owned by the user and list them
|
|
module.exports = {
|
|
data: new SlashCommandBuilder()
|
|
.setName("badges")
|
|
.setDescription("List badges")
|
|
.addStringOption((option) =>
|
|
option
|
|
.setName("filter")
|
|
.setDescription("Name or ID")
|
|
.setRequired(false)
|
|
.setAutocomplete(false)
|
|
)
|
|
.addBooleanOption(option =>
|
|
option.setName('owned')
|
|
.setDescription('Only show owned badges')
|
|
.setRequired(false)
|
|
),
|
|
permissionLevel: 0,
|
|
async execute(interaction) {
|
|
await interaction.deferReply();
|
|
let user = await UserUtils.getUserByDiscordId(interaction.member.id);
|
|
let filter = interaction.options.getString("filter");
|
|
let badges = await SearchUtils.findBadges(filter? filter:"", options={ 'user': user});
|
|
let badgesStr = "Badges";
|
|
|
|
badges['rows'].forEach(badge => {
|
|
badgesStr += `${badge.name} \n`;
|
|
});
|
|
const embed = new EmbedBuilder()
|
|
.setTitle(`This is where badges would show up`)
|
|
.setDescription(`if it was implemented`)
|
|
.addFields(
|
|
{ name: "Placeholder:", value: `${badgesStr}` },
|
|
)
|
|
.setColor(0x00ff00)
|
|
.setFooter({ text: `Badges listed by ${interaction.member.displayName}` });
|
|
|
|
let replyPayload = { embeds: [embed], fetchReply: true }
|
|
const message = await interaction.editReply(replyPayload);
|
|
},
|
|
} |