diff --git a/.dev.env b/.dev.env index a8ca023..e9d8362 100644 --- a/.dev.env +++ b/.dev.env @@ -16,6 +16,8 @@ BOT_ENV=4 ABOUT_FUNDING= ABOUT_REPO= +DROP_RARITY=-1 + DB_HOST=127.0.0.1 DB_PORT=3301 DB_NAME=carddrop diff --git a/.prod.env b/.prod.env index 97472be..a6bc823 100644 --- a/.prod.env +++ b/.prod.env @@ -16,6 +16,8 @@ BOT_ENV=1 ABOUT_FUNDING= ABOUT_REPO= +DROP_RARITY=-1 + DB_HOST=127.0.0.1 DB_PORT=3321 DB_NAME=carddrop diff --git a/.stage.env b/.stage.env index 66c4653..a2fc5a3 100644 --- a/.stage.env +++ b/.stage.env @@ -16,6 +16,8 @@ BOT_ENV=2 ABOUT_FUNDING= ABOUT_REPO= +DROP_RARITY=-1 + DB_HOST=127.0.0.1 DB_PORT=3311 DB_NAME=carddrop diff --git a/src/commands/drop.ts b/src/commands/drop.ts index c23f699..031bbe7 100644 --- a/src/commands/drop.ts +++ b/src/commands/drop.ts @@ -17,7 +17,11 @@ export default class Drop extends Command { } public override async execute(interaction: CommandInteraction) { - const randomCard = await CardDropHelper.GetRandomCard(); + let randomCard = await CardDropHelper.GetRandomCard(); + + if (process.env.DROP_RARITY && Number(process.env.DROP_RARITY) > 0) { + randomCard = await CardDropHelper.GetRandomCardByRarity(Number(process.env.DROP_RARITY)); + } const image = readFileSync(randomCard.Path); diff --git a/src/commands/stage/droprarity.ts b/src/commands/stage/droprarity.ts deleted file mode 100644 index fa11b78..0000000 --- a/src/commands/stage/droprarity.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { AttachmentBuilder, CacheType, CommandInteraction, DiscordAPIError, SlashCommandBuilder } from "discord.js"; -import { Command } from "../../type/command"; -import { CardRarity, CardRarityParse } from "../../constants/CardRarity"; -import CardDropHelper from "../../helpers/CardDropHelper"; -import { readFileSync } from "fs"; -import Inventory from "../../database/entities/app/Inventory"; -import { v4 } from "uuid"; -import { CoreClient } from "../../client/client"; - -export default class Droprarity extends Command { - constructor() { - super(); - - super.CommandBuilder = new SlashCommandBuilder() - .setName('droprarity') - .setDescription('(TEST) Summon a random card of a specific rarity') - .addStringOption(x => - x - .setName('rarity') - .setDescription('The rarity you want to summon') - .setRequired(true)); - } - - public override async execute(interaction: CommandInteraction) { - if (!interaction.isChatInputCommand()) return; - - const rarity = interaction.options.get('rarity'); - - if (!rarity || !rarity.value) { - await interaction.reply('Rarity is required'); - return; - } - - const rarityType = CardRarityParse(rarity.value.toString()); - - if (rarityType == CardRarity.Unknown) { - await interaction.reply('Invalid rarity'); - return; - } - - const card = await CardDropHelper.GetRandomCardByRarity(rarityType); - - if (!card) { - await interaction.reply('Card not found'); - return; - } - - const image = readFileSync(card.Path); - - await interaction.deferReply(); - - const attachment = new AttachmentBuilder(image, { name: card.FileName }); - - const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, card.CardNumber); - const quantityClaimed = inventory ? inventory.Quantity : 0; - - const embed = CardDropHelper.GenerateDropEmbed(card, quantityClaimed || 0); - - const claimId = v4(); - - const row = CardDropHelper.GenerateDropButtons(card, claimId, interaction.user.id); - - try { - await interaction.editReply({ - embeds: [ embed ], - files: [ attachment ], - components: [ row ], - }); - } catch (e) { - console.error(e); - - if (e instanceof DiscordAPIError) { - await interaction.editReply(`Unable to send next drop. Please try again, and report this if it keeps happening. Code: ${e.code}`); - } else { - await interaction.editReply(`Unable to send next drop. Please try again, and report this if it keeps happening. Code: UNKNOWN`); - } - } - - CoreClient.ClaimId = claimId; - } -} \ No newline at end of file diff --git a/src/constants/CardRarity.ts b/src/constants/CardRarity.ts index 629130a..b4a1f9b 100644 --- a/src/constants/CardRarity.ts +++ b/src/constants/CardRarity.ts @@ -41,21 +41,4 @@ export function CardRarityToColour(rarity: CardRarity): number { case CardRarity.Manga: return EmbedColours.MangaCard; } -} - -export function CardRarityParse(rarity: string): CardRarity { - switch (rarity.toLowerCase()) { - case "bronze": - return CardRarity.Bronze; - case "silver": - return CardRarity.Silver; - case "gold": - return CardRarity.Gold; - case "legendary": - return CardRarity.Legendary; - case "manga": - return CardRarity.Manga; - default: - return CardRarity.Unknown; - } } \ No newline at end of file diff --git a/src/registry.ts b/src/registry.ts index 05a5485..9685c5d 100644 --- a/src/registry.ts +++ b/src/registry.ts @@ -6,7 +6,6 @@ import Drop from "./commands/drop"; // Test Command Imports import Dropnumber from "./commands/stage/dropnumber"; -import Droprarity from "./commands/stage/droprarity"; // Button Event Imports import Claim from "./buttonEvents/Claim"; @@ -21,7 +20,6 @@ export default class Registry { // Test Commands CoreClient.RegisterCommand('dropnumber', new Dropnumber(), Environment.Test); - CoreClient.RegisterCommand('droprarity', new Droprarity(), Environment.Test); } public static RegisterEvents() {