From 8f289dcdbe9523c6e93f6c3d1a5bf839e17a96b4 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Tue, 4 Aug 2020 01:15:14 +0200 Subject: [PATCH] Fixes #2181 --- CHANGELOG.md | 1 + .../multiblocks/EnhancedCraftingTable.java | 5 ++- .../items/multiblocks/OreCrusher.java | 31 +++++++++++++------ .../Objects/SlimefunItem/SlimefunItem.java | 2 +- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f79009918..2e22b461e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ * Fixed #2103 * Fixed #2184 * Fixed #2183 +* Fixed #2181 ## Release Candidate 15 (01 Aug 2020) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java index e77b7bba8..d01668dd9 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/EnhancedCraftingTable.java @@ -73,12 +73,15 @@ public class EnhancedCraftingTable extends BackpackCrafter { ItemUtils.consumeItem(item, true); } } + p.getWorld().playSound(b.getLocation(), Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1); outputInv.addItem(output); } - else SlimefunPlugin.getLocalization().sendMessage(p, "machines.full-inventory", true); + else { + SlimefunPlugin.getLocalization().sendMessage(p, "machines.full-inventory", true); + } } private boolean isCraftable(Inventory inv, ItemStack[] recipe) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java index 9d07221a0..ab57ab20f 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/OreCrusher.java @@ -25,8 +25,16 @@ import io.papermc.lib.PaperLib; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; +/** + * The {@link OreCrusher} is a {@link MultiBlockMachine} which allows you to double ores + * and crush some other {@link Material Materials} into various resources. + * + * @author TheBusyBiscuit + * + */ public class OreCrusher extends MultiBlockMachine { private final DoubleOreSetting doubleOres = new DoubleOreSetting(); @@ -93,18 +101,21 @@ public class OreCrusher extends MultiBlockMachine { for (ItemStack current : inv.getContents()) { for (ItemStack convert : RecipeType.getRecipeInputs(this)) { - if (convert != null && SlimefunUtils.isItemSimilar(current, convert, true)) { + if (convert != null && SlimefunUtils.isItemSimilar(current, convert, true, false)) { ItemStack adding = RecipeType.getRecipeOutput(this, convert); Inventory outputInv = findOutputInventory(adding, dispBlock, inv); - if (outputInv != null) { - ItemStack removing = current.clone(); - removing.setAmount(convert.getAmount()); - inv.removeItem(removing); - outputInv.addItem(adding); - p.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, 1); - } - else { - SlimefunPlugin.getLocalization().sendMessage(p, "machines.full-inventory", true); + + if (Slimefun.hasUnlocked(p, adding, true)) { + if (outputInv != null) { + ItemStack removing = current.clone(); + removing.setAmount(convert.getAmount()); + inv.removeItem(removing); + outputInv.addItem(adding); + p.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, 1); + } + else { + SlimefunPlugin.getLocalization().sendMessage(p, "machines.full-inventory", true); + } } return; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java index e85493dbc..8282df268 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java @@ -223,7 +223,7 @@ public class SlimefunItem implements Placeable { @SuppressWarnings("unchecked") public Optional> getItemSetting(String key, Class c) { for (ItemSetting setting : itemSettings) { - if (setting.getKey().equals(key) && c.isInstance(setting.getDefaultValue())) { + if (setting.getKey().equals(key) && setting.isType(c)) { return Optional.of((ItemSetting) setting); } }