diff --git a/src/main/java/net/knarcraft/stargate/Stargate.java b/src/main/java/net/knarcraft/stargate/Stargate.java index 2ef10ed..6487083 100644 --- a/src/main/java/net/knarcraft/stargate/Stargate.java +++ b/src/main/java/net/knarcraft/stargate/Stargate.java @@ -17,6 +17,7 @@ import net.knarcraft.stargate.portal.PortalHandler; import net.knarcraft.stargate.portal.PortalOption; import net.knarcraft.stargate.thread.BlockPopulatorThread; import net.knarcraft.stargate.thread.StarGateThread; +import net.knarcraft.stargate.utility.EconomyHandler; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Server; @@ -613,9 +614,9 @@ public class Stargate extends JavaPlugin { permDebug = newConfig.getBoolean("permdebug"); // Economy EconomyHandler.economyEnabled = newConfig.getBoolean("useeconomy"); - EconomyHandler.createCost = newConfig.getInt("createcost"); - EconomyHandler.destroyCost = newConfig.getInt("destroycost"); - EconomyHandler.useCost = newConfig.getInt("usecost"); + EconomyHandler.setCreateCost(newConfig.getInt("createcost")); + EconomyHandler.setDestroyCost(newConfig.getInt("destroycost")); + EconomyHandler.setUseCost(newConfig.getInt("usecost")); EconomyHandler.toOwner = newConfig.getBoolean("toowner"); EconomyHandler.chargeFreeDestination = newConfig.getBoolean("chargefreedestination"); EconomyHandler.freeGatesGreen = newConfig.getBoolean("freegatesgreen"); diff --git a/src/main/java/net/knarcraft/stargate/listener/PluginEventListener.java b/src/main/java/net/knarcraft/stargate/listener/PluginEventListener.java index 85775c6..fbe34be 100644 --- a/src/main/java/net/knarcraft/stargate/listener/PluginEventListener.java +++ b/src/main/java/net/knarcraft/stargate/listener/PluginEventListener.java @@ -1,6 +1,6 @@ package net.knarcraft.stargate.listener; -import net.knarcraft.stargate.EconomyHandler; +import net.knarcraft.stargate.utility.EconomyHandler; import net.knarcraft.stargate.Stargate; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/net/knarcraft/stargate/portal/GateHandler.java b/src/main/java/net/knarcraft/stargate/portal/GateHandler.java index 7c94e9f..521838c 100644 --- a/src/main/java/net/knarcraft/stargate/portal/GateHandler.java +++ b/src/main/java/net/knarcraft/stargate/portal/GateHandler.java @@ -1,6 +1,6 @@ package net.knarcraft.stargate.portal; -import net.knarcraft.stargate.EconomyHandler; +import net.knarcraft.stargate.utility.EconomyHandler; import net.knarcraft.stargate.Stargate; import net.knarcraft.stargate.utility.MaterialHelper; import org.bukkit.Material; @@ -13,11 +13,15 @@ import java.util.List; import java.util.Scanner; import java.util.logging.Level; +/** + * The gate handler keeps track of all gates + */ public class GateHandler { private static final Character ANYTHING = ' '; private static final Character ENTRANCE = '.'; private static final Character EXIT = '*'; + private static final Character CONTROL_BLOCK = '-'; private static Material defaultPortalBlockOpen = Material.NETHER_PORTAL; private static Material defaultPortalBlockClosed = Material.AIR; @@ -49,10 +53,25 @@ public class GateHandler { return ENTRANCE; } + /** + * Gets the character used for defining the exit + * + * @return

The character used for defining the exit

+ */ public static Character getExitCharacter() { return EXIT; } + + /** + * Gets the character used for defining control blocks + * + * @return

The character used for defining control blocks

+ */ + public static Character getControlBlockCharacter() { + return CONTROL_BLOCK; + } + public static void registerGate(Gate gate) { gates.put(gate.getFilename(), gate); diff --git a/src/main/java/net/knarcraft/stargate/portal/GateLayout.java b/src/main/java/net/knarcraft/stargate/portal/GateLayout.java index 51a9902..9876439 100644 --- a/src/main/java/net/knarcraft/stargate/portal/GateLayout.java +++ b/src/main/java/net/knarcraft/stargate/portal/GateLayout.java @@ -182,7 +182,7 @@ public class GateLayout { List controlList, List entranceList, List borderList) { //Add control blocks - if (key.equals('-')) { + if (key.equals(GateHandler.getControlBlockCharacter())) { controlList.add(new RelativeBlockVector(rowIndex, lineIndex, 0)); } diff --git a/src/main/java/net/knarcraft/stargate/portal/Portal.java b/src/main/java/net/knarcraft/stargate/portal/Portal.java index a705168..4287748 100644 --- a/src/main/java/net/knarcraft/stargate/portal/Portal.java +++ b/src/main/java/net/knarcraft/stargate/portal/Portal.java @@ -2,7 +2,7 @@ package net.knarcraft.stargate.portal; import net.knarcraft.stargate.BlockLocation; import net.knarcraft.stargate.BloxPopulator; -import net.knarcraft.stargate.EconomyHandler; +import net.knarcraft.stargate.utility.EconomyHandler; import net.knarcraft.stargate.RelativeBlockVector; import net.knarcraft.stargate.Stargate; import net.knarcraft.stargate.event.StargateActivateEvent; diff --git a/src/main/java/net/knarcraft/stargate/EconomyHandler.java b/src/main/java/net/knarcraft/stargate/utility/EconomyHandler.java similarity index 68% rename from src/main/java/net/knarcraft/stargate/EconomyHandler.java rename to src/main/java/net/knarcraft/stargate/utility/EconomyHandler.java index 1cedc55..0a614e2 100644 --- a/src/main/java/net/knarcraft/stargate/EconomyHandler.java +++ b/src/main/java/net/knarcraft/stargate/utility/EconomyHandler.java @@ -1,5 +1,6 @@ -package net.knarcraft.stargate; +package net.knarcraft.stargate.utility; +import net.knarcraft.stargate.Stargate; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -12,18 +13,79 @@ import java.util.UUID; /** * This handler handles economy actions such as payment for using a gate */ -public class EconomyHandler { +public final class EconomyHandler { + public static boolean economyEnabled = false; public static Economy economy = null; public static Plugin vault = null; - - public static int useCost = 0; - public static int createCost = 0; - public static int destroyCost = 0; + private static int useCost = 0; + private static int createCost = 0; + private static int destroyCost = 0; public static boolean toOwner = false; public static boolean chargeFreeDestination = true; public static boolean freeGatesGreen = false; + /** + * Gets the cost of using a gate without a specified cost + * + * @return

The gate use cost

+ */ + public static int getUseCost() { + return useCost; + } + + /** + * Sets the cost of using a gate without a specified cost + * + *

The use cost cannot be negative.

+ * + * @param useCost

The gate use cost

+ */ + public static void setUseCost(int useCost) { + if (useCost < 0) { + throw new IllegalArgumentException("Using a gate cannot cost a negative amount"); + } + EconomyHandler.useCost = useCost; + } + + /** + * Gets the cost of creating a gate without a specified cost + * + * @return

The gate creation cost

+ */ + public static int getCreateCost() { + return createCost; + } + + /** + * Sets the cost of creating a gate without a specified cost + * + *

The gate create cost cannot be negative

+ * + * @param createCost

The gate creation cost

+ */ + public static void setCreateCost(int createCost) { + EconomyHandler.createCost = createCost; + } + + /** + * Gets the cost of destroying a gate without a specified cost + * + * @return

The gate destruction cost

+ */ + public static int getDestroyCost() { + return destroyCost; + } + + /** + * Sets the cost of destroying a gate without a specified cost + * + * @param destroyCost

The gate destruction cost

+ */ + public static void setDestroyCost(int destroyCost) { + EconomyHandler.destroyCost = destroyCost; + } + /** * Gets the balance (money) of the given player * @@ -51,6 +113,7 @@ public class EconomyHandler { if (!economy.has(player, amount)) { return false; } + //Take money from the user and give to the owner economy.withdrawPlayer(player, amount); economy.depositPlayer(Bukkit.getOfflinePlayer(target), amount); } diff --git a/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java b/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java index 4ca48e0..3df2b1f 100644 --- a/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java +++ b/src/main/java/net/knarcraft/stargate/utility/EconomyHelper.java @@ -1,10 +1,12 @@ package net.knarcraft.stargate.utility; -import net.knarcraft.stargate.EconomyHandler; import net.knarcraft.stargate.portal.Portal; import net.knarcraft.stargate.Stargate; import org.bukkit.entity.Player; +/** + * The economy helper class has helper functions for player payment + */ public final class EconomyHelper { private EconomyHelper() { @@ -24,7 +26,8 @@ public final class EconomyHelper { //Try to charge the player if (entrancePortal.getGate().getToOwner()) { - success = entrancePortal.getOwnerUUID() != null && Stargate.chargePlayer(player, entrancePortal.getOwnerUUID(), cost); + success = entrancePortal.getOwnerUUID() != null && Stargate.chargePlayer(player, + entrancePortal.getOwnerUUID(), cost); } else { success = Stargate.chargePlayer(player, cost); }