001package com.ericlam.mc.eld;
002
003import org.bukkit.plugin.java.JavaPlugin;
004
005/**
006 * 用於主類繼承
007 */
008public abstract class ELDBukkitPlugin extends JavaPlugin implements ELDPlugin {
009
010    @Override
011    public final void onLoad() {
012        final var provider = ELDependenci.getApi().register(this, this::bindServices);
013        this.manageProvider((BukkitManagerProvider) provider);
014    }
015
016    @Override
017    public final void onEnable() {
018        getLogger().info("Enabling plugin " + this.getName());
019        getLogger().info("This plugin is hooking the lifecycle of ELDependenci framework.");
020    }
021
022    @Override
023    public final void onDisable() {
024        getLogger().info("Disabling plugin " + this.getName());
025    }
026
027    /**
028     * 用於生命週期之前的操作
029     *
030     * @param provider 管理器提供
031     */
032    protected abstract void manageProvider(BukkitManagerProvider provider);
033
034    @Override
035    public void saveResource(String path) {
036        super.saveResource(path, true);
037    }
038}