preventing growth outside of pixel block borders

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

1
.idea/modules.xml generated
View File

@ -4,6 +4,7 @@
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/PixelBlocks.main.iml" filepath="$PROJECT_DIR$/.idea/modules/PixelBlocks.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/eu.mhsl.minecraft.PixelBlocks.main.iml" filepath="$PROJECT_DIR$/.idea/modules/eu.mhsl.minecraft.PixelBlocks.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/minecraft.PixelBlocks.main.iml" filepath="$PROJECT_DIR$/.idea/modules/minecraft.PixelBlocks.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/projects.PixelBlocks.main.iml" filepath="$PROJECT_DIR$/.idea/modules/projects.PixelBlocks.main.iml" />
</modules>
</component>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>PAPER</platformType>
</autoDetectTypes>
<projectReimportVersion>1</projectReimportVersion>
</configuration>
</facet>
</component>
</module>

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