From c7c153257c16a378fa7fe25bc323609ebe82ea46 Mon Sep 17 00:00:00 2001 From: Jules Date: Sun, 26 Nov 2023 16:24:08 +0100 Subject: [PATCH] Autosmelt now supports fortune --- .../mmoitems/api/interaction/Tool.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/MMOItems-API/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java b/MMOItems-API/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java index 9bdaf3d1..63f2d900 100644 --- a/MMOItems-API/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java +++ b/MMOItems-API/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java @@ -4,18 +4,18 @@ import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.UtilityMethods; import io.lumine.mythic.lib.api.item.NBTItem; import io.lumine.mythic.lib.comp.flags.CustomFlag; +import io.lumine.mythic.lib.version.OreDrops; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.event.BouncingCrackBlockBreakEvent; import net.Indyuce.mmoitems.api.player.PlayerData; import org.bukkit.*; import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; - -import java.util.Map; +import org.jetbrains.annotations.NotNull; public class Tool extends UseItem { public Tool(Player player, NBTItem item) { @@ -31,15 +31,14 @@ public class Tool extends UseItem { * @param block Block being broken * @return If the mining event should be canceled */ - public boolean miningEffects(Block block) { + public boolean miningEffects(@NotNull Block block) { boolean cancel = false; if (getNBTItem().getBoolean("MMOITEMS_AUTOSMELT")) { - Map oreDrops = MythicLib.plugin.getVersion().getWrapper().getOreDrops(); - Material drop = oreDrops.get(block.getType()); - if (drop != null) { - UtilityMethods.dropItemNaturally(block.getLocation(), new ItemStack(drop)); - block.getWorld().spawnParticle(Particle.CLOUD, block.getLocation().add(.5, .5, .5), 0); + final OreDrops drops = MythicLib.plugin.getVersion().getWrapper().getOreDrops(block.getType()); + if (drops != null) { + UtilityMethods.dropItemNaturally(block.getLocation(), drops.generate(getFortuneLevel())); + block.getWorld().spawnParticle(Particle.LAVA, block.getLocation().add(.5, .5, .5), 4); block.setType(Material.AIR); cancel = true; } @@ -76,4 +75,9 @@ public class Tool extends UseItem { return cancel; } + + private int getFortuneLevel() { + if (!getItem().hasItemMeta()) return 0; + return getItem().getItemMeta().getEnchantLevel(Enchantment.LOOT_BONUS_BLOCKS); + } }