Fix bug. Nothing spawning.
This commit is contained in:
		@@ -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
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user