diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java index 6660b96af..66d3a7a09 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/EnhancedFurnaceListener.java @@ -17,6 +17,7 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.implementation.items.blocks.EnhancedFurnace; +import io.github.thebusybiscuit.slimefun4.utils.tags.SlimefunTag; import io.papermc.lib.PaperLib; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.BlockStorage; @@ -67,7 +68,8 @@ public class EnhancedFurnaceListener implements Listener { if (state instanceof Furnace) { FurnaceInventory inventory = ((Furnace) state).getInventory(); - int amount = inventory.getSmelting().getType().toString().endsWith("_ORE") ? ((EnhancedFurnace) sfItem).getRandomOutputAmount() : 1; + boolean multiplier = SlimefunTag.ENHANCED_FURNACE_LUCK_MATERIALS.isTagged(inventory.getSmelting().getType()); + int amount = multiplier ? ((EnhancedFurnace) sfItem).getRandomOutputAmount() : 1; Optional result = SlimefunPlugin.getMinecraftRecipeService().getFurnaceOutput(inventory.getSmelting()); if (result.isPresent()) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/tags/SlimefunTag.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/tags/SlimefunTag.java index ccd1106e5..e85bd56ec 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/tags/SlimefunTag.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/tags/SlimefunTag.java @@ -21,6 +21,7 @@ import org.bukkit.block.data.Waterlogged; import io.github.thebusybiscuit.slimefun4.api.exceptions.TagMisconfigurationException; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.implementation.items.blocks.BlockPlacer; +import io.github.thebusybiscuit.slimefun4.implementation.items.blocks.EnhancedFurnace; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.accelerators.CropGrowthAccelerator; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.talismans.Talisman; import io.github.thebusybiscuit.slimefun4.implementation.items.multiblocks.miner.IndustrialMiner; @@ -64,6 +65,11 @@ public enum SlimefunTag implements Tag { */ NETHER_ORES, + /** + * All raw metals in 1.17+ + */ + RAW_METALS, + /** * All Shulker boxes, normal and colored. */ @@ -230,7 +236,12 @@ public enum SlimefunTag implements Tag { /** * All materials (ores) which trigger the Talisman of the Caveman. */ - CAVEMAN_TALISMAN_TRIGGERS; + CAVEMAN_TALISMAN_TRIGGERS, + + /** + * All materials which benefit from the luck multiplier of {@link EnhancedFurnace} + */ + ENHANCED_FURNACE_LUCK_MATERIALS; /** * Lookup table for tag names. diff --git a/src/main/resources/tags/enhanced_furnace_luck_materials.json b/src/main/resources/tags/enhanced_furnace_luck_materials.json new file mode 100644 index 000000000..6c44424f7 --- /dev/null +++ b/src/main/resources/tags/enhanced_furnace_luck_materials.json @@ -0,0 +1,6 @@ +{ + "values" : [ + "#slimefun:ores", + "#slimefun:raw_metals" + ] +} diff --git a/src/main/resources/tags/raw_metals.json b/src/main/resources/tags/raw_metals.json new file mode 100644 index 000000000..bfda371df --- /dev/null +++ b/src/main/resources/tags/raw_metals.json @@ -0,0 +1,16 @@ +{ + "values" : [ + { + "id" : "minecraft:raw_iron", + "required" : false + }, + { + "id" : "minecraft:raw_gold", + "required" : false + }, + { + "id" : "minecraft:raw_copper", + "required" : false + } + ] +}