Creating Plugins

Build plugins that integrate with the Blueth ecosystem using Blueth Core as a dependency.

Setting Up Blueth Core

Add Blueth Core as a dependency in your build.gradle file:

repositories {
    maven {
        name = "blueth"
        url = "https://repo.blueth.online/releases"
    }
}

dependencies {
    compileOnly("online.blueth:core:1.0.0")
}

Add Blueth Core as a dependency in your plugin.yml:

depend: [BluethCore]

Basic Plugin Structure

package com.example.myplugin;

import online.blueth.core.BluethPlugin;
import online.blueth.core.config.ConfigManager;
import online.blueth.core.util.MessageUtil;

public class MyPlugin extends BluethPlugin {

    @Override
    public void onPluginEnable() {
        ConfigManager config = getConfigManager();
        getLogger().info("MyPlugin enabled!");
    }

    @Override
    public void onPluginDisable() {
        getLogger().info("MyPlugin disabled!");
    }
}

Available Utilities from Core

ClassDescription
ConfigManagerYAML configuration with auto-reload
MessageUtilMiniMessage and legacy color formatting
GuiBuilderInventory GUI creation with click handlers
CommandFrameworkAnnotation-based command registration
ItemBuilderFluent API for creating ItemStacks
TaskSchedulerAsync and sync task scheduling
DatabaseManagerSQLite and MySQL connection pooling
CooldownManagerPer-player cooldown tracking
ScoreboardUtilScoreboard and sidebar management
PlayerDataStorePersistent per-player data storage
EventBusCustom event system for inter-plugin communication
UpdateCheckerAutomatic version checking and notifications