Fix bug. Nothing spawning.
This commit is contained in:
parent
0728f0cfd2
commit
fe68d57b23
@ -1137,27 +1137,47 @@ public class EngineMain extends EngineAbstract
|
|||||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
public void blockMonstersAndAnimals(CreatureSpawnEvent event)
|
public void blockMonstersAndAnimals(CreatureSpawnEvent event)
|
||||||
{
|
{
|
||||||
// First check that it's a natural spawn ..
|
// If this is a natural spawn ..
|
||||||
if ( ! NATURAL_SPAWN_REASONS.contains(event.getSpawnReason())) return;
|
if ( ! NATURAL_SPAWN_REASONS.contains(event.getSpawnReason())) return;
|
||||||
|
|
||||||
// .. and if they can spawn here ..
|
// ... get the spawn location ...
|
||||||
Location location = event.getLocation();
|
Location location = event.getLocation();
|
||||||
if (location == null) return;
|
if (location == null) return;
|
||||||
|
|
||||||
PS ps = PS.valueOf(location);
|
PS ps = PS.valueOf(location);
|
||||||
|
|
||||||
|
// ... get the faction there ...
|
||||||
Faction faction = BoardColl.get().getFactionAt(ps);
|
Faction faction = BoardColl.get().getFactionAt(ps);
|
||||||
if (faction == null) return;
|
if (faction == null) return;
|
||||||
|
|
||||||
|
// ... get the entity type ...
|
||||||
EntityType type = event.getEntityType();
|
EntityType type = event.getEntityType();
|
||||||
|
|
||||||
if ((faction.getFlag(MFlag.getFlagMonsters()) && MConf.get().entityTypesMonsters.contains(type)) &&
|
// ... and if this type can't spawn in the faction ...
|
||||||
(faction.getFlag(MFlag.getFlagAnimals()) && MConf.get().entityTypesAnimals.contains(type))) return;
|
if (canSpawn(faction, type)) return;
|
||||||
|
|
||||||
// ... block the spawn.
|
// ... then cancel.
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean canSpawn(Faction faction, EntityType type)
|
||||||
|
{
|
||||||
|
if (MConf.get().entityTypesMonsters.contains(type))
|
||||||
|
{
|
||||||
|
// Monster
|
||||||
|
return faction.getFlag(MFlag.getFlagMonsters());
|
||||||
|
}
|
||||||
|
else if (MConf.get().entityTypesAnimals.contains(type))
|
||||||
|
{
|
||||||
|
// Animal
|
||||||
|
return faction.getFlag(MFlag.getFlagAnimals());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Other
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FLAG: EXPLOSIONS
|
// FLAG: EXPLOSIONS
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
Loading…
Reference in New Issue
Block a user