preventing growth outside of pixel block borders
This commit is contained in:
@ -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) {
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user