mirror of
https://github.com/xHyroM/roles-bot.git
synced 2024-11-22 00:11:06 +01:00
feat(bot): add acknowledge to Component
This commit is contained in:
parent
ae5e39d08d
commit
3fc9624389
3 changed files with 16 additions and 9 deletions
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue