Addons
Creating and Using Addons in TheRewards
Basic Structure of an Addon
package com.example.myserver.addons;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import xshyo.us.theAPI.commands.CommandArg;
import xshyo.us.therewards.api.Addon;
import xshyo.us.therewards.api.AddonManager;
import xshyo.us.therewards.enums.DebugLevel;
import xshyo.us.therewards.utilities.Debug;
public class WelcomeAddon extends Addon {
public WelcomeAddon() {
super("WelcomeAddon");
}
@Override
protected void onLoad(AddonManager manager) {
// Register configuration
registerAddonConfig("config");
// Register commands
registerAddonCommand(new WelcomeCommands());
// Register event listeners
registerListener(new WelcomeListener());
// Schedule a task
scheduleTask(() -> {
Debug.log("WelcomeAddon periodic task running!", DebugLevel.NORMAL);
}, 20L, 12000L); // Run after 1 second, then every 10 minutes
Debug.log("WelcomeAddon has been loaded successfully!", DebugLevel.NORMAL);
}
@Override
protected void onUnload() {
Debug.log("WelcomeAddon is being unloaded...", DebugLevel.NORMAL);
// Clean up resources, if necessary
}
@Override
protected void onConfigReload() {
Debug.log("Reloading configuration for WelcomeAddon", DebugLevel.NORMAL);
// Handle configuration reload
}
// Inner class for event handling
private class WelcomeListener implements Listener {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
String welcomeMessage = getConfig("config").getString("welcome-message");
event.getPlayer().sendMessage(welcomeMessage);
}
}
// Inner class for commands
private class WelcomeCommands extends CommandArg {
public WelcomeCommands() {
super("welcome");
}
@Override
public boolean execute(CommandSender sender, String[] args) {
if (args.length == 0) {
sender.sendMessage("Welcome to the server!");
return true;
}
if (args[0].equalsIgnoreCase("reload")) {
onConfigReload();
sender.sendMessage("Welcome addon configuration reloaded!");
return true;
}
return false;
}
}
}Setting Up addon.yml
Configuration File
Working with Player Data
Installation
Best Practices
Advanced Usage: Commands with Subcommands
Last updated