diff --git a/src/net/milkbowl/vault/Vault.java b/src/net/milkbowl/vault/Vault.java index 5a18b7c..5064353 100644 --- a/src/net/milkbowl/vault/Vault.java +++ b/src/net/milkbowl/vault/Vault.java @@ -59,6 +59,10 @@ public class Vault extends JavaPlugin { log.info(String.format("[%s] Enabled Version %s", getDescription().getName(), getDescription().getVersion())); } + /** + * Gets current active Economy implementation + * @return Economy class + */ public Economy getEconomy() { if (activeEconomy == null) { Iterator it = econs.values().iterator(); @@ -74,6 +78,10 @@ public class Vault extends JavaPlugin { } } + /** + * Gets current active Permission implementation + * @return Permission class + */ public Permission getPermission() { if(activePermission == null) { Iterator it = perms.values().iterator(); @@ -89,6 +97,9 @@ public class Vault extends JavaPlugin { } } + /** + * Attempts to load Economy Addons + */ private void loadEconomy() { // Try to load 3co if(packageExists(new String[] { "me.ic3d.eco.ECO" })) { @@ -136,6 +147,9 @@ public class Vault extends JavaPlugin { } } + /** + * Attempts to load Permission Addons + */ private void loadPermission() { // Try to load PermissionsEx if(packageExists(new String[] { "ru.tehkode.permissions.bukkit.PermissionsEx" })) { @@ -150,24 +164,53 @@ public class Vault extends JavaPlugin { if (packageExists(new String[] { "com.nijikokun.bukkit.Permissions.Permissions" })) { Permission nPerms = new Permission_Permissions(this); perms.put(9, nPerms); - log.info(String.format("[%s][Permission] Permissions (Phoenix) found: %s", getDescription().getName(), nPerms.isEnabled() ? "Loaded" : "Waiting")); + log.info(String.format("[%s][Permission] Permissions (Yetti) found: %s", getDescription().getName(), nPerms.isEnabled() ? "Loaded" : "Waiting")); } else { - log.info(String.format("[%s][Permission] Permissions (Phoenix) not found.", getDescription().getName())); + log.info(String.format("[%s][Permission] Permissions (Yetti) not found.", getDescription().getName())); } } + private void reload() { + econs.clear(); + activeEconomy = null; + loadEconomy(); + + perms.clear(); + activePermission = null; + loadPermission(); + } + @Override public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) { if(command.getLabel().equals("vault")) { - // do stuff! - sender.sendMessage(String.format("[%s] Vault v%s Information", getDescription().getName(), getDescription().getVersion())); - sender.sendMessage(String.format("[%s] Economy: %s", getDescription().getName(), getEconomy().getName())); - sender.sendMessage(String.format("[%s] Permission: %s", getDescription().getName(), getPermission().getName())); - return true; + if(args.length > 0) { + if(args[0].equalsIgnoreCase("info")) { + sender.sendMessage(String.format("[%s] Vault v%s Information", getDescription().getName(), getDescription().getVersion())); + sender.sendMessage(String.format("[%s] Economy: %s", getDescription().getName(), getEconomy().getName())); + sender.sendMessage(String.format("[%s] Permission: %s", getDescription().getName(), getPermission().getName())); + return true; + } else if(args[0].equalsIgnoreCase("reload")) { + reload(); + sender.sendMessage(String.format("[%s] Reloaded Addons", getDescription().getName())); + return true; + } + } } - return false; + + // Show help + sender.sendMessage("Vault Commands:"); + sender.sendMessage(" /vault info - Displays information about Vault"); + sender.sendMessage(" /vault reload - Reloads Addons"); + return true; } + /** + * Determines if all packages in a String array are within the Classpath + * This is the best way to determine if a specific plugin exists and will be loaded. + * If the plugin package isn't loaded, we shouldn't bother waiting for it! + * @param packages String Array of package names to check + * @return Success or Failure + */ private boolean packageExists(String[] packages) { try { for (String pkg : packages) { diff --git a/src/net/milkbowl/vault/economy/EconomyManager.java b/src/net/milkbowl/vault/economy/EconomyManager.java deleted file mode 100644 index 94db660..0000000 --- a/src/net/milkbowl/vault/economy/EconomyManager.java +++ /dev/null @@ -1,165 +0,0 @@ -/** - * Copyright (C) 2011 Morgan Humes - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -package net.milkbowl.vault.economy; - -import java.util.Iterator; -import java.util.TreeMap; -import java.util.logging.Logger; - -import net.milkbowl.vault.economy.plugins.Economy_3co; -import net.milkbowl.vault.economy.plugins.Economy_BOSE; -import net.milkbowl.vault.economy.plugins.Economy_Essentials; -import net.milkbowl.vault.economy.plugins.Economy_iConomy4; -import net.milkbowl.vault.economy.plugins.Economy_iConomy5; - -import org.bukkit.plugin.java.JavaPlugin; - -public class EconomyManager { - - private JavaPlugin plugin = null; - private TreeMap econs = new TreeMap(); - private Economy activeEconomy = null; - private static final Logger log = Logger.getLogger("Minecraft"); - - /** - * Constructs a new instance of EconomyManager provided an instance of a JavaPlugin - * @param plugin Your plugin (should be "this") - */ - public EconomyManager(JavaPlugin plugin) { - this.plugin = plugin; - - // Try to load 3co - if(packageExists(new String[] { "me.ic3d.eco.ECO" })) { - Economy econ = new Economy_3co(plugin); - econs.put(11, econ); - log.info(String.format("[%s][Economy] 3co found: %s", plugin.getDescription().getName(), econ.isEnabled() ? "Loaded" : "Waiting")); - } else { - log.info(String.format("[%s][Economy] 3co not found.", plugin.getDescription().getName())); - } - - // Try to load BOSEconomy - if (packageExists(new String[] { "cosine.boseconomy.BOSEconomy" })) { - Economy bose = new Economy_BOSE(plugin); - econs.put(10, bose); - log.info(String.format("[%s][Economy] BOSEconomy found: %s", plugin.getDescription().getName(), bose.isEnabled() ? "Loaded" : "Waiting")); - } else { - log.info(String.format("[%s][Economy] BOSEconomy not found.", plugin.getDescription().getName())); - } - - // Try to load Essentials Economy - if (packageExists(new String[] { "com.earth2me.essentials.api.Economy", "com.earth2me.essentials.api.NoLoanPermittedException", "com.earth2me.essentials.api.UserDoesNotExistException" })) { - Economy essentials = new Economy_Essentials(plugin); - econs.put(9, essentials); - log.info(String.format("[%s][Economy] Essentials Economy found: %s", plugin.getDescription().getName(), essentials.isEnabled() ? "Loaded" : "Waiting")); - } else { - log.info(String.format("[%s][Economy] Essentials Economy not found.", plugin.getDescription().getName())); - } - - // Try to load iConomy 4 - if (packageExists(new String[] { "com.nijiko.coelho.iConomy.iConomy", "com.nijiko.coelho.iConomy.system.Account" })) { - Economy icon4 = new Economy_iConomy4(plugin); - econs.put(8, icon4); - log.info(String.format("[%s][Economy] iConomy 4 found: ", plugin.getDescription().getName(), icon4.isEnabled() ? "Loaded" : "Waiting")); - } else { - log.info(String.format("[%s][Economy] iConomy 4 not found.", plugin.getDescription().getName())); - } - - // Try to load iConomy 5 - if (packageExists(new String[] { "com.iConomy.iConomy", "com.iConomy.system.Account", "com.iConomy.system.Holdings" })) { - Economy icon5 = new Economy_iConomy5(plugin); - econs.put(7, icon5); - log.info(String.format("[%s][Economy] iConomy 5 found: %s", plugin.getDescription().getName(), icon5.isEnabled() ? "Loaded" : "Waiting")); - } else { - log.info(String.format("[%s][Economy] iConomy 5 not found.", plugin.getDescription().getName())); - } - } - - private boolean packageExists(String[] packages) { - try { - for (String pkg : packages) { - Class.forName(pkg); - } - return true; - } catch (Exception e) { - return false; - } - } - - private Economy getEconomy() { - if (activeEconomy == null) { - Iterator it = econs.values().iterator(); - while (it.hasNext()) { - Economy e = it.next(); - if (e.isEnabled()) { - return e; - } - } - return null; - } else { - return activeEconomy; - } - } - - /** - * Accessor for Name of Economy - * @return Name of active Economy - */ - public String getName() { - return getEconomy().getName(); - } - - /** - * Formats value to human readable forms - * @param amount Value to format - * @return Human readable form of amount - */ - public String format(double amount) { - return getEconomy().format(amount); - } - - /** - * Returns current player balance - * @param playerName Player name - * @return Response containing amount (balance) and other meta data - */ - public EconomyResponse getBalance(String playerName) { - return getEconomy().getBalance(playerName); - } - - /** - * Withdraw amount from a player account - * @param playerName Player name - * @param amount Amount to withdraw - * @return Response containing amount removed, and new balance - */ - public EconomyResponse withdrawPlayer(String playerName, double amount) { - return getEconomy().withdrawPlayer(playerName, amount); - } - - /** - * Deposit amount to a player account - * @param playerName Player name - * @param amount Amount to deposit - * @return Response containing amount added, and new balance - */ - public EconomyResponse depositPlayer(String playerName, double amount) { - return getEconomy().depositPlayer(playerName, amount); - } -} \ No newline at end of file diff --git a/src/net/milkbowl/vault/permission/Permission.java b/src/net/milkbowl/vault/permission/Permission.java index fdaa151..84d3e4c 100644 --- a/src/net/milkbowl/vault/permission/Permission.java +++ b/src/net/milkbowl/vault/permission/Permission.java @@ -19,8 +19,6 @@ package net.milkbowl.vault.permission; -import java.util.logging.Logger; - import org.bukkit.entity.Player; public interface Permission { diff --git a/src/net/milkbowl/vault/permission/PermissionManager.java b/src/net/milkbowl/vault/permission/PermissionManager.java deleted file mode 100644 index d671f4a..0000000 --- a/src/net/milkbowl/vault/permission/PermissionManager.java +++ /dev/null @@ -1,191 +0,0 @@ -/** - * Copyright (C) 2011 Morgan Humes - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -package net.milkbowl.vault.permission; - -import java.util.Iterator; -import java.util.TreeMap; -import java.util.logging.Logger; - -import net.milkbowl.vault.permission.Permission; -import net.milkbowl.vault.permission.plugins.*; - -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - - -public class PermissionManager { - - private JavaPlugin plugin = null; - private TreeMap perms = new TreeMap(); - private Permission activePermission = null; - private static final Logger log = Logger.getLogger("Minecraft"); - - /** - * Constructs a new instance of PermissionManager provided an instance of a JavaPlugin - * @param plugin Your plugin (should be "this") - */ - public PermissionManager(JavaPlugin plugin) { - this.plugin = plugin; - - // Try to load PermissionsEx - if(packageExists(new String[] { "ru.tehkode.permissions.bukkit.PermissionsEx" })) { - Permission ePerms = new Permission_PermissionsEx(plugin); - perms.put(8, ePerms); - log.info(String.format("[%s][Permission] PermissionsEx found: %s", plugin.getDescription().getName(), ePerms.isEnabled() ? "Loaded" : "Waiting")); - } else { - log.info(String.format("[%s][Permission] PermissionsEx not found.", plugin.getDescription().getName())); - } - - // Try to load Permissions (Phoenix) - if (packageExists(new String[] { "com.nijikokun.bukkit.Permissions.Permissions" })) { - Permission nPerms = new Permission_Permissions(plugin); - perms.put(9, nPerms); - log.info(String.format("[%s][Permission] Permissions (Phoenix) found: %s", plugin.getDescription().getName(), nPerms.isEnabled() ? "Loaded" : "Waiting")); - } else { - log.info(String.format("[%s][Permission] Permissions (Phoenix) not found.", plugin.getDescription().getName())); - } - } - - private boolean packageExists(String[] packages) { - try { - for (String pkg : packages) { - Class.forName(pkg); - } - return true; - } catch (Exception e) { - return false; - } - } - - private Permission getPermission() { - if(activePermission == null) { - Iterator it = perms.values().iterator(); - while(it.hasNext()) { - Permission p = it.next(); - if(p.isEnabled()) { - return p; - } - } - return null; - } else { - return activePermission; - } - } - - /** - * Check if player has a permission node - * @param player Player name - * @param permission Permission node (ie: pluginname.function) - * @return Value - */ - public boolean hasPermission(Player player, String permission, boolean def) { - Permission p = getPermission(); - if(p != null) { - return p.playerHasPermission(player, permission); - } else { - if(player.isOp()) { - return true; - } else { - return def; - } - } - } - - /** - * Check if player is in a group - * @param worldName World name - * @param playerName Player name - * @param groupName Group name - * @return Value - */ - public boolean inGroup(String worldName, String playerName, String groupName) { - Permission p = getPermission(); - if(p != null) { - return p.playerInGroup(worldName, playerName, groupName); - } else { - return false; - } - } - - /** - * Get integer value from an info node - * @param world World name - * @param playerName Player name - * @param node Node name - * @return Value - */ - public int getInfoInt(String world, String playerName, String node, int defaultValue) { - Permission p = getPermission(); - if(p != null) { - return p.getPlayerInfoInteger(world, playerName, node, defaultValue); - } else { - return defaultValue; - } - } - - /** - * Get double value from an info node - * @param world World name - * @param playerName Player name - * @param node Node name - * @return Value - */ - public double getInfoBoolean(String world, String playerName, String node, double defaultValue) { - Permission p = getPermission(); - if(p != null) { - return p.getPlayerInfoDouble(world, playerName, node, defaultValue); - } else { - return defaultValue; - } - } - - /** - * Get boolean value from an info node - * @param world World name - * @param playerName Player name - * @param node Node name - * @return Value - */ - public boolean getInfoBoolean(String world, String playerName, String node, boolean defaultValue) { - Permission p = getPermission(); - if(p != null) { - return p.getPlayerInfoBoolean(world, playerName, node, defaultValue); - } else { - return defaultValue; - } - } - - /** - * Get boolean value from an info node - * @param world World name - * @param playerName Player name - * @param node Node name - * @return Value - */ - public String getInfoBoolean(String world, String playerName, String node, String defaultValue) { - Permission p = getPermission(); - if(p != null) { - return p.getPlayerInfoString(world, playerName, node, defaultValue); - } else { - return defaultValue; - } - } - -} \ No newline at end of file diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions.java b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions.java index fd8ec52..5c03cdc 100644 --- a/src/net/milkbowl/vault/permission/plugins/Permission_Permissions.java +++ b/src/net/milkbowl/vault/permission/plugins/Permission_Permissions.java @@ -40,7 +40,7 @@ import com.nijikokun.bukkit.Permissions.Permissions; public class Permission_Permissions implements Permission { private static final Logger log = Logger.getLogger("Minecraft"); - private String name = "Permissions (Phoenix)"; + private String name = "Permissions (Yetti)"; private Plugin plugin = null; private PluginManager pluginManager = null; private Permissions permission = null;