Basic Plugin
A basic guide to create your first disclosure plugin.
Step 1
We need a separate file for your own plugin, let's make one! say, MyPlugin.js
this should come under the directory name plugins
.
Now we import the plugin class to model our plugin from #disclosure/Plugin
import { Plugin } from '#disclosure/Plugin';
Step 2
We create our custom plugin class extended from the Plugin class and then set it as the default export.
// ..
export default class MyPlugin extends Plugin {
}
Step 3
We pass the plugin's metadata into this class so disclosure can destructure it and recognize it as a valid plugin
// ..
export default class MyPlugin extends Plugin {
constructor(client: any) {
super(client, {
metadata: {
name: 'MyPlugin',
description: 'My Awesome Plugin',
version: '1.0.0',
author: ['YourNameHere'],
},
configuration: {},
});
}
}
// ..
Step 4
All ready! Now we can use various functions available to this class, for example, the onLoad
event for slash commands.
// ..
onLoad() {
this.addCommand(
(builder) =>
builder
.setName('ping')
.setDescription('Simple Ping Command.'),
(interaction) => {
interaction.reply(`Pong!`);
},
);
}
// ..
That's it! start your bot application to try it out.
Resulting Code
import { Plugin } from '#disclosure/Plugin';
export default class MyPlugin extends Plugin {
constructor(client: any) {
super(client, {
metadata: {
name: 'MyPlugin',
description: 'My Awesome Plugin',
version: '1.0.0',
author: ['YourNameHere'],
},
configuration: {},
});
}
onLoad() {
this.addCommand(
(builder) =>
builder
.setName('ping')
.setDescription('Simple Ping Command.'),
(interaction) => {
interaction.reply(`Pong!`);
},
);
}
}
Last updated