Spigot Plugin

RoleMasterPlugin

Creami un plugin che crea ruolo, aggiunge e toglie permessi, aggiunge e toglie prefix e suffix

src/main/java/eu/codexe/rolemaster/RoleMasterPlugin.java
package eu.codexe.rolemaster;

import eu.codexe.rolemaster.commands.RoleCommand;
import eu.codexe.rolemaster.listeners.PlayerJoinListener;
import eu.codexe.rolemaster.managers.MessageManager;
import eu.codexe.rolemaster.managers.RoleManager;
import eu.codexe.rolemaster.storage.StorageManager;
import eu.codexe.rolemaster.storage.YamlStorage;
import eu.codexe.rolemaster.utils.ConfigManager;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Objects;

public final class RoleMasterPlugin extends JavaPlugin {

    private ConfigManager configManager;
    private MessageManager messageManager;
    private StorageManager storageManager;
    private RoleManager roleManager;

    @Override
    public void onEnable() {
        saveDefaultConfig();

        this.configManager = new ConfigManager(this);
        this.messageManager = new MessageManager(this, configManager);
        this.storageManager = new YamlStorage(this, configManager);
        this.roleManager = new RoleManager(this, configManager, messageManager, storageManager);

        storageManager.loadAll();
        roleManager.loadCache();

        registerCommands();
        registerListeners();

        getLogger().info("RoleMasterPlugin enabled.");
    }

    @Override
    public void onDisable() {
        if (roleManager != null) {
            roleManager.saveCache();
        }
        if (storageManager != null) {
            storageManager.shutdown();
        }
        getLogger().info("RoleMasterPlugin disabled.");
    }

    private void registerCommands() {
        PluginCommand command = Objects.requireNonNull(getCommand("role"), "Command 'role' missing from plugin.yml");
        RoleCommand roleCommand = new RoleCommand(this, roleManager, messageManager, configManager);
        command.setExecutor(roleCommand);
        command.setTabCompleter(roleCommand);
    }

    private void registerListeners() {
        getServer().getPluginManager().registerEvents(new PlayerJoinListener(roleManager), this);
    }