preventing growth outside of pixel block borders

This commit is contained in:
2024-10-09 13:34:31 +02:00
parent 8d70c4b7b3
commit 9c68308eeb
4 changed files with 39 additions and 1 deletions

View File

@ -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) {

View File

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