diff --git a/lib/Vault.jar b/lib/Vault.jar new file mode 100644 index 00000000..a215a867 Binary files /dev/null and b/lib/Vault.jar differ diff --git a/pom.xml b/pom.xml index 1f4f5874..061e1bae 100644 --- a/pom.xml +++ b/pom.xml @@ -240,6 +240,13 @@ system ${basedir}/lib/Holograms.jar + + net.milkbowl + vault + 1.7.2 + system + ${basedir}/lib/Vault.jar + com.sk89q.worldguard worldguard-bukkit diff --git a/src/main/java/net/Indyuce/mmoitems/MMOItems.java b/src/main/java/net/Indyuce/mmoitems/MMOItems.java index 76be2bf3..ae74ea46 100644 --- a/src/main/java/net/Indyuce/mmoitems/MMOItems.java +++ b/src/main/java/net/Indyuce/mmoitems/MMOItems.java @@ -5,7 +5,6 @@ import java.util.ArrayList; import java.util.List; import java.util.logging.Level; -import net.Indyuce.mmoitems.comp.mythicmobs.MythicMobsLoader; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -28,6 +27,7 @@ import net.Indyuce.mmoitems.comp.AdvancedEnchantmentsHook; import net.Indyuce.mmoitems.comp.MMOItemsMetrics; import net.Indyuce.mmoitems.comp.MMOItemsRewardTypes; import net.Indyuce.mmoitems.comp.RealDualWieldHook; +import net.Indyuce.mmoitems.comp.eco.VaultSupport; import net.Indyuce.mmoitems.comp.flags.DefaultFlags; import net.Indyuce.mmoitems.comp.flags.FlagPlugin; import net.Indyuce.mmoitems.comp.flags.ResidenceFlags; @@ -157,6 +157,11 @@ public class MMOItems extends JavaPlugin { blockManager = new BlockManager(); } + if (Bukkit.getPluginManager().getPlugin("Vault") != null) { + new VaultSupport(); + getLogger().log(Level.INFO, "Hooked onto Vault"); + } + getLogger().log(Level.INFO, "Loading crafting stations, please wait.."); stationRecipeManager.reload(); diff --git a/src/main/java/net/Indyuce/mmoitems/comp/eco/MoneyCondition.java b/src/main/java/net/Indyuce/mmoitems/comp/eco/MoneyCondition.java new file mode 100644 index 00000000..2b40c305 --- /dev/null +++ b/src/main/java/net/Indyuce/mmoitems/comp/eco/MoneyCondition.java @@ -0,0 +1,34 @@ +package net.Indyuce.mmoitems.comp.eco; + +import net.Indyuce.mmoitems.api.crafting.condition.Condition; +import net.Indyuce.mmoitems.api.player.PlayerData; +import net.milkbowl.vault.economy.Economy; +import net.mmogroup.mmolib.api.MMOLineConfig; + +public class MoneyCondition extends Condition { + private final double amount; + private final Economy economy; + + public MoneyCondition(Economy economy, MMOLineConfig config) { + super("money"); + + config.validate("amount"); + amount = config.getDouble("amount"); + this.economy = economy; + } + + @Override + public boolean isMet(PlayerData data) { + return economy.has(data.getPlayer(), amount); + } + + @Override + public String formatDisplay(String string) { + return string.replace("#money#", "" + amount); + } + + @Override + public void whenCrafting(PlayerData data) { + economy.withdrawPlayer(data.getPlayer(), amount); + } +} diff --git a/src/main/java/net/Indyuce/mmoitems/comp/eco/VaultSupport.java b/src/main/java/net/Indyuce/mmoitems/comp/eco/VaultSupport.java new file mode 100644 index 00000000..ae9883f7 --- /dev/null +++ b/src/main/java/net/Indyuce/mmoitems/comp/eco/VaultSupport.java @@ -0,0 +1,31 @@ +package net.Indyuce.mmoitems.comp.eco; + +import java.util.logging.Level; + +import org.bukkit.Bukkit; +import org.bukkit.plugin.RegisteredServiceProvider; + +import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.api.crafting.ConditionalDisplay; +import net.milkbowl.vault.economy.Economy; +import net.mmogroup.mmolib.api.util.AltChar; + +public class VaultSupport { + private final Economy economy; + + public VaultSupport() { + + RegisteredServiceProvider economyProvider = Bukkit.getServer().getServicesManager() + .getRegistration(Economy.class); + economy = economyProvider != null ? economyProvider.getProvider() : null; + + if (economy == null) { + MMOItems.plugin.getLogger().log(Level.SEVERE, "Could not load Vault"); + return; + } + + MMOItems.plugin.getCrafting().registerCondition("money", config -> new MoneyCondition(economy, config), + new ConditionalDisplay("&a" + AltChar.check + " Requires $#money#", + "&c" + AltChar.cross + " Requires $#money#")); + } +}