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#"));
+ }
+}