Merge branch 'rewrite' of https://github.com/xHyroM/roles-bot into rewrite

This commit is contained in:
OLIMINATOR 2023-04-08 14:18:19 +02:00
commit f25e3fdcd4
3 changed files with 16 additions and 9 deletions

View file

@ -88,6 +88,7 @@ export default {
return new Response("Unknown component", { status: 404 }); return new Response("Unknown component", { status: 404 });
try { try {
if (component.acknowledge)
return respond({ return respond({
type: InteractionResponseType.DeferredChannelMessageWithSource, type: InteractionResponseType.DeferredChannelMessageWithSource,
data: { data: {
@ -95,7 +96,10 @@ export default {
}, },
}); });
} finally { } finally {
if (component.acknowledge)
component.run(new ComponentContext(interaction, env)); component.run(new ComponentContext(interaction, env));
// rome-ignore lint/correctness/noUnsafeFinally: it works, must do better typings etc...
else return component.run(new ComponentContext(interaction, env));
} }
} }
} }

View file

@ -9,7 +9,7 @@ interface CommandOptions {
run: (interaction: CommandContext) => void; run: (interaction: CommandContext) => void;
} }
export class Command<A> { export class Command {
public name: string; public name: string;
public acknowledge: boolean; public acknowledge: boolean;
public flags: MessageFlags | undefined; public flags: MessageFlags | undefined;

View file

@ -4,17 +4,20 @@ import { ComponentContext } from "./contexts/ComponentContext";
interface ComponentOptions { interface ComponentOptions {
id: string; id: string;
acknowledge?: boolean;
flags?: MessageFlags; flags?: MessageFlags;
run: (interaction: ComponentContext) => void; run: (interaction: ComponentContext) => void;
} }
export class Component { export class Component {
public id: string; public id: string;
public acknowledge: boolean;
public flags: MessageFlags | undefined; public flags: MessageFlags | undefined;
public run: (interaction: ComponentContext) => void; public run: (interaction: ComponentContext) => void | Response;
constructor(options: ComponentOptions) { constructor(options: ComponentOptions) {
this.id = options.id; this.id = options.id;
this.acknowledge = options.acknowledge ?? true;
this.flags = options.flags; this.flags = options.flags;
this.run = options.run; this.run = options.run;