parent
d64be1c518
commit
0a016c2eaa
|
@ -10,6 +10,7 @@ import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.BlockFromToEvent;
|
import org.bukkit.event.block.BlockFromToEvent;
|
||||||
import org.bukkit.event.block.BlockPistonExtendEvent;
|
import org.bukkit.event.block.BlockPistonExtendEvent;
|
||||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||||
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
|
|
||||||
import world.bentobox.greenhouses.Greenhouses;
|
import world.bentobox.greenhouses.Greenhouses;
|
||||||
import world.bentobox.greenhouses.data.Greenhouse;
|
import world.bentobox.greenhouses.data.Greenhouse;
|
||||||
|
@ -78,6 +79,23 @@ public class GreenhouseGuard implements Listener {
|
||||||
.anyMatch(this::inGreenhouse));
|
.anyMatch(this::inGreenhouse));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Guard Greenhouse from natural entity spawning.
|
||||||
|
*
|
||||||
|
* @param spawnEvent the spawn event
|
||||||
|
*/
|
||||||
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
|
public void onCreatureSpawn(CreatureSpawnEvent spawnEvent)
|
||||||
|
{
|
||||||
|
if (CreatureSpawnEvent.SpawnReason.NATURAL == spawnEvent.getSpawnReason())
|
||||||
|
{
|
||||||
|
// Natural spawn events should be cancelled. Greenhouse spawns its own mobs.
|
||||||
|
spawnEvent.setCancelled(this.inGreenhouse(spawnEvent.getLocation()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean inGreenhouse(Location l) {
|
private boolean inGreenhouse(Location l) {
|
||||||
return addon.getManager().getMap().getGreenhouse(l).map(g -> g.isRoofOrWallBlock(l)).orElse(false);
|
return addon.getManager().getMap().getGreenhouse(l).map(g -> g.isRoofOrWallBlock(l)).orElse(false);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue