Added some Documentation for Mobot: Introduction, Installation, Getting Started on Custom modules, Lifecycle Methods and SlashCommands

This commit is contained in:
sieadev
2025-04-21 16:22:40 +02:00
parent 6c929163f8
commit 300afed700
13 changed files with 417 additions and 5 deletions
+59
View File
@@ -0,0 +1,59 @@
---
banner_title: "MoBot - Creating a Command"
banner_description: "Learn how to create custom commands for MoBot"
---
# 🛠️ Creating a Command
Commands are a core feature of Discord Bots. They allow users to interact with the bot and perform various actions. In MoBot, creating a command is straightforward and flexible, allowing you to define custom behavior for your bot.
## 🚀 Commands in the MoBot API
To make commands easy to use, MoBot provides a extensive API for creating and managing commands.
Apart from the `SlashCommandHandler` interface, the SlashCommand System is build entirely from annotations.
::: warning NOTE
You will have to implement the `SlashCommandHandler` interface if you want to use `@SlashCommand` and other annotations.
:::
## 📜 `@SlashCommand` Annotation
The `@SlashCommand` annotation is used to define a slash command. Apart from the name and description, you can also specify aliases and required permissions.
This annotation is placed on a method that will handle the command when it is invoked.
The method should accept a `SlashCommandInteractionEvent` parameter, which contains information about the command invocation and allows you to respond to the user.
| Option | Description |
|-----------------|------------------------------------------------------------------------------|
| `name` | The name of the command. This is what users will type to invoke the command. |
| `description` | A short description of what the command does. |
| `aliases` | An array of alternative names for the command. |
| `permissions` | The permission required to use the command. |
Heres an example of a simple `PingCommand` using the `@SlashCommand` annotation:
```java
public class PingCommand implements SlashCommandHandler {
@SlashCommand(
name = "ping",
description = "Ping the bot to check if it's alive"
)
public void onPingCommand(SlashCommandInteractionEvent event) {
event.reply("Pong!").queue();
}
}
```
## 🛠️ Registering the Command
To register the command, you need to create an instance of your command class and register it using the `#registerSlashCommandHandler` method in your module's main class.
Here's an example of how to register the `PingCommand` in your module:
```java
public class MyModule extends MbModule {
@Override
public void onEnable() {
registerSlashCommandHandler(new PingCommand());
}
}
```