Compare commits

..

No commits in common. "ce0bc15c029d9b37138a60cae4b2fe9db9f4e719" and "d9d0243c3c3e31e465434ff9663c8f6dd739b47e" have entirely different histories.

8 changed files with 45 additions and 61 deletions

View file

@ -7,7 +7,7 @@
# any secret values. # any secret values.
BOT_TOKEN= BOT_TOKEN=
BOT_VER=0.8.3 BOT_VER=0.8.2
BOT_AUTHOR=Vylpes BOT_AUTHOR=Vylpes
BOT_OWNERID=147392775707426816 BOT_OWNERID=147392775707426816
BOT_CLIENTID=682942374040961060 BOT_CLIENTID=682942374040961060

View file

@ -1,6 +1,6 @@
{ {
"name": "card-drop", "name": "card-drop",
"version": "0.8.3", "version": "0.8.2",
"main": "./dist/bot.js", "main": "./dist/bot.js",
"typings": "./dist", "typings": "./dist",
"scripts": { "scripts": {

View file

@ -51,18 +51,11 @@ export default class Reroll extends ButtonEvent {
try { try {
AppLogger.LogVerbose("Button/Reroll", `Sending next drop: ${randomCard.card.id} (${randomCard.card.name})`); AppLogger.LogVerbose("Button/Reroll", `Sending next drop: ${randomCard.card.id} (${randomCard.card.name})`);
const files = [];
let imageFileName = "";
if (!(randomCard.card.path.startsWith("http://") || randomCard.card.path.startsWith("https://"))) {
const image = readFileSync(path.join(process.env.DATA_DIR!, "cards", randomCard.card.path)); const image = readFileSync(path.join(process.env.DATA_DIR!, "cards", randomCard.card.path));
imageFileName = randomCard.card.path.split("/").pop()!; const imageFileName = randomCard.card.path.split("/").pop()!;
const attachment = new AttachmentBuilder(image, { name: imageFileName }); const attachment = new AttachmentBuilder(image, { name: imageFileName });
files.push(attachment);
}
const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, randomCard.card.id); const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, randomCard.card.id);
const quantityClaimed = inventory ? inventory.Quantity : 0; const quantityClaimed = inventory ? inventory.Quantity : 0;
@ -74,7 +67,7 @@ export default class Reroll extends ButtonEvent {
await interaction.editReply({ await interaction.editReply({
embeds: [ embed ], embeds: [ embed ],
files: files, files: [ attachment ],
components: [ row ], components: [ row ],
}); });

View file

@ -59,18 +59,11 @@ export default class Drop extends Command {
await interaction.deferReply(); await interaction.deferReply();
try { try {
const files = [];
let imageFileName = "";
if (!(randomCard.card.path.startsWith("http://") || randomCard.card.path.startsWith("https://"))) {
const image = readFileSync(path.join(process.env.DATA_DIR!, "cards", randomCard.card.path)); const image = readFileSync(path.join(process.env.DATA_DIR!, "cards", randomCard.card.path));
imageFileName = randomCard.card.path.split("/").pop()!; const imageFileName = randomCard.card.path.split("/").pop()!;
const attachment = new AttachmentBuilder(image, { name: imageFileName }); const attachment = new AttachmentBuilder(image, { name: imageFileName });
files.push(attachment);
}
const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, randomCard.card.id); const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, randomCard.card.id);
const quantityClaimed = inventory ? inventory.Quantity : 0; const quantityClaimed = inventory ? inventory.Quantity : 0;
@ -82,7 +75,7 @@ export default class Drop extends Command {
await interaction.editReply({ await interaction.editReply({
embeds: [ embed ], embeds: [ embed ],
files: files, files: [ attachment ],
components: [ row ], components: [ row ],
}); });

View file

@ -43,20 +43,20 @@ export default class Dropnumber extends Command {
const series = CoreClient.Cards const series = CoreClient.Cards
.find(x => x.cards.includes(card))!; .find(x => x.cards.includes(card))!;
const files = []; let image: Buffer;
let imageFileName = ""; const imageFileName = card.path.split("/").pop()!;
if (!(card.path.startsWith("http://") || card.path.startsWith("https://"))) { try {
const image = readFileSync(path.join(process.env.DATA_DIR!, "cards", card.path)); image = readFileSync(path.join(process.env.DATA_DIR!, "cards", card.path));
imageFileName = card.path.split("/").pop()!; } catch {
await interaction.reply(`Unable to fetch image for card ${card.id}`);
const attachment = new AttachmentBuilder(image, { name: imageFileName }); return;
files.push(attachment);
} }
await interaction.deferReply(); await interaction.deferReply();
const attachment = new AttachmentBuilder(image, { name: imageFileName });
const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, card.id); const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, card.id);
const quantityClaimed = inventory ? inventory.Quantity : 0; const quantityClaimed = inventory ? inventory.Quantity : 0;
@ -69,7 +69,7 @@ export default class Dropnumber extends Command {
try { try {
await interaction.editReply({ await interaction.editReply({
embeds: [ embed ], embeds: [ embed ],
files: files, files: [ attachment ],
components: [ row ], components: [ row ],
}); });
} catch (e) { } catch (e) {

View file

@ -46,18 +46,20 @@ export default class Droprarity extends Command {
return; return;
} }
const files = []; let image: Buffer;
let imageFileName = ""; const imageFileName = card.card.path.split("/").pop()!;
if (!(card.card.path.startsWith("http://") || card.card.path.startsWith("https://"))) { try {
const image = readFileSync(path.join(process.env.DATA_DIR!, "cards", card.card.path)); image = readFileSync(path.join(process.env.DATA_DIR!, "cards", card.card.path));
imageFileName = card.card.path.split("/").pop()!; } catch {
await interaction.reply(`Unable to fetch image for card ${card.card.id}`);
return;
}
await interaction.deferReply();
const attachment = new AttachmentBuilder(image, { name: imageFileName }); const attachment = new AttachmentBuilder(image, { name: imageFileName });
files.push(attachment);
}
const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, card.card.id); const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, card.card.id);
const quantityClaimed = inventory ? inventory.Quantity : 0; const quantityClaimed = inventory ? inventory.Quantity : 0;
@ -70,7 +72,7 @@ export default class Droprarity extends Command {
try { try {
await interaction.editReply({ await interaction.editReply({
embeds: [ embed ], embeds: [ embed ],
files: files, files: [ attachment ],
components: [ row ], components: [ row ],
}); });
} catch (e) { } catch (e) {

View file

@ -43,20 +43,22 @@ export default class View extends Command {
const series = CoreClient.Cards const series = CoreClient.Cards
.find(x => x.cards.includes(card))!; .find(x => x.cards.includes(card))!;
const files = []; let image: Buffer;
let imageFileName = ""; const imageFileName = card.path.split("/").pop()!;
if (!(card.path.startsWith("http://") || card.path.startsWith("https://"))) { try {
const image = readFileSync(path.join(process.env.DATA_DIR!, "cards", card.path)); image = readFileSync(path.join(process.env.DATA_DIR!, "cards", card.path));
imageFileName = card.path.split("/").pop()!; } catch {
AppLogger.LogError("Commands/View", `Unable to fetch image for card ${card.id}.`);
const attachment = new AttachmentBuilder(image, { name: imageFileName }); await interaction.reply(`Unable to fetch image for card ${card.id}.`);
return;
files.push(attachment);
} }
await interaction.deferReply(); await interaction.deferReply();
const attachment = new AttachmentBuilder(image, { name: imageFileName });
const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, card.id); const inventory = await Inventory.FetchOneByCardNumberAndUserId(interaction.user.id, card.id);
const quantityClaimed = inventory ? inventory.Quantity : 0; const quantityClaimed = inventory ? inventory.Quantity : 0;
@ -65,7 +67,7 @@ export default class View extends Command {
try { try {
await interaction.editReply({ await interaction.editReply({
embeds: [ embed ], embeds: [ embed ],
files: files, files: [ attachment ],
}); });
} catch (e) { } catch (e) {
AppLogger.LogError("Commands/View", `Error sending view for card ${card.id}: ${e}`); AppLogger.LogError("Commands/View", `Error sending view for card ${card.id}: ${e}`);

View file

@ -97,18 +97,12 @@ export default class CardDropHelperMetadata {
AppLogger.LogWarn("CardDropHelperMetadata/GenerateDropEmbed", `Card's colour override is invalid: ${drop.card.id}, ${drop.card.colour}`); AppLogger.LogWarn("CardDropHelperMetadata/GenerateDropEmbed", `Card's colour override is invalid: ${drop.card.id}, ${drop.card.colour}`);
} }
let imageUrl = `attachment://${imageFileName}`;
if (drop.card.path.startsWith("http://") || drop.card.path.startsWith("https://")) {
imageUrl = drop.card.path;
}
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(drop.card.name) .setTitle(drop.card.name)
.setDescription(description) .setDescription(description)
.setFooter({ text: `${CardRarityToString(drop.card.type)} · ${drop.card.id}` }) .setFooter({ text: `${CardRarityToString(drop.card.type)} · ${drop.card.id}` })
.setColor(colour) .setColor(colour)
.setImage(imageUrl) .setImage(`attachment://${imageFileName}`)
.addFields([ .addFields([
{ {
name: "Claimed", name: "Claimed",