diff options
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java')
| -rw-r--r-- | src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java b/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java index cb4892e..5f624a0 100644 --- a/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java +++ b/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java @@ -3,6 +3,11 @@ package net.uomc.mineshaft.crafting; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.function.BiFunction; +import java.util.function.Function; + +import net.dv8tion.jda.api.entities.Member; +import net.uomc.mineshaft.Mineshaft; import net.uomc.mineshaft.MineshaftItem; public class CraftingRecipe { @@ -11,6 +16,7 @@ public class CraftingRecipe { Map<MineshaftItem, Long> ingredients; String buyMessage; + Function<Member, Boolean> unlockCondition; private CraftingRecipe(MineshaftItem item, long quantity, Map<MineshaftItem, Long> ingredients) { this.item = item; @@ -41,13 +47,28 @@ public class CraftingRecipe { } public String getBuyMessage() { + if (buyMessage == null) + return ""; return buyMessage; } + public boolean isUnlocked(Member m) { + if (unlockCondition == null) + return true; + + return unlockCondition.apply(m); + } + public CraftingRecipe setBuyMessage(String message) { buyMessage = message; return this; } + + public CraftingRecipe setUnlockCondition(Function<Member, Boolean> function) { + this.unlockCondition = function; + return this; + } + public Map<MineshaftItem, Long> getMissingIngredients(Map<MineshaftItem, Long> items) { return getMissingIngredients(items, 1); } |
