From dc825ad776f9fe9f763267874f6fa70c4870fc46 Mon Sep 17 00:00:00 2001 From: davidovski Date: Wed, 15 Oct 2025 04:01:15 +0100 Subject: v5 --- .../net/uomc/mineshaft/crafting/CraftingRecipe.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java') 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 ingredients; String buyMessage; + Function unlockCondition; private CraftingRecipe(MineshaftItem item, long quantity, Map 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 function) { + this.unlockCondition = function; + return this; + } + public Map getMissingIngredients(Map items) { return getMissingIngredients(items, 1); } -- cgit v1.2.3