From 372c53b526d12ba0c94823b60b2165b8acde7395 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Tue, 1 Oct 2024 17:21:42 -0700 Subject: [PATCH] Fix experience orbs not dropping when a spawner is broken --- .../lncvrtbox/events/BlockBreakListener.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockBreakListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockBreakListener.java index d1160c0..7cd9c50 100644 --- a/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockBreakListener.java +++ b/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockBreakListener.java @@ -1,13 +1,20 @@ package io.github.lncvrt.lncvrtbox.events; import io.github.lncvrt.lncvrtbox.LncvrtBox; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.ExperienceOrb; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; +import java.util.Random; + public class BlockBreakListener implements Listener { private final LncvrtBox plugin; + private final Random random = new Random(); public BlockBreakListener(LncvrtBox plugin) { this.plugin = plugin; @@ -15,6 +22,14 @@ public class BlockBreakListener implements Listener { @EventHandler(priority = EventPriority.LOWEST) public void onBlockBreak(BlockBreakEvent event) { - plugin.convertInventoryItemsPrep(event.getPlayer(), event.getPlayer().getUniqueId()); + Player player = event.getPlayer(); + plugin.convertInventoryItemsPrep(player, player.getUniqueId()); + if (event.getBlock().getType() == Material.SPAWNER) { + int exp = random.nextInt(29) + 15; + + Location blockLocation = event.getBlock().getLocation(); + ExperienceOrb orb = blockLocation.getWorld().spawn(blockLocation, ExperienceOrb.class); + orb.setExperience(exp); + } } }