Removed stream usage from Instance.
This commit is contained in:
		@@ -33,8 +33,6 @@ import java.util.concurrent.TimeUnit;
 | 
			
		||||
import java.util.function.Predicate;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
import java.util.stream.Stream;
 | 
			
		||||
 | 
			
		||||
import org.l2jmobius.Config;
 | 
			
		||||
import org.l2jmobius.commons.database.DatabaseFactory;
 | 
			
		||||
@@ -65,6 +63,7 @@ import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceStatusChang
 | 
			
		||||
import org.l2jmobius.gameserver.model.interfaces.IIdentifiable;
 | 
			
		||||
import org.l2jmobius.gameserver.model.interfaces.ILocational;
 | 
			
		||||
import org.l2jmobius.gameserver.model.interfaces.INamable;
 | 
			
		||||
import org.l2jmobius.gameserver.model.spawns.NpcSpawnTemplate;
 | 
			
		||||
import org.l2jmobius.gameserver.model.spawns.SpawnGroup;
 | 
			
		||||
import org.l2jmobius.gameserver.model.spawns.SpawnTemplate;
 | 
			
		||||
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
 | 
			
		||||
@@ -112,7 +111,10 @@ public class Instance implements IIdentifiable, INamable
 | 
			
		||||
		_spawns = new ArrayList<>(template.getSpawns().size());
 | 
			
		||||
		
 | 
			
		||||
		// Clone and add the spawn templates
 | 
			
		||||
		template.getSpawns().stream().map(SpawnTemplate::clone).forEach(_spawns::add);
 | 
			
		||||
		for (SpawnTemplate spawn : template.getSpawns())
 | 
			
		||||
		{
 | 
			
		||||
			_spawns.add(spawn.clone());
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		// Register world to instance manager.
 | 
			
		||||
		InstanceManager.getInstance().register(this);
 | 
			
		||||
@@ -454,7 +456,17 @@ public class Instance implements IIdentifiable, INamable
 | 
			
		||||
	 */
 | 
			
		||||
	public boolean isSpawnGroupExist(String name)
 | 
			
		||||
	{
 | 
			
		||||
		return _spawns.stream().flatMap(group -> group.getGroups().stream()).anyMatch(group -> name.equalsIgnoreCase(group.getName()));
 | 
			
		||||
		for (SpawnTemplate spawnTemplate : _spawns)
 | 
			
		||||
		{
 | 
			
		||||
			for (SpawnGroup group : spawnTemplate.getGroups())
 | 
			
		||||
			{
 | 
			
		||||
				if (name.equalsIgnoreCase(group.getName()))
 | 
			
		||||
				{
 | 
			
		||||
					return true;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
@@ -483,30 +495,10 @@ public class Instance implements IIdentifiable, INamable
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param groupName
 | 
			
		||||
	 * @param filter
 | 
			
		||||
	 * @param filterValue
 | 
			
		||||
	 * @return {@code List} of NPCs that are part of specified group and matches filter specified
 | 
			
		||||
	 */
 | 
			
		||||
	public List<Npc> getNpcsOfGroup(String groupName, Predicate<Npc> filter)
 | 
			
		||||
	{
 | 
			
		||||
		return getStreamOfGroup(groupName, filter).collect(Collectors.toList());
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param groupName
 | 
			
		||||
	 * @param filter
 | 
			
		||||
	 * @return {@code Npc} instance of an NPC that is part of a group and matches filter specified
 | 
			
		||||
	 */
 | 
			
		||||
	public Npc getNpcOfGroup(String groupName, Predicate<Npc> filter)
 | 
			
		||||
	{
 | 
			
		||||
		return getStreamOfGroup(groupName, filter).findFirst().orElse(null);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param groupName
 | 
			
		||||
	 * @param filterValue
 | 
			
		||||
	 * @return {@code Stream<Npc>} of NPCs that is part of a group and matches filter specified
 | 
			
		||||
	 */
 | 
			
		||||
	public Stream<Npc> getStreamOfGroup(String groupName, Predicate<Npc> filterValue)
 | 
			
		||||
	public List<Npc> getNpcsOfGroup(String groupName, Predicate<Npc> filterValue)
 | 
			
		||||
	{
 | 
			
		||||
		Predicate<Npc> filter = filterValue;
 | 
			
		||||
		if (filter == null)
 | 
			
		||||
@@ -514,13 +506,56 @@ public class Instance implements IIdentifiable, INamable
 | 
			
		||||
			filter = Objects::nonNull;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//@formatter:off
 | 
			
		||||
		return _spawns.stream()
 | 
			
		||||
			.flatMap(spawnTemplate -> spawnTemplate.getGroupsByName(groupName).stream())
 | 
			
		||||
			.flatMap(group -> group.getSpawns().stream())
 | 
			
		||||
			.flatMap(npcTemplate -> npcTemplate.getSpawnedNpcs().stream())
 | 
			
		||||
			.filter(filter);
 | 
			
		||||
		//@formatter:on
 | 
			
		||||
		final List<Npc> npcs = new LinkedList<>();
 | 
			
		||||
		for (SpawnTemplate spawnTemplate : _spawns)
 | 
			
		||||
		{
 | 
			
		||||
			for (SpawnGroup group : spawnTemplate.getGroupsByName(groupName))
 | 
			
		||||
			{
 | 
			
		||||
				for (NpcSpawnTemplate npcTemplate : group.getSpawns())
 | 
			
		||||
				{
 | 
			
		||||
					for (Npc npc : npcTemplate.getSpawnedNpcs())
 | 
			
		||||
					{
 | 
			
		||||
						if (filter.test(npc))
 | 
			
		||||
						{
 | 
			
		||||
							npcs.add(npc);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return npcs;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param groupName
 | 
			
		||||
	 * @param filterValue
 | 
			
		||||
	 * @return {@code Npc} instance of an NPC that is part of a group and matches filter specified
 | 
			
		||||
	 */
 | 
			
		||||
	public Npc getNpcOfGroup(String groupName, Predicate<Npc> filterValue)
 | 
			
		||||
	{
 | 
			
		||||
		Predicate<Npc> filter = filterValue;
 | 
			
		||||
		if (filter == null)
 | 
			
		||||
		{
 | 
			
		||||
			filter = Objects::nonNull;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		for (SpawnTemplate spawnTemplate : _spawns)
 | 
			
		||||
		{
 | 
			
		||||
			for (SpawnGroup group : spawnTemplate.getGroupsByName(groupName))
 | 
			
		||||
			{
 | 
			
		||||
				for (NpcSpawnTemplate npcTemplate : group.getSpawns())
 | 
			
		||||
				{
 | 
			
		||||
					for (Npc npc : npcTemplate.getSpawnedNpcs())
 | 
			
		||||
					{
 | 
			
		||||
						if (filter.test(npc))
 | 
			
		||||
						{
 | 
			
		||||
							return npc;
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return null;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
@@ -758,7 +793,13 @@ public class Instance implements IIdentifiable, INamable
 | 
			
		||||
	 */
 | 
			
		||||
	private void removeDoors()
 | 
			
		||||
	{
 | 
			
		||||
		_doors.values().stream().filter(Objects::nonNull).forEach(Door::decayMe);
 | 
			
		||||
		for (Door door : _doors.values())
 | 
			
		||||
		{
 | 
			
		||||
			if (door != null)
 | 
			
		||||
			{
 | 
			
		||||
				door.decayMe();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		_doors.clear();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user