Autosmelt now supports fortune

This commit is contained in:
Jules 2023-11-26 16:24:08 +01:00
parent 0b57a2d47a
commit c7c153257c

View File

@ -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<Material, Material> 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);
}
}