// Path: src/main/java/myessentials/economy/api/IEconManager.java
// public interface IEconManager {
// 
//     void setPlayer(UUID uuid);
// 
//     /**
//      * Add a set amount to a target's Wallet
//      */
//     void addToWallet(int amountToAdd);
// 
//     /**
//      * Get the amount of money the player has
//      */
//     int getWallet();
// 
//     /**
//      * Remove a set amount from a target's Wallet
//      * returns true if it succeded, false if it didn't
//      */
//     boolean removeFromWallet(int amountToSubtract);
// 
//     /**
//      * Set the target's Wallet to the specified amount
//      */
//     void setWallet(int setAmount, EntityPlayer player);
// 
//     /**
//      * Gets the singular or plural term of the currency used
//      */
//     String currency(int amount);
// 
//     /**
//      * Gets a combo of getWallet + currency
//      */
//     String getMoneyString();
//     
//     /**
//      * Saves all wallets to disk
//      * (for users still on the server when it's stopping)
//      */
//     void save();
// 
//     Map<String, Integer> getItemTables();
// }


import myessentials.economy.api.IEconManager;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.plugin.RegisteredServiceProvider;
package myessentials.economy.core.vault;


/**
 * Everything related to Bukkit, putting this in a separate class since it will crash if server doesn't have bukkit.
 */
public class BukkitCompat {

    private BukkitCompat() {

    }

    public static Class<? extends IEconManager> initEconomy() {
        Server server = Bukkit.getServer();

        RegisteredServiceProvider<Economy> economyProvider = server.getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
        if (economyProvider != null) {
            VaultEconomy.econ = economyProvider.getProvider();
            if (VaultEconomy.econ != null && VaultEconomy.econ.isEnabled()) {
                return VaultEconomy.class;
                //return (Class<IEconManager>) ((Class<?>) VaultEconomy.class);
            }
        }
// Path: src/main/java/myessentials/economy/api/IEconManager.java
// public interface IEconManager {
// 
//     void setPlayer(UUID uuid);
// 
//     /**
//      * Add a set amount to a target's Wallet
//      */
//     void addToWallet(int amountToAdd);
// 
//     /**
//      * Get the amount of money the player has
//      */
//     int getWallet();
// 
//     /**
//      * Remove a set amount from a target's Wallet
//      * returns true if it succeded, false if it didn't
//      */
//     boolean removeFromWallet(int amountToSubtract);
// 
//     /**
//      * Set the target's Wallet to the specified amount
//      */
//     void setWallet(int setAmount, EntityPlayer player);
// 
//     /**
//      * Gets the singular or plural term of the currency used
//      */
//     String currency(int amount);
// 
//     /**
//      * Gets a combo of getWallet + currency
//      */
//     String getMoneyString();
//     
//     /**
//      * Saves all wallets to disk
//      * (for users still on the server when it's stopping)
//      */
//     void save();
// 
//     Map<String, Integer> getItemTables();
// }


// Path: src/main/java/myessentials/economy/core/vault/BukkitCompat.java
import myessentials.economy.api.IEconManager;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.plugin.RegisteredServiceProvider;

package myessentials.economy.core.vault;


/**
 * Everything related to Bukkit, putting this in a separate class since it will crash if server doesn't have bukkit.
 */
public class BukkitCompat {

    private BukkitCompat() {

    }

    public static Class<? extends IEconManager> initEconomy() {
        Server server = Bukkit.getServer();

        RegisteredServiceProvider<Economy> economyProvider = server.getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
        if (economyProvider != null) {
            VaultEconomy.econ = economyProvider.getProvider();
            if (VaultEconomy.econ != null && VaultEconomy.econ.isEnabled()) {
                return VaultEconomy.class;
                //return (Class<IEconManager>) ((Class<?>) VaultEconomy.class);
            }
        }
        return null;