Create an admin command to give a breakdown of card stats
All checks were successful
Test / build (push) Successful in 9s
All checks were successful
Test / build (push) Successful in 9s
- Created a command for admins to see what cards have been added by type - Added this information to the logger #350
This commit is contained in:
parent
5deb6fcc14
commit
e8b20004bd
3 changed files with 70 additions and 1 deletions
51
src/commands/stats.ts
Normal file
51
src/commands/stats.ts
Normal file
|
@ -0,0 +1,51 @@
|
|||
import {CommandInteraction, EmbedBuilder, PermissionsBitField, SlashCommandBuilder} from "discord.js";
|
||||
import {Command} from "../type/command";
|
||||
import {CoreClient} from "../client/client";
|
||||
import {CardRarity} from "../constants/CardRarity";
|
||||
import EmbedColours from "../constants/EmbedColours";
|
||||
|
||||
export default class Stats extends Command {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.CommandBuilder = new SlashCommandBuilder()
|
||||
.setName("stats")
|
||||
.setDescription("Get bot stats such as card info")
|
||||
.setDefaultMemberPermissions(PermissionsBitField.Flags.Administrator);
|
||||
}
|
||||
|
||||
public override async execute(interaction: CommandInteraction) {
|
||||
const allCards = CoreClient.Cards.flatMap(x => x.cards);
|
||||
|
||||
const totalCards = allCards.length;
|
||||
const bronzeCards = allCards.filter(x => x.type == CardRarity.Bronze)
|
||||
.length;
|
||||
const silverCards = allCards.filter(x => x.type == CardRarity.Silver)
|
||||
.length;
|
||||
const goldCards = allCards.filter(x => x.type == CardRarity.Gold)
|
||||
.length;
|
||||
const mangaCards = allCards.filter(x => x.type == CardRarity.Manga)
|
||||
.length;
|
||||
const legendaryCards = allCards.filter(x => x.type == CardRarity.Legendary)
|
||||
.length;
|
||||
|
||||
const description = [
|
||||
`${totalCards} Total`,
|
||||
`${bronzeCards} Bronze`,
|
||||
`${silverCards} Silver`,
|
||||
`${goldCards} Gold`,
|
||||
`${mangaCards} Manga`,
|
||||
`${legendaryCards} Legendary`,
|
||||
].join("\n");
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle("Stats")
|
||||
.setDescription(description)
|
||||
.setColor(EmbedColours.Ok);
|
||||
|
||||
await interaction.reply({
|
||||
embeds: [ embed ],
|
||||
ephemeral: true,
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue