From 9c68308eebe2a2979fd5cdfd0457ac9e9bd18d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Wed, 9 Oct 2024 13:34:31 +0200 Subject: [PATCH] preventing growth outside of pixel block borders --- .idea/modules.xml | 1 + .idea/modules/minecraft.PixelBlocks.main.iml | 13 +++++++++++ .../eu/mhsl/minecraft/pixelblocks/Main.java | 3 ++- .../listeners/PreventGrowthListener.java | 23 +++++++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 .idea/modules/minecraft.PixelBlocks.main.iml create mode 100644 src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventGrowthListener.java diff --git a/.idea/modules.xml b/.idea/modules.xml index 242f4dc..02d0572 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -4,6 +4,7 @@ + diff --git a/.idea/modules/minecraft.PixelBlocks.main.iml b/.idea/modules/minecraft.PixelBlocks.main.iml new file mode 100644 index 0000000..3cf00db --- /dev/null +++ b/.idea/modules/minecraft.PixelBlocks.main.iml @@ -0,0 +1,13 @@ + + + + + + + PAPER + + 1 + + + + \ No newline at end of file diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java index 90e1124..25018c6 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java @@ -73,7 +73,8 @@ public final class Main extends JavaPlugin { new PreventPistonsListener(), new PreventEntityPlacementListener(), new DiscoverRecipesListener(), - new QuitWhileInPixelBlockListener() + new QuitWhileInPixelBlockListener(), + new PreventGrowthListener() }; for (Listener listener : listeners) { diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventGrowthListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventGrowthListener.java new file mode 100644 index 0000000..ce227b8 --- /dev/null +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventGrowthListener.java @@ -0,0 +1,23 @@ +package eu.mhsl.minecraft.pixelblocks.listeners; + +import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock; +import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlockWorld; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockFertilizeEvent; + +import java.util.Objects; + +public class PreventGrowthListener implements Listener { + @EventHandler + public void inBoneMeal(BlockFertilizeEvent event) { + if(!PixelBlockWorld.isPixelWorld(event.getBlock().getWorld())) return; + PixelBlock pixelBlock = PixelBlock.getPixelBlockFromBlockWorld(event.getBlock().getWorld()); + Objects.requireNonNull(pixelBlock); + + event.getBlocks().stream() + .filter(blockState -> !pixelBlock.getPixelWorld().allowPlacements(blockState.getBlock().getLocation())) + .forEach(blockState -> blockState.setType(Material.AIR)); + } +}