Update the button events to take into account the quantity field
This commit is contained in:
parent
08949d0af3
commit
ca6ccea16f
2 changed files with 20 additions and 6 deletions
|
@ -23,6 +23,7 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
private async confirm(interaction: ButtonInteraction) {
|
private async confirm(interaction: ButtonInteraction) {
|
||||||
const userId = interaction.customId.split(" ")[2];
|
const userId = interaction.customId.split(" ")[2];
|
||||||
const cardNumber = interaction.customId.split(" ")[3];
|
const cardNumber = interaction.customId.split(" ")[3];
|
||||||
|
const quantity = Number(interaction.customId.split(" ")[4]);
|
||||||
|
|
||||||
if (userId != interaction.user.id) {
|
if (userId != interaction.user.id) {
|
||||||
await interaction.reply("Only the user who created this sacrifice can confirm it.");
|
await interaction.reply("Only the user who created this sacrifice can confirm it.");
|
||||||
|
@ -31,11 +32,16 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
|
|
||||||
const cardInInventory = await Inventory.FetchOneByCardNumberAndUserId(userId, cardNumber);
|
const cardInInventory = await Inventory.FetchOneByCardNumberAndUserId(userId, cardNumber);
|
||||||
|
|
||||||
if (!cardInInventory) {
|
if (!cardInInventory || cardInInventory.Quantity == 0) {
|
||||||
await interaction.reply("Unable to find card in inventory.");
|
await interaction.reply("Unable to find card in inventory.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cardInInventory.Quantity < quantity) {
|
||||||
|
await interaction.reply("You can only sacrifice what you own.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const cardData = CardDropHelperMetadata.GetCardByCardNumber(cardNumber);
|
const cardData = CardDropHelperMetadata.GetCardByCardNumber(cardNumber);
|
||||||
|
|
||||||
if (!cardData) {
|
if (!cardData) {
|
||||||
|
@ -50,11 +56,11 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
cardInInventory.RemoveQuantity(1);
|
cardInInventory.RemoveQuantity(quantity);
|
||||||
|
|
||||||
await cardInInventory.Save(Inventory, cardInInventory);
|
await cardInInventory.Save(Inventory, cardInInventory);
|
||||||
|
|
||||||
const cardValue = GetSacrificeAmount(cardData.card.type);
|
const cardValue = GetSacrificeAmount(cardData.card.type) * quantity;
|
||||||
const cardRarityString = CardRarityToString(cardData.card.type);
|
const cardRarityString = CardRarityToString(cardData.card.type);
|
||||||
|
|
||||||
user.AddCurrency(cardValue);
|
user.AddCurrency(cardValue);
|
||||||
|
@ -66,6 +72,7 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
`Series: ${cardData.series.name}`,
|
`Series: ${cardData.series.name}`,
|
||||||
`Rarity: ${cardRarityString}`,
|
`Rarity: ${cardRarityString}`,
|
||||||
`Quantity Owned: ${cardInInventory.Quantity}`,
|
`Quantity Owned: ${cardInInventory.Quantity}`,
|
||||||
|
`Quantity To Sacrifice: ${quantity}`,
|
||||||
`Sacrifice Amount: ${cardValue}`,
|
`Sacrifice Amount: ${cardValue}`,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -98,6 +105,7 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
private async cancel(interaction: ButtonInteraction) {
|
private async cancel(interaction: ButtonInteraction) {
|
||||||
const userId = interaction.customId.split(" ")[2];
|
const userId = interaction.customId.split(" ")[2];
|
||||||
const cardNumber = interaction.customId.split(" ")[3];
|
const cardNumber = interaction.customId.split(" ")[3];
|
||||||
|
const quantity = Number(interaction.customId.split(" ")[4]);
|
||||||
|
|
||||||
if (userId != interaction.user.id) {
|
if (userId != interaction.user.id) {
|
||||||
await interaction.reply("Only the user who created this sacrifice can cancel it.");
|
await interaction.reply("Only the user who created this sacrifice can cancel it.");
|
||||||
|
@ -106,11 +114,16 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
|
|
||||||
const cardInInventory = await Inventory.FetchOneByCardNumberAndUserId(userId, cardNumber);
|
const cardInInventory = await Inventory.FetchOneByCardNumberAndUserId(userId, cardNumber);
|
||||||
|
|
||||||
if (!cardInInventory) {
|
if (!cardInInventory || cardInInventory.Quantity == 0) {
|
||||||
await interaction.reply("Unable to find card in inventory.");
|
await interaction.reply("Unable to find card in inventory.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cardInInventory.Quantity < quantity) {
|
||||||
|
await interaction.reply("You can only sacrifice what you own.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const cardData = CardDropHelperMetadata.GetCardByCardNumber(cardNumber);
|
const cardData = CardDropHelperMetadata.GetCardByCardNumber(cardNumber);
|
||||||
|
|
||||||
if (!cardData) {
|
if (!cardData) {
|
||||||
|
@ -118,7 +131,7 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const cardValue = GetSacrificeAmount(cardData.card.type);
|
const cardValue = GetSacrificeAmount(cardData.card.type) * quantity;
|
||||||
const cardRarityString = CardRarityToString(cardData.card.type);
|
const cardRarityString = CardRarityToString(cardData.card.type);
|
||||||
|
|
||||||
const description = [
|
const description = [
|
||||||
|
@ -126,6 +139,7 @@ export default class Sacrifice extends ButtonEvent {
|
||||||
`Series: ${cardData.series.name}`,
|
`Series: ${cardData.series.name}`,
|
||||||
`Rarity: ${cardRarityString}`,
|
`Rarity: ${cardRarityString}`,
|
||||||
`Quantity Owned: ${cardInInventory.Quantity}`,
|
`Quantity Owned: ${cardInInventory.Quantity}`,
|
||||||
|
`Quantity To Sacrifice: ${quantity}`,
|
||||||
`Sacrifice Amount: ${cardValue}`,
|
`Sacrifice Amount: ${cardValue}`,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ export default class Sacrifice extends Command {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const cardValue = GetSacrificeAmount(cardData.card.type);
|
const cardValue = GetSacrificeAmount(cardData.card.type) * quantity;
|
||||||
const cardRarityString = CardRarityToString(cardData.card.type);
|
const cardRarityString = CardRarityToString(cardData.card.type);
|
||||||
|
|
||||||
const description = [
|
const description = [
|
||||||
|
|
Loading…
Reference in a new issue