package com.alttd.easter; import com.alttd.easter.commands.Command; import com.alttd.easter.config.Config; import com.alttd.easter.config.Messages; import com.alttd.easter.data.DataManager; import com.alttd.easter.glow.GlowManager; import com.alttd.easter.gui.TurnInGuiManager; import com.alttd.easter.listeners.DeathListener; import com.alttd.easter.listeners.SpawnListener; import com.alttd.easter.npc.RabbitNpcManager; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; public final class Easter extends JavaPlugin { private DataManager dataManager; private RabbitNpcManager rabbitNpcManager; private GlowManager glowManager; private TurnInGuiManager turnInGuiManager; @Override public void onEnable() { reloadConfigs(); this.dataManager = new DataManager(this); this.glowManager = new GlowManager(this); this.turnInGuiManager = new TurnInGuiManager(dataManager); this.rabbitNpcManager = new RabbitNpcManager(this, turnInGuiManager, dataManager); registerCommands(); registerEvents(); registerSchedulers(); } @Override public void onDisable() { if (dataManager != null) { dataManager.save(); } } private void registerCommands() { new Command(this); } private void registerEvents() { PluginManager pluginManager = getServer().getPluginManager(); pluginManager.registerEvents(new SpawnListener(glowManager), this); pluginManager.registerEvents(new DeathListener(), this); pluginManager.registerEvents(rabbitNpcManager, this); pluginManager.registerEvents(turnInGuiManager, this); } public void reloadConfigs() { Config.reload(); Messages.reload(); if (rabbitNpcManager != null) { rabbitNpcManager.reload(); } } private void registerSchedulers() { // No schedulers required currently } }