Skip to content

Commit

Permalink
feat: fromCallback.ts (#109)
Browse files Browse the repository at this point in the history
  • Loading branch information
jacoobes authored Jan 4, 2024
1 parent 6620e94 commit 6d018ea
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions plugins/fromCallback.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//@ts-nocheck
/**
* @plugin
* fromCallback turns a callback into a plugin result.
* if the callback returns truthy value, plugin continues.
* This control plugin works for every command type. The arguments of the callback
* mirror the execute method on the current module.
* @author @jacoobes [<@182326315813306368>]
* @version 1.0.0
* @example
* ```ts
* const myServer = "941002690211766332";
* export default commandModule({
* type: CommandType.Both,
* plugins: [
* //This plugin prevents this command module from executing in other servers except myServer
* fromCallback((ctx, args) => ctx.guildId == myServer)
* ],
* execute: ctx => {
* ctx.reply("I only respond in myServer!");
* }
* })
* ```
* @end
*/


import { PluginType, makePlugin, controller } from "@sern/handler";

export const fromCallback = (cb: (...args: any[]) => boolean) =>
makePlugin(PluginType.Control, (...args) => {
//console.log(args)
if(cb.apply(null, args)) {
return controller.next();
}
return controller.stop();
});

0 comments on commit 6d018ea

Please sign in to comment.