diff options
| author | davidovski <david@davidovski.xyz> | 2025-10-15 04:01:15 +0100 |
|---|---|---|
| committer | davidovski <david@davidovski.xyz> | 2025-10-15 04:01:15 +0100 |
| commit | dc825ad776f9fe9f763267874f6fa70c4870fc46 (patch) | |
| tree | d8d2bcf26b180f2c1abbab4e0dc1929dd88e05ab /src/main/java/net/uomc/mineshaft/crafting/Crafting.java | |
| parent | 10b327e9f6441a8863227ce3e075a5a587654065 (diff) | |
v5
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/crafting/Crafting.java')
| -rw-r--r-- | src/main/java/net/uomc/mineshaft/crafting/Crafting.java | 68 |
1 files changed, 63 insertions, 5 deletions
diff --git a/src/main/java/net/uomc/mineshaft/crafting/Crafting.java b/src/main/java/net/uomc/mineshaft/crafting/Crafting.java index 5bbef1c..6e2f670 100644 --- a/src/main/java/net/uomc/mineshaft/crafting/Crafting.java +++ b/src/main/java/net/uomc/mineshaft/crafting/Crafting.java @@ -19,6 +19,7 @@ import net.uomc.mineshaft.resources.Resource; import net.uomc.mineshaft.Mineshaft; import net.uomc.mineshaft.MineshaftItem; import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -45,6 +46,7 @@ public class Crafting extends DetailedCommand { addRecipe( CraftingRecipe.make(MineshaftItem.BOOKSHELF) .addIngredient(MineshaftItem.BOOK, 3) + .setUnlockCondition((m) -> bot.getItem(m, MineshaftItem.BOOK) > 0) .setBuyMessage("**+1 enchanting table level**") ); @@ -53,6 +55,56 @@ public class Crafting extends DetailedCommand { .addIngredient(MineshaftItem.COAL, 800l) .setBuyMessage("Use `" + bot.getCommandController().getPrefix() + "furnace` to get free ores") ); + + addRecipe( + CraftingRecipe.make(MineshaftItem.PORTAL) + .addIngredient(MineshaftItem.OBSIDIAN, 10l) + .setUnlockCondition((m) -> bot.getItem(m, MineshaftItem.OBSIDIAN) > 0) + .setBuyMessage("You can now use your `" + bot.getCommandController().getPrefix() + "portal`") + ); + + addRecipe( + CraftingRecipe.make(MineshaftItem.WOOL) + .addIngredient(MineshaftItem.STRING, 4l) + .setUnlockCondition((m) -> bot.getItem(m, MineshaftItem.STRING) > 0) + ); + + addRecipe( + CraftingRecipe.make(MineshaftItem.BED) + .addIngredient(MineshaftItem.WOOL, 3l) + .setUnlockCondition((m) -> bot.getItem(m, MineshaftItem.STRING) > 0) + ); + + addRecipe( + CraftingRecipe.make(MineshaftItem.VILLAGER) + .addIngredient(MineshaftItem.EMERALD, 64l) + .addIngredient(MineshaftItem.BED, 1l) + .setUnlockCondition((m) -> bot.getItem(m, MineshaftItem.BED) > 0 && bot.getItem(m, MineshaftItem.EMERALD) > 0) + .setBuyMessage("You are now able to `" + bot.getCommandController().getPrefix() + "trade` with the wandering trader") + ); + + addRecipe( + CraftingRecipe.make(MineshaftItem.COMPOSTER) + .addIngredient(MineshaftItem.IRON, 14l) + .setUnlockCondition((m) -> + bot.getItem(m, MineshaftItem.FISH) > 0 + || bot.getItem(m, MineshaftItem.POTATO) > 0 + || bot.getItem(m, MineshaftItem.CARROT) > 0 + || bot.getItem(m, MineshaftItem.CANE) > 0) + .setBuyMessage("You are now able to `" + bot.getCommandController().getPrefix() + "compost` your items") + ); + + addRecipe( + CraftingRecipe.make(MineshaftItem.PAPER) + .addIngredient(MineshaftItem.CANE, 3l) + .setUnlockCondition((m) -> bot.getItem(m, MineshaftItem.CANE) > 0) + ); + + addRecipe( + CraftingRecipe.make(MineshaftItem.BOOK) + .addIngredient(MineshaftItem.PAPER, 27l) + .setUnlockCondition((m) -> bot.getItem(m, MineshaftItem.PAPER) > 0) + ); } @@ -72,9 +124,9 @@ public class Crafting extends DetailedCommand { return; } - String description = "This is your crafting table. Craft an item with `" + b.getPrefixManager().getPrefix(e.getGuild()) + "craft [item]`\n\n"; + String description = "This is your crafting table. Craft an item with `" + b.getPrefixManager().getPrefix(e.getGuild()) + "craft [item] [amount]`\n\n"; - description += getCraftingRecipesList(); + description += getCraftingRecipesList(e.getMember()); EmbedBuilder em = new EmbedBuilder(); em.setTitle(COMMAND_TITLE); @@ -82,13 +134,19 @@ public class Crafting extends DetailedCommand { em.setThumbnail(COMMAND_IMAGE); em.setColor(PeelingUtils.hex2Rgb("#93764c")); - em.setFooter(EmojiParser.parseToUnicode(":bulb:") + "View your inventory with " +b.getPrefixManager().getPrefix(e.getGuild()) + "inv"); + if (bot.getItem(e.getMember(), MineshaftItem.DIAMOND) < 1) { + em.setFooter(EmojiParser.parseToUnicode(":bulb:") + "View your inventory with " +b.getPrefixManager().getPrefix(e.getGuild()) + "inv"); + } else { + em.setFooter(EmojiParser.parseToUnicode(":bulb:") + "Come back once you have more items to unlock more recipes!"); + } e.getMessage().replyEmbeds(em.build()).queue(); } - public String getCraftingRecipesList() { - return getRecipes().stream().map(recipe -> { + public String getCraftingRecipesList(Member member) { + return getRecipes().stream() + .filter(r -> r.isUnlocked(member)) + .map(recipe -> { Resource r = bot.getItem(recipe.getItem()); return "**" + r.getPrettyName() + "**\n" |
