Prevent grass spread to reinforced dirt

This commit is contained in:
MrJeremyFisher
2024-02-28 23:32:56 -05:00
parent de53fb0223
commit 6fc1a2b411

View File

@@ -28,6 +28,7 @@ import org.bukkit.event.block.BlockDispenseEvent;
import org.bukkit.event.block.BlockFertilizeEvent;
import org.bukkit.event.block.BlockFromToEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.BlockSpreadEvent;
import org.bukkit.event.entity.EntityChangeBlockEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerHarvestBlockEvent;
@@ -198,6 +199,22 @@ public class BlockListener implements Listener {
}
}
// prevent "enemy" grass spreading to reinforced dirt
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onGrassSpread(BlockSpreadEvent event) {
if (event.getSource().getType() != Material.GRASS_BLOCK) return;
Reinforcement destRein = ReinforcementLogic.getReinforcementProtecting(event.getBlock());
if (destRein != null) {
Reinforcement sourceRein = ReinforcementLogic.getReinforcementProtecting(event.getSource());
if (sourceRein == null || sourceRein.getGroupId() != destRein.getGroupId()) {
event.setCancelled(true);
}
}
}
// prevent breaking reinforced blocks through plant growth
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onStructureGrow(StructureGrowEvent event) {