sapphire-support
Root Question Message
import {Awaitable, InteractionHandler, InteractionHandlerTypes, Listener, Option} from "@sapphire/framework";
import {ButtonInteraction} from "discord.js";
import Context = Listener.Context;
import {prisma} from "../db/db.js";
export default class ShowTeacherInteraction extends InteractionHandler {
public constructor(ctx: Context, options: InteractionHandler.Options) {
super(ctx, {
...options,
interactionHandlerType: InteractionHandlerTypes.Button,
});
}
parse(_interaction: ButtonInteraction): Awaitable<Option<any>> {
if (!_interaction.id.startsWith("show-teacher-")) return this.none();
return this.some(_interaction.id.split('-')[2]);
}
public async run(interaction: ButtonInteraction, teacher_id: number) {
const teacher = await prisma.teacher.findUnique({
where: {
id: teacher_id
}
});
if (!teacher || teacher.guild_id != interaction.guildId) {
await interaction.reply("Teacher not found!");
return;
}
await interaction.reply({content: teacher.full_name, ephemeral: true});
}
}
Solution Message
interaction-handlers
folder instead.