- Install `Jimp` package so we can manipulate images - Update the `ImageHelper` class to accept the user id so we can check if a user has claimed the card - Update the `/series view` command to pass the user id into the ImageHelper #279 Reviewed-on: #297 Reviewed-by: VylpesTester <tester@vylpes.com> Co-authored-by: Ethan Lane <ethan@vylpes.com> Co-committed-by: Ethan Lane <ethan@vylpes.com>
48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { ButtonInteraction } from "discord.js";
|
|
import { ButtonEvent } from "../type/buttonEvent";
|
|
import AppLogger from "../client/appLogger";
|
|
import SeriesHelper from "../helpers/SeriesHelper";
|
|
|
|
export default class Series extends ButtonEvent {
|
|
public override async execute(interaction: ButtonInteraction) {
|
|
const subaction = interaction.customId.split(" ")[1];
|
|
|
|
switch(subaction) {
|
|
case "view":
|
|
await this.ViewSeries(interaction);
|
|
break;
|
|
case "list":
|
|
await this.ListSeries(interaction);
|
|
break;
|
|
default:
|
|
AppLogger.LogWarn("Commands/Series", `Subaction doesn't exist: ${subaction}`);
|
|
interaction.reply("Subaction doesn't exist.");
|
|
}
|
|
}
|
|
|
|
private async ViewSeries(interaction: ButtonInteraction) {
|
|
const seriesid = interaction.customId.split(" ")[2];
|
|
const page = interaction.customId.split(" ")[3];
|
|
|
|
await interaction.deferUpdate();
|
|
|
|
const embed = await SeriesHelper.GenerateSeriesViewPage(Number(seriesid), Number(page), interaction.user.id);
|
|
|
|
await interaction.editReply({
|
|
embeds: [ embed!.embed ],
|
|
components: [ embed!.row ],
|
|
files: [ embed!.image ],
|
|
});
|
|
}
|
|
|
|
private async ListSeries(interaction: ButtonInteraction) {
|
|
const page = interaction.customId.split(" ")[2];
|
|
|
|
const embed = SeriesHelper.GenerateSeriesListPage(Number(page));
|
|
|
|
await interaction.update({
|
|
embeds: [ embed!.embed ],
|
|
components: [ embed!.row ],
|
|
});
|
|
}
|
|
}
|