summaryrefslogtreecommitdiff
path: root/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2025-10-15 04:01:15 +0100
committerdavidovski <david@davidovski.xyz>2025-10-15 04:01:15 +0100
commitdc825ad776f9fe9f763267874f6fa70c4870fc46 (patch)
treed8d2bcf26b180f2c1abbab4e0dc1929dd88e05ab /src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java
parent10b327e9f6441a8863227ce3e075a5a587654065 (diff)
v5
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java')
-rw-r--r--src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java21
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);
}