feat: Introduce a comprehensive feedback system with a slash command, interactive UI, and configuration.

This commit is contained in:
syntaxbullet
2025-12-24 20:16:47 +01:00
parent cddd8cdf57
commit 42d2313933
6 changed files with 276 additions and 0 deletions

View File

@@ -51,6 +51,7 @@ export interface GameConfigType {
colorRoles: string[];
welcomeChannelId?: string;
welcomeMessage?: string;
feedbackChannelId?: string;
terminal?: {
channelId: string;
messageId: string;
@@ -119,6 +120,7 @@ const configSchema = z.object({
colorRoles: z.array(z.string()).default([]),
welcomeChannelId: z.string().optional(),
welcomeMessage: z.string().optional(),
feedbackChannelId: z.string().optional(),
terminal: z.object({
channelId: z.string(),
messageId: z.string()

View File

@@ -33,5 +33,10 @@ export const interactionRoutes: InteractionRoute[] = [
predicate: (i) => i.isButton() && i.customId === "enrollment",
handler: () => import("@/modules/user/enrollment.interaction"),
method: 'handleEnrollmentInteraction'
},
{
predicate: (i) => i.customId.startsWith("feedback_"),
handler: () => import("@/modules/feedback/feedback.interaction"),
method: 'handleFeedbackInteraction'
}
];