From 084b3ea5defa733127f14957bfcd3273e38d9211 Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Sat, 17 Feb 2024 15:30:36 +0100 Subject: [PATCH] Allow bucketing obsidian to lava. --- .../listeners/PlayerListener.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/plugin/src/main/java/com/alttd/cometskyblock/listeners/PlayerListener.java b/plugin/src/main/java/com/alttd/cometskyblock/listeners/PlayerListener.java index 86f04d9..25dba21 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/listeners/PlayerListener.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/listeners/PlayerListener.java @@ -4,18 +4,23 @@ import com.alttd.cometskyblock.CometSkyBlockPlugin; import com.alttd.cometskyblock.island.Island; import com.alttd.cometskyblock.island.IslandPlayer; import org.bukkit.Bukkit; +import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.block.Block; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.EntityBlockFormEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; public class PlayerListener implements Listener { @@ -29,6 +34,22 @@ public class PlayerListener implements Listener { canInteract(event, event.getPlayer()); } + // TODO - This should be moved to upstream Comet. + @EventHandler(ignoreCancelled = true) + public void onObsidianBucketInteraction(PlayerInteractEvent event) { + if(!canInteract(event, event.getPlayer())) + return; + + Block block = event.getClickedBlock(); + Player player = event.getPlayer(); + Material material = player.getInventory().getItemInMainHand().getType(); + if (event.getAction() == Action.RIGHT_CLICK_BLOCK && block != null && block.getType() == Material.OBSIDIAN && material == Material.BUCKET) { + block.setType(Material.AIR); + player.getInventory().setItemInMainHand(new ItemStack(Material.LAVA_BUCKET, 1)); + event.setCancelled(true); + } + } + @EventHandler(ignoreCancelled = true) public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) { canInteract(event, event.getPlayer());