package com.alttd.playershops; import com.alttd.playershops.commands.ShopCommand; import com.alttd.playershops.config.Config; import com.alttd.playershops.config.DatabaseConfig; import com.alttd.playershops.config.MessageConfig; import com.alttd.playershops.gui.GuiIcon; import com.alttd.playershops.handler.ShopHandler; import com.alttd.playershops.listener.BlockListener; import com.alttd.playershops.listener.PlayerListener; import com.alttd.playershops.listener.ShopListener; import com.alttd.playershops.shop.ShopType; import com.alttd.playershops.storage.DatabaseManager; import lombok.Getter; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; public class PlayerShops extends JavaPlugin { @Getter private static PlayerShops instance; @Getter private Economy econ = null; @Getter private ShopHandler shopHandler; @Getter private DatabaseManager databaseManager; private ShopListener shopListener; private PlayerListener playerListener; private BlockListener blockListener; public void onEnable() { instance = this; if(!setupEconomy()) { Bukkit.getLogger().warning("Error loading Vault and economy.\n Disabling plugin"); this.setEnabled(false); return; } Bukkit.getLogger().info("Hooked into Vault economy provided by " + econ.getName()); reloadConfigs(); databaseManager = new DatabaseManager(instance); shopHandler = new ShopHandler(instance); registerListeners(); registerCommands(); } public void onDisable() { unRegisterListeners(); Bukkit.getScheduler().cancelTasks(this); databaseManager.unload(); } private boolean setupEconomy() { if (getServer().getPluginManager().getPlugin("Vault") == null) { return false; } RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Economy.class); if (rsp == null) { return false; } econ = rsp.getProvider(); return true; } public Economy getEconomy() { if(econ == null) setupEconomy(); return econ; } private void registerListeners() { shopListener = new ShopListener(this); playerListener = new PlayerListener(this); blockListener = new BlockListener(this); } private void unRegisterListeners() { shopListener.unregister(); playerListener.unregister(); blockListener.unregister(); } private void registerCommands() { getCommand("playershop").setExecutor(new ShopCommand()); } public void reloadConfigs() { Config.reload(); MessageConfig.reload(); DatabaseConfig.reload(); for (ShopType shopType : ShopType.values()) { // preload ShopType to get the configs active } for (GuiIcon guiIcon : GuiIcon.values()) { // preload to get config values generated } } }