/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.royaldev.royalcommands;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredServiceProvider;
public class VaultHandler {
private static Permission permission = null;
private static Economy economy = null;
private static Chat chat = null;
private final RoyalCommands plugin;
public VaultHandler(RoyalCommands instance) {
this.plugin = instance;
}
private boolean setupChat() {
RegisteredServiceProvider<Chat> chatProvider = this.plugin.getServer().getServicesManager().getRegistration(net.milkbowl.vault.chat.Chat.class);
if (chatProvider != null) chat = chatProvider.getProvider();
return chat != null;
}
private boolean setupEconomy() {
RegisteredServiceProvider<Economy> economyProvider = this.plugin.getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
if (economyProvider != null) economy = economyProvider.getProvider();
return economy != null;
}
private boolean setupPermissions() {
RegisteredServiceProvider<Permission> permissionProvider = this.plugin.getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
if (permissionProvider != null) permission = permissionProvider.getProvider();
return permission != null;
}
public Chat getChat() {
if (!usingVault()) return null;
return chat;
}
public Economy getEconomy() {
if (!usingVault()) return null;
return economy;
}
public Permission getPermission() {
if (!usingVault()) return null;
return permission;
}
public void removeVault() {
permission = null;
chat = null;
economy = null;
}
public void setUpVault() {
if (!usingVault()) return;
this.setupEconomy();
this.setupChat();
this.setupPermissions();
}
public boolean usingVault() {
final Plugin p = this.plugin.getServer().getPluginManager().getPlugin("Vault");
return p != null && p.isEnabled();
}
}