A powerful and extendable Discord bot, with it's own module system :3
thevoid.cafe/projects/voidy
1import type { ResourceStep, ResourceStepContext } from "../../types/Step";
2import type { Resource, ButtonResource } from "../../types/Resource";
3
4export const buttonStep: ResourceStep = {
5 name: "button",
6
7 match(resource: Resource): boolean {
8 return resource.type === "button";
9 },
10
11 process(resource: Resource, { cache, module }: ResourceStepContext): Resource | null {
12 const btn = resource as ButtonResource;
13
14 if (!btn.id || !btn.execute) {
15 console.warn(`[ButtonStep] Skipping invalid button: missing id or execute`);
16 return null;
17 }
18
19 // Auto-prefix id with module origin
20 btn.id = `${module.id}.${btn.id}`;
21
22 cache.set("button", btn.id, btn);
23 return btn;
24 },
25};