package net.aufdemrand.denizen.utilities.depends;
import net.citizensnpcs.Citizens;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredServiceProvider;
public class Depends {
public static Citizens citizens = null;
public static Economy economy = null;
public static Permission permissions = null;
public static Chat chat = null;
public static boolean hasProgramAB = false;
public void initialize() {
hasProgramAB = checkProgramAB();
setupEconomy();
setupPermissions();
setupChat();
setupCitizens();
}
// Check if Program AB, used for reading Artificial Intelligence Markup
// Language 2.0, is included as a dependency at Denizen/lib/Ab.jar
private boolean checkProgramAB() {
try {
Class.forName("org.alicebot.ab.Bot");
}
catch (ClassNotFoundException e) {
return false;
}
return true;
}
private boolean setupEconomy() {
Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("Vault");
if (plugin == null || !plugin.isEnabled()) {
return false;
}
try {
RegisteredServiceProvider<Economy> rsp = Bukkit.getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
economy = rsp.getProvider();
}
catch (Exception e) {
}
return economy != null;
}
private boolean setupChat() {
Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("Vault");
if (plugin == null || !plugin.isEnabled()) {
return false;
}
try {
RegisteredServiceProvider<Chat> rsp = Bukkit.getServer().getServicesManager().getRegistration(Chat.class);
chat = rsp.getProvider();
}
catch (Exception e) {
}
return chat != null;
}
private boolean setupPermissions() {
Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("Vault");
if (plugin == null || !plugin.isEnabled()) {
return false;
}
try {
RegisteredServiceProvider<Permission> rsp = Bukkit.getServer().getServicesManager().getRegistration(Permission.class);
permissions = rsp.getProvider();
}
catch (Exception e) {
}
return permissions != null;
}
private boolean setupCitizens() {
Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("Citizens");
if (plugin == null || !plugin.isEnabled()) {
return false;
}
try {
citizens = (Citizens) Bukkit.getServer().getPluginManager().getPlugin("Citizens");
}
catch (Exception e) {
}
return citizens != null;
}
}