This is an example plugin for Fuse. It demonstrates how to create a simple plugin for Fuse.
Metadata file are used to provide information about the plugin. It is a TOML file with the following fields:
| Field | Type | Description | Required |
|---|---|---|---|
| name | String | The name of the plugin. | ✔ |
| version | String | The version of the plugin. | ✔ |
| main | String | The main class of the plugin. | ✔ |
| description | String | A brief description of the plugin. | ❌ |
| authors | Array of String | The authors of the plugin. | ❌ |
| dependencies | Array of String | The dependencies of the plugin. | ❌ |
| soft_dependencies | Array of String | The soft dependencies of the plugin. | ❌ |
| website | String | The website of the plugin. | ❌ |
The example plugin is a simple plugin that prints "Hello, world!" when the server starts.
package com.example.plugin;
import fuse.plugins.Plugin;
public class ExamplePlugin extends Plugin {
@Override
public void enable() {
System.out.println("Hello, world!");
}
}You can register events using the registerEvent method. The following example registers a PlayerJoinEvent:
package com.example.plugin;
import fuse.events.player.PlayerJoinEvent;
import fuse.plugins.Plugin;
public class ExamplePlugin extends Plugin {
@Override
public void enable() {
this.getEventListener().on(PlayerJoinEvent.class, event -> {
System.out.println(event.getPlayer().getUsername() + " joined the server!");
});
}
}You can register commands using the registerCommand method. The following example registers a simple command:
package com.example.plugin;
import dev.rollczi.litecommands.annotations.command.Command;
import dev.rollczi.litecommands.annotations.context.Context;
import dev.rollczi.litecommands.annotations.execute.Execute;
import fuse.plugins.Plugin;
@Command(name = "hello")
class HelloCommand {
@Execute
public void execute(@Context Player player) {
player.sendMessage("Hello, world!");
}
}
public class ExamplePlugin extends Plugin {
@Override
public void enable() {
this.registerCommand(new HelloCommand());
}
}