From 8c2416da31ae4bd221bcc0ef4eddd3fcce40e45f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 30 Jun 2024 23:02:19 +0000 Subject: [PATCH 1/7] Update dependency @types/node to v20.14.9 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index af257e9..102068a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -980,9 +980,9 @@ integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/node@*", "@types/node@^20.0.0": - version "20.14.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.8.tgz#45c26a2a5de26c3534a9504530ddb3b27ce031ac" - integrity sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA== + version "20.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420" + integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg== dependencies: undici-types "~5.26.4" From f888f9dd37d0171b6a28c0501447e2413a35b5dd Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 1 Jul 2024 15:09:27 +0100 Subject: [PATCH 2/7] Update dependency ts-jest to v29.1.5 (#275) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ts-jest](https://kulshekhar.github.io/ts-jest) ([source](https://github.com/kulshekhar/ts-jest)) | dependencies | patch | [`29.1.4` -> `29.1.5`](https://renovatebot.com/diffs/npm/ts-jest/29.1.4/29.1.5) | --- ### Release Notes
kulshekhar/ts-jest (ts-jest) ### [`v29.1.5`](https://github.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2915-2024-06-16) [Compare Source](https://github.com/kulshekhar/ts-jest/compare/v29.1.4...v29.1.5) ##### Bug Fixes - build(deps-dev): bump braces ([5560334](https://github.com/kulshekhar/ts-jest/commit/5560334)), ([59026b4](https://github.com/kulshekhar/ts-jest/commit/59026b4)), ([0d9e359](https://github.com/kulshekhar/ts-jest/commit/0d9e359))
--- ### Configuration ๐Ÿ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). ๐Ÿšฆ **Automerge**: Disabled by config. Please merge this manually once you are satisfied. โ™ป **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. ๐Ÿ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://git.vylpes.xyz/External/card-drop/pulls/275 Co-authored-by: Renovate Bot Co-committed-by: Renovate Bot --- yarn.lock | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index af257e9..387c4ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -979,7 +979,14 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/node@*", "@types/node@^20.0.0": +"@types/node@*": + version "20.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420" + integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg== + dependencies: + undici-types "~5.26.4" + +"@types/node@^20.0.0": version "20.14.8" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.8.tgz#45c26a2a5de26c3534a9504530ddb3b27ce031ac" integrity sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA== @@ -5889,9 +5896,9 @@ ts-essentials@^10.0.0: integrity sha512-77FHNJEyysF9+1s4G6eejuA1lxw7uMchT3ZPy3CIbh7GIunffpshtM8pTe5G6N5dpOzNevqRHew859ceLWVBfw== ts-jest@^29.0.0: - version "29.1.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.4.tgz#26f8a55ce31e4d2ef7a1fd47dc7fa127e92793ef" - integrity sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q== + version "29.1.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.5.tgz#d6c0471cc78bffa2cb4664a0a6741ef36cfe8f69" + integrity sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" From edf6c99bad8878d157425bf0a1c4f8b334c785f5 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 1 Jul 2024 15:11:42 +0100 Subject: [PATCH 3/7] Update dependency minimatch to v9.0.5 (#283) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [minimatch](https://github.com/isaacs/minimatch) | dependencies | patch | [`9.0.4` -> `9.0.5`](https://renovatebot.com/diffs/npm/minimatch/9.0.4/9.0.5) | --- ### Release Notes
isaacs/minimatch (minimatch) ### [`v9.0.5`](https://github.com/isaacs/minimatch/compare/v9.0.4...v9.0.5) [Compare Source](https://github.com/isaacs/minimatch/compare/v9.0.4...v9.0.5)
--- ### Configuration ๐Ÿ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). ๐Ÿšฆ **Automerge**: Disabled by config. Please merge this manually once you are satisfied. โ™ป **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. ๐Ÿ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://git.vylpes.xyz/External/card-drop/pulls/283 Co-authored-by: Renovate Bot Co-committed-by: Renovate Bot --- package.json | 2 +- yarn.lock | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f53fe36..b424e15 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "glob": "^10.3.10", "jest": "^29.0.0", "jest-mock-extended": "^3.0.0", - "minimatch": "9.0.4", + "minimatch": "9.0.5", "mysql": "^2.18.1", "ts-jest": "^29.0.0", "typeorm": "0.3.20", diff --git a/yarn.lock b/yarn.lock index 387c4ae..c0f6eb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4376,10 +4376,10 @@ minimatch@9.0.3: dependencies: brace-expansion "^2.0.1" -minimatch@9.0.4, minimatch@^9.0.0, minimatch@^9.0.4: - version "9.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== +minimatch@9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" @@ -4390,6 +4390,13 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^9.0.0, minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" From 6a18f3494992118a4dfe8f937e7d6ea22ae148b3 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Sat, 6 Jul 2024 19:12:22 +0100 Subject: [PATCH 4/7] Update inventory command so it errors gracefully if no page is found for the user (#286) #251 Reviewed-on: https://git.vylpes.xyz/External/card-drop/pulls/286 Reviewed-by: VylpesTester Co-authored-by: Ethan Lane Co-committed-by: Ethan Lane --- src/buttonEvents/Inventory.ts | 7 ++++++- src/commands/inventory.ts | 7 ++++++- src/helpers/InventoryHelper.ts | 7 ++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/buttonEvents/Inventory.ts b/src/buttonEvents/Inventory.ts index 84d8e14..b501fdb 100644 --- a/src/buttonEvents/Inventory.ts +++ b/src/buttonEvents/Inventory.ts @@ -26,6 +26,11 @@ export default class Inventory extends ButtonEvent { const embed = await InventoryHelper.GenerateInventoryPage(member.user.username, member.user.id, Number(page)); + if (!embed) { + await interaction.followUp("No page for user found."); + return; + } + await interaction.followUp({ files: [ embed.image ], embeds: [ embed.embed ], @@ -34,7 +39,7 @@ export default class Inventory extends ButtonEvent { } catch (e) { AppLogger.LogError("Button/Inventory", `Error generating inventory page for ${member.user.username} with id ${member.user.id}: ${e}`); - await interaction.reply("No page for user found."); + await interaction.followUp("An error has occurred running this command."); } } } diff --git a/src/commands/inventory.ts b/src/commands/inventory.ts index 0b48e2d..8d2ef2c 100644 --- a/src/commands/inventory.ts +++ b/src/commands/inventory.ts @@ -39,6 +39,11 @@ export default class Inventory extends Command { const embed = await InventoryHelper.GenerateInventoryPage(user.username, user.id, pageNumber); + if (!embed) { + await interaction.followUp("No page for user found."); + return; + } + await interaction.followUp({ files: [ embed.image ], embeds: [ embed.embed ], @@ -47,7 +52,7 @@ export default class Inventory extends Command { } catch (e) { AppLogger.LogError("Commands/Inventory", e as string); - await interaction.followUp("No page for user found."); + await interaction.followUp("An error has occurred running this command."); } } } diff --git a/src/helpers/InventoryHelper.ts b/src/helpers/InventoryHelper.ts index 99724cd..0218ef8 100644 --- a/src/helpers/InventoryHelper.ts +++ b/src/helpers/InventoryHelper.ts @@ -31,13 +31,15 @@ interface ReturnedInventoryPage { export default class InventoryHelper { - public static async GenerateInventoryPage(username: string, userid: string, page: number): Promise { + public static async GenerateInventoryPage(username: string, userid: string, page: number): Promise { AppLogger.LogSilly("Helpers/InventoryHelper", `Parameters: username=${username}, userid=${userid}, page=${page}`); const cardsPerPage = 9; const inventory = await Inventory.FetchAllByUserId(userid); + if (!inventory || inventory.length == 0) return undefined; + const clientCards = cloneDeep(CoreClient.Cards); const allSeriesClaimed = clientCards @@ -88,8 +90,7 @@ export default class InventoryHelper { const currentPage = pages[page]; if (!currentPage) { - AppLogger.LogError("Helpers/InventoryHelper", "Unable to find page"); - return Promise.reject("Unable to find page"); + return undefined; } const embed = new EmbedBuilder() From 5c317be4d5eacad73cdb8f06263dca8234525f85 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Sat, 6 Jul 2024 19:14:16 +0100 Subject: [PATCH 5/7] Add how much currency the user will lose if they claim a card (#287) #252 Reviewed-on: https://git.vylpes.xyz/External/card-drop/pulls/287 Reviewed-by: VylpesTester Co-authored-by: Ethan Lane Co-committed-by: Ethan Lane --- src/helpers/CardDropHelperMetadata.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/helpers/CardDropHelperMetadata.ts b/src/helpers/CardDropHelperMetadata.ts index 26a7731..b0e03aa 100644 --- a/src/helpers/CardDropHelperMetadata.ts +++ b/src/helpers/CardDropHelperMetadata.ts @@ -4,6 +4,7 @@ import CardRarityChances from "../constants/CardRarityChances"; import { DropResult } from "../contracts/SeriesMetadata"; import { CoreClient } from "../client/client"; import AppLogger from "../client/appLogger"; +import CardConstants from "../constants/CardConstants"; export default class CardDropHelperMetadata { public static GetRandomCard(): DropResult | undefined { @@ -105,7 +106,7 @@ export default class CardDropHelperMetadata { .addComponents( new ButtonBuilder() .setCustomId(`claim ${drop.card.id} ${claimId} ${userId}`) - .setLabel("Claim") + .setLabel(`Claim (${CardConstants.ClaimCost} ๐Ÿช™)`) .setStyle(ButtonStyle.Primary) .setDisabled(disabled), new ButtonBuilder() @@ -113,4 +114,4 @@ export default class CardDropHelperMetadata { .setLabel("Reroll") .setStyle(ButtonStyle.Secondary)); } -} \ No newline at end of file +} From b06fe1187103d1649cdb522384456461008f8a14 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Sat, 6 Jul 2024 19:16:16 +0100 Subject: [PATCH 6/7] Add the amount of currency a user has to the drop command (#288) - Updated the card embed generator to use fields instead of just dumping everything in the description - Add the currency a user has to the embed as a field #253 Reviewed-on: https://git.vylpes.xyz/External/card-drop/pulls/288 Reviewed-by: VylpesTester Co-authored-by: Ethan Lane Co-committed-by: Ethan Lane --- src/buttonEvents/Claim.ts | 4 +-- src/buttonEvents/Reroll.ts | 4 +-- src/commands/drop.ts | 2 +- src/helpers/CardDropHelperMetadata.ts | 40 +++++++++++++++++++-------- 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/buttonEvents/Claim.ts b/src/buttonEvents/Claim.ts index e12c674..4d5d97a 100644 --- a/src/buttonEvents/Claim.ts +++ b/src/buttonEvents/Claim.ts @@ -76,7 +76,7 @@ export default class Claim extends ButtonEvent { const imageFileName = card.card.path.split("/").pop()!; - const embed = CardDropHelperMetadata.GenerateDropEmbed(card, inventory.Quantity, imageFileName, interaction.user.username); + const embed = CardDropHelperMetadata.GenerateDropEmbed(card, inventory.Quantity, imageFileName, interaction.user.username, user.Currency); const row = CardDropHelperMetadata.GenerateDropButtons(card, claimId, interaction.user.id, true); await interaction.editReply({ @@ -84,4 +84,4 @@ export default class Claim extends ButtonEvent { components: [ row ], }); } -} \ No newline at end of file +} diff --git a/src/buttonEvents/Reroll.ts b/src/buttonEvents/Reroll.ts index c55aedf..12578db 100644 --- a/src/buttonEvents/Reroll.ts +++ b/src/buttonEvents/Reroll.ts @@ -59,7 +59,7 @@ export default class Reroll extends ButtonEvent { const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, randomCard.card.id); const quantityClaimed = inventory ? inventory.Quantity : 0; - const embed = CardDropHelperMetadata.GenerateDropEmbed(randomCard, quantityClaimed, imageFileName); + const embed = CardDropHelperMetadata.GenerateDropEmbed(randomCard, quantityClaimed, imageFileName, undefined, user.Currency); const claimId = v4(); @@ -78,4 +78,4 @@ export default class Reroll extends ButtonEvent { await interaction.editReply(`Unable to send next drop. Please try again, and report this if it keeps happening. (${randomCard.card.id})`); } } -} \ No newline at end of file +} diff --git a/src/commands/drop.ts b/src/commands/drop.ts index dc66ad8..6f74d3a 100644 --- a/src/commands/drop.ts +++ b/src/commands/drop.ts @@ -67,7 +67,7 @@ export default class Drop extends Command { const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, randomCard.card.id); const quantityClaimed = inventory ? inventory.Quantity : 0; - const embed = CardDropHelperMetadata.GenerateDropEmbed(randomCard, quantityClaimed, imageFileName); + const embed = CardDropHelperMetadata.GenerateDropEmbed(randomCard, quantityClaimed, imageFileName, undefined, user.Currency); const claimId = v4(); diff --git a/src/helpers/CardDropHelperMetadata.ts b/src/helpers/CardDropHelperMetadata.ts index b0e03aa..8ed0087 100644 --- a/src/helpers/CardDropHelperMetadata.ts +++ b/src/helpers/CardDropHelperMetadata.ts @@ -78,25 +78,41 @@ export default class CardDropHelperMetadata { return { card, series }; } - public static GenerateDropEmbed(drop: DropResult, quantityClaimed: number, imageFileName: string, claimedBy?: string): EmbedBuilder { + public static GenerateDropEmbed(drop: DropResult, quantityClaimed: number, imageFileName: string, claimedBy?: string, currency?: number): EmbedBuilder { AppLogger.LogSilly("CardDropHelperMetadata/GenerateDropEmbed", `Parameters: drop=${drop.card.id}, quantityClaimed=${quantityClaimed}, imageFileName=${imageFileName}`); - let description = ""; - description += `Series: ${drop.series.name}\n`; - description += `Claimed: ${quantityClaimed}\n`; + const description = drop.series.name; - if (claimedBy != null) { - description += `Claimed by: ${claimedBy}\n`; - } else { - description += "Claimed by: (UNCLAIMED)\n"; - } - - return new EmbedBuilder() + const embed = new EmbedBuilder() .setTitle(drop.card.name) .setDescription(description) .setFooter({ text: `${CardRarityToString(drop.card.type)} ยท ${drop.card.id}` }) .setColor(CardRarityToColour(drop.card.type)) - .setImage(`attachment://${imageFileName}`); + .setImage(`attachment://${imageFileName}`) + .addFields([ + { + name: "Claimed", + value: `${quantityClaimed}`, + inline: true, + }, + { + name: "Claimed by", + value: claimedBy ?? "(UNCLAIMED)", + inline: true, + } + ]); + + if (currency != null) { + embed.addFields([ + { + name: "Currency", + value: `${currency}`, + inline: true, + } + ]); + } + + return embed; } public static GenerateDropButtons(drop: DropResult, claimId: string, userId: string, disabled: boolean = false): ActionRowBuilder { From 64e65943826141568c76aac6d119cb6cea6c2117 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 7 Jul 2024 23:02:27 +0000 Subject: [PATCH 7/7] Update dependency @types/node to v20.14.10 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c0f6eb3..9b11e3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -987,9 +987,9 @@ undici-types "~5.26.4" "@types/node@^20.0.0": - version "20.14.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.8.tgz#45c26a2a5de26c3534a9504530ddb3b27ce031ac" - integrity sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA== + version "20.14.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.10.tgz#a1a218290f1b6428682e3af044785e5874db469a" + integrity sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ== dependencies: undici-types "~5.26.4"