Removed most stream filter uses.

This commit is contained in:
MobiusDevelopment
2020-06-18 16:09:02 +00:00
parent c612ba62ca
commit cf0ee224f8
1223 changed files with 24696 additions and 7524 deletions

View File

@@ -772,13 +772,16 @@ public class Beleth extends AbstractNpcAI
private void deleteAll()
{
_minions.stream().filter(n -> !n.isDead()).forEach(n ->
for (Npc minion : _minions)
{
n.abortCast();
n.setTarget(null);
n.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
n.deleteMe();
});
if (!minion.isDead())
{
minion.abortCast();
minion.setTarget(null);
minion.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
minion.deleteMe();
}
}
_allowedObjId = 0;
}

View File

@@ -216,12 +216,15 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
return false;
}
final SellBuffHolder holder = player.getSellingBuffs().stream().filter(h -> (h.getSkillId() == skillToChange.getId())).findFirst().orElse(null);
if ((holder != null))
for (SellBuffHolder holder : player.getSellingBuffs())
{
player.sendMessage("Price of " + player.getKnownSkill(holder.getSkillId()).getName() + " has been changed to " + price + "!");
holder.setPrice(price);
SellBuffsManager.getInstance().sendBuffEditMenu(player);
if (holder.getSkillId() == skillToChange.getId())
{
player.sendMessage("Price of " + player.getKnownSkill(holder.getSkillId()).getName() + " has been changed to " + price + "!");
holder.setPrice(price);
SellBuffsManager.getInstance().sendBuffEditMenu(player);
break;
}
}
}
break;
@@ -250,11 +253,14 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
return false;
}
final SellBuffHolder holder = player.getSellingBuffs().stream().filter(h -> (h.getSkillId() == skillToRemove.getId())).findFirst().orElse(null);
if ((holder != null) && player.getSellingBuffs().remove(holder))
for (SellBuffHolder holder : player.getSellingBuffs())
{
player.sendMessage("Skill " + player.getKnownSkill(holder.getSkillId()).getName() + " has been removed!");
SellBuffsManager.getInstance().sendBuffEditMenu(player);
if ((holder.getSkillId() == skillToRemove.getId()) && player.getSellingBuffs().remove(holder))
{
player.sendMessage("Skill " + player.getKnownSkill(holder.getSkillId()).getName() + " has been removed!");
SellBuffsManager.getInstance().sendBuffEditMenu(player);
break;
}
}
}
break;
@@ -399,29 +405,33 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
return false;
}
final SellBuffHolder holder = seller.getSellingBuffs().stream().filter(h -> (h.getSkillId() == skillToBuy.getId())).findFirst().orElse(null);
if (holder != null)
for (SellBuffHolder holder : player.getSellingBuffs())
{
if (AbstractScript.getQuestItemsCount(player, Config.SELLBUFF_PAYMENT_ID) >= holder.getPrice())
if (holder.getSkillId() == skillToBuy.getId())
{
AbstractScript.takeItems(player, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
AbstractScript.giveItems(seller, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
seller.reduceCurrentMp(skillToBuy.getMpConsume() * Config.SELLBUFF_MP_MULTIPLER);
skillToBuy.activateSkill(seller, player);
}
else
{
final Item item = ItemTable.getInstance().getTemplate(Config.SELLBUFF_PAYMENT_ID);
if (item != null)
if (AbstractScript.getQuestItemsCount(player, Config.SELLBUFF_PAYMENT_ID) >= holder.getPrice())
{
player.sendMessage("Not enough " + item.getName() + "!");
AbstractScript.takeItems(player, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
AbstractScript.giveItems(seller, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
seller.reduceCurrentMp(skillToBuy.getMpConsume() * Config.SELLBUFF_MP_MULTIPLER);
skillToBuy.activateSkill(seller, player);
}
else
{
player.sendMessage("Not enough items!");
final Item item = ItemTable.getInstance().getTemplate(Config.SELLBUFF_PAYMENT_ID);
if (item != null)
{
player.sendMessage("Not enough " + item.getName() + "!");
}
else
{
player.sendMessage("Not enough items!");
}
}
break;
}
}
SellBuffsManager.getInstance().sendBuffMenu(player, seller, index);
}
break;

View File

@@ -213,7 +213,7 @@ public class HomeBoard implements IParseBoardHandler
{
continue;
}
targets.stream().filter(target -> !target.isSummon()).forEach(target ->
for (Creature target : targets)
{
skill.applyEffects(player, target);
if (Config.COMMUNITYBOARD_CAST_ANIMATIONS)
@@ -222,7 +222,7 @@ public class HomeBoard implements IParseBoardHandler
// not recommend broadcast
// player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
}
});
}
}
}

View File

@@ -16,8 +16,8 @@
*/
package handlers.effecthandlers;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.model.StatSet;
@@ -63,7 +63,14 @@ public class RandomizeHate extends AbstractEffect
}
final Attackable effectedMob = (Attackable) info.getEffected();
final List<Creature> aggroList = effectedMob.getAggroList().keySet().stream().filter(c -> c != info.getEffector()).collect(Collectors.toList());
final List<Creature> aggroList = new ArrayList<>();
for (Creature creature : effectedMob.getAggroList().keySet())
{
if (creature != info.getEffector())
{
aggroList.add(creature);
}
}
if (aggroList.isEmpty())
{
return;

View File

@@ -40,7 +40,6 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory;
@@ -283,7 +282,14 @@ public class LoginServerThread extends Thread
st.addAttribute(ServerStatus.SERVER_AGE, ServerStatus.SERVER_AGE_ALL);
}
sendPacket(st);
final List<String> playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList());
final List<String> playerList = new ArrayList<>();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (!player.isInOfflineMode())
{
playerList.add(player.getAccountName());
}
}
if (!playerList.isEmpty())
{
sendPacket(new PlayerInGame(playerList));

View File

@@ -203,7 +203,14 @@ public class Forum
public Forum getChildByName(String name)
{
vload();
return _children.stream().filter(f -> f.getName().equals(name)).findFirst().orElse(null);
for (Forum f : _children)
{
if (f.getName().equals(name))
{
return f;
}
}
return null;
}
/**

View File

@@ -139,7 +139,14 @@ public class ClanTable
public Clan getClanByName(String clanName)
{
return _clans.values().stream().filter(c -> c.getName().equalsIgnoreCase(clanName)).findFirst().orElse(null);
for (Clan clan : _clans.values())
{
if (clan.getName().equalsIgnoreCase(clanName))
{
return clan;
}
}
return null;
}
/**

View File

@@ -28,7 +28,6 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
@@ -723,11 +722,15 @@ public class NpcData implements IXmlReader
*/
public List<NpcTemplate> getTemplates(Predicate<NpcTemplate> filter)
{
//@formatter:off
return _npcs.values().stream()
.filter(filter)
.collect(Collectors.toList());
//@formatter:on
final List<NpcTemplate> result = new ArrayList<>();
for (NpcTemplate template : _npcs.values())
{
if (filter.test(template))
{
result.add(template);
}
}
return result;
}
/**

View File

@@ -26,6 +26,7 @@ import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -758,7 +759,15 @@ public class CastleManorManager implements IXmlReader, IStorable
public Set<Seed> getSeedsForCastle(int castleId)
{
return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet());
Set<Seed> result = new HashSet<>();
for (Seed seed : _seeds.values())
{
if (seed.getCastleId() == castleId)
{
result.add(seed);
}
}
return result;
}
public Set<Integer> getSeedIds()

View File

@@ -162,7 +162,14 @@ public class GrandBossManager implements IStorable
public BossZone getZone(Creature creature)
{
return _zones.values().stream().filter(z -> z.isCharacterInZone(creature)).findFirst().orElse(null);
for (BossZone zone : _zones.values())
{
if (zone.isCharacterInZone(creature))
{
return zone;
}
}
return null;
}
public BossZone getZone(Location loc)
@@ -172,7 +179,14 @@ public class GrandBossManager implements IStorable
public BossZone getZone(int x, int y, int z)
{
return _zones.values().stream().filter(zone -> zone.isInsideZone(x, y, z)).findFirst().orElse(null);
for (BossZone zone : _zones.values())
{
if (zone.isInsideZone(x, y, z))
{
return zone;
}
}
return null;
}
public boolean checkIfInZone(String zoneType, WorldObject obj)

View File

@@ -177,14 +177,17 @@ public class PremiumManager
premiumData.put(accountName, newPremiumExpiration);
// UPDATE PlAYER PREMIUMSTATUS
final PlayerInstance playerOnline = World.getInstance().getPlayers().stream().filter(p -> accountName.equals(p.getAccountName())).findFirst().orElse(null);
if (playerOnline != null)
for (PlayerInstance player : World.getInstance().getPlayers())
{
stopExpireTask(playerOnline);
startExpireTask(playerOnline, newPremiumExpiration - now);
if (!playerOnline.hasPremiumStatus())
if (accountName.equals(player.getAccountName()))
{
playerOnline.setPremiumStatus(true);
stopExpireTask(player);
startExpireTask(player, newPremiumExpiration - now);
if (!player.hasPremiumStatus())
{
player.setPremiumStatus(true);
}
break;
}
}
}
@@ -193,11 +196,14 @@ public class PremiumManager
{
if (checkOnline)
{
final PlayerInstance playerOnline = World.getInstance().getPlayers().stream().filter(p -> accountName.equals(p.getAccountName())).findFirst().orElse(null);
if ((playerOnline != null) && playerOnline.hasPremiumStatus())
for (PlayerInstance player : World.getInstance().getPlayers())
{
playerOnline.setPremiumStatus(false);
stopExpireTask(playerOnline);
if (accountName.equals(player.getAccountName()) && player.hasPremiumStatus())
{
player.setPremiumStatus(false);
stopExpireTask(player);
break;
}
}
}

View File

@@ -379,7 +379,14 @@ public class SellBuffsManager implements IXmlReader
public boolean isInSellList(PlayerInstance player, Skill skill)
{
return player.getSellingBuffs().stream().filter(h -> (h.getSkillId() == skill.getId())).findFirst().orElse(null) != null;
for (SellBuffHolder holder : player.getSellingBuffs())
{
if (holder.getSkillId() == skill.getId())
{
return true;
}
}
return false;
}
public boolean canStartSellBuffs(PlayerInstance player)

View File

@@ -24,7 +24,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.OptionalInt;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
@@ -555,10 +554,12 @@ public class ZoneManager implements IXmlReader
{
for (Map<Integer, ? extends ZoneType> map : _classZones.values())
{
final Optional<? extends ZoneType> zoneType = map.values().stream().filter(z -> (z.getName() != null) && z.getName().equals(name)).findAny();
if (zoneType.isPresent())
for (ZoneType zone : map.values())
{
return zoneType.get();
if ((zone.getName() != null) && zone.getName().equals(name))
{
return zone;
}
}
}
return null;
@@ -587,10 +588,15 @@ public class ZoneManager implements IXmlReader
@SuppressWarnings("unchecked")
public <T extends ZoneType> T getZoneByName(String name, Class<T> zoneType)
{
final Optional<? extends ZoneType> zone = _classZones.get(zoneType).values().stream().filter(z -> (z.getName() != null) && z.getName().equals(name)).findAny();
if (zone.isPresent())
if (_classZones.containsKey(zoneType))
{
return (T) zone.get();
for (ZoneType zone : _classZones.get(zoneType).values())
{
if ((zone.getName() != null) && zone.getName().equals(name))
{
return (T) zone;
}
}
}
return null;
}

View File

@@ -20,7 +20,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -355,35 +354,79 @@ public class EffectList
public BuffInfo getBuffInfoBySkillId(int skillId)
{
BuffInfo info = null;
if (hasBuffs())
{
info = _buffs.stream().filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null);
for (BuffInfo b : _buffs)
{
if (b.getSkill().getId() == skillId)
{
info = b;
break;
}
}
}
if (hasTriggered() && (info == null))
{
info = _triggered.stream().filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null);
for (BuffInfo b : _triggered)
{
if (b.getSkill().getId() == skillId)
{
info = b;
break;
}
}
}
if (hasDances() && (info == null))
{
info = _dances.stream().filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null);
for (BuffInfo b : _dances)
{
if (b.getSkill().getId() == skillId)
{
info = b;
break;
}
}
}
if (hasToggles() && (info == null))
{
info = _toggles.stream().filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null);
for (BuffInfo b : _toggles)
{
if (b.getSkill().getId() == skillId)
{
info = b;
break;
}
}
}
if (hasDebuffs() && (info == null))
{
info = _debuffs.stream().filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null);
for (BuffInfo b : _debuffs)
{
if (b.getSkill().getId() == skillId)
{
info = b;
break;
}
}
}
if (hasPassives() && (info == null))
{
info = _passives.stream().filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null);
for (BuffInfo b : _passives)
{
if (b.getSkill().getId() == skillId)
{
info = b;
break;
}
}
}
return info;
}
@@ -623,31 +666,61 @@ public class EffectList
boolean update = false;
if (hasBuffs())
{
_buffs.stream().filter(info -> !info.getSkill().isStayAfterDeath()).forEach(info -> stopAndRemove(true, info, _buffs));
for (BuffInfo info : _buffs)
{
if (!info.getSkill().isStayAfterDeath())
{
stopAndRemove(true, info, _buffs);
}
}
update = true;
}
if (hasTriggered())
{
_triggered.stream().filter(info -> !info.getSkill().isStayAfterDeath()).forEach(info -> stopAndRemove(true, info, _triggered));
for (BuffInfo info : _triggered)
{
if (!info.getSkill().isStayAfterDeath())
{
stopAndRemove(true, info, _triggered);
}
}
update = true;
}
if (hasDebuffs())
{
_debuffs.stream().filter(info -> !info.getSkill().isStayAfterDeath()).forEach(info -> stopAndRemove(true, info, _debuffs));
for (BuffInfo info : _debuffs)
{
if (!info.getSkill().isStayAfterDeath())
{
stopAndRemove(true, info, _debuffs);
}
}
update = true;
}
if (hasDances())
{
_dances.stream().filter(info -> !info.getSkill().isStayAfterDeath()).forEach(info -> stopAndRemove(true, info, _dances));
for (BuffInfo info : _dances)
{
if (!info.getSkill().isStayAfterDeath())
{
stopAndRemove(true, info, _dances);
}
}
update = true;
}
if (hasToggles())
{
_toggles.stream().filter(info -> !info.getSkill().isStayAfterDeath()).forEach(info -> stopAndRemove(true, info, _toggles));
for (BuffInfo info : _toggles)
{
if (!info.getSkill().isStayAfterDeath())
{
stopAndRemove(true, info, _toggles);
}
}
update = true;
}
@@ -663,12 +736,30 @@ public class EffectList
*/
public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast)
{
_buffs.stream().forEach(info -> stopAndRemove(broadcast, info, _buffs));
_triggered.stream().forEach(info -> stopAndRemove(broadcast, info, _triggered));
_dances.stream().forEach(info -> stopAndRemove(broadcast, info, _dances));
_toggles.stream().forEach(info -> stopAndRemove(broadcast, info, _toggles));
_debuffs.stream().forEach(info -> stopAndRemove(broadcast, info, _debuffs));
_passives.stream().forEach(info -> stopAndRemove(broadcast, info, _passives));
for (BuffInfo info : _buffs)
{
stopAndRemove(broadcast, info, _buffs);
}
for (BuffInfo info : _triggered)
{
stopAndRemove(broadcast, info, _triggered);
}
for (BuffInfo info : _dances)
{
stopAndRemove(broadcast, info, _dances);
}
for (BuffInfo info : _toggles)
{
stopAndRemove(broadcast, info, _toggles);
}
for (BuffInfo info : _debuffs)
{
stopAndRemove(broadcast, info, _debuffs);
}
for (BuffInfo info : _passives)
{
stopAndRemove(broadcast, info, _passives);
}
// Update stats, effect flags and icons.
if (update)
@@ -685,31 +776,61 @@ public class EffectList
boolean update = false;
if (hasBuffs())
{
_buffs.stream().filter(info -> !info.getSkill().isStayOnSubclassChange()).forEach(info -> stopAndRemove(true, info, _buffs));
for (BuffInfo info : _buffs)
{
if (!info.getSkill().isStayOnSubclassChange())
{
stopAndRemove(true, info, _buffs);
}
}
update = true;
}
if (hasTriggered())
{
_triggered.stream().filter(info -> !info.getSkill().isStayOnSubclassChange()).forEach(info -> stopAndRemove(true, info, _triggered));
for (BuffInfo info : _triggered)
{
if (!info.getSkill().isStayOnSubclassChange())
{
stopAndRemove(true, info, _triggered);
}
}
update = true;
}
if (hasDebuffs())
{
_debuffs.stream().filter(info -> !info.getSkill().isStayOnSubclassChange()).forEach(info -> stopAndRemove(true, info, _debuffs));
for (BuffInfo info : _debuffs)
{
if (!info.getSkill().isStayOnSubclassChange())
{
stopAndRemove(true, info, _debuffs);
}
}
update = true;
}
if (hasDances())
{
_dances.stream().filter(info -> !info.getSkill().isStayOnSubclassChange()).forEach(info -> stopAndRemove(true, info, _dances));
for (BuffInfo info : _dances)
{
if (!info.getSkill().isStayOnSubclassChange())
{
stopAndRemove(true, info, _dances);
}
}
update = true;
}
if (hasToggles())
{
_toggles.stream().filter(info -> !info.getSkill().isStayOnSubclassChange()).forEach(info -> stopAndRemove(true, info, _toggles));
for (BuffInfo info : _toggles)
{
if (!info.getSkill().isStayOnSubclassChange())
{
stopAndRemove(true, info, _toggles);
}
}
update = true;
}
@@ -802,39 +923,72 @@ public class EffectList
boolean update = false;
final Consumer<BuffInfo> action = info ->
{
if (info.getEffects().stream().anyMatch(effect -> (effect != null) && (effect.getEffectType() == type)))
for (AbstractEffect effect : info.getEffects())
{
stopAndRemove(info);
if ((effect != null) && (effect.getEffectType() == type))
{
stopAndRemove(info);
}
}
};
if (hasBuffs())
{
_buffs.stream().filter(Objects::nonNull).forEach(action);
for (BuffInfo info : _buffs)
{
if (info != null)
{
action.accept(info);
}
}
update = true;
}
if (hasTriggered())
{
_triggered.stream().filter(Objects::nonNull).forEach(action);
for (BuffInfo info : _triggered)
{
if (info != null)
{
action.accept(info);
}
}
update = true;
}
if (hasDances())
{
_dances.stream().filter(Objects::nonNull).forEach(action);
for (BuffInfo info : _dances)
{
if (info != null)
{
action.accept(info);
}
}
update = true;
}
if (hasToggles())
{
_toggles.stream().filter(Objects::nonNull).forEach(action);
for (BuffInfo info : _toggles)
{
if (info != null)
{
action.accept(info);
}
}
update = true;
}
if (hasDebuffs())
{
_debuffs.stream().filter(Objects::nonNull).forEach(action);
for (BuffInfo info : _debuffs)
{
if (info != null)
{
action.accept(info);
}
}
update = true;
}
@@ -914,33 +1068,64 @@ public class EffectList
}
boolean update = false;
if (hasBuffs())
{
_buffs.stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(true, info, _buffs));
for (BuffInfo info : _buffs)
{
if (info.getSkill().isRemovedOnAnyActionExceptMove())
{
stopAndRemove(true, info, _buffs);
}
}
update = true;
}
if (hasTriggered())
{
_triggered.stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(true, info, _triggered));
for (BuffInfo info : _triggered)
{
if (info.getSkill().isRemovedOnAnyActionExceptMove())
{
stopAndRemove(true, info, _triggered);
}
}
update = true;
}
if (hasDebuffs())
{
_debuffs.stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(true, info, _debuffs));
for (BuffInfo info : _debuffs)
{
if (info.getSkill().isRemovedOnAnyActionExceptMove())
{
stopAndRemove(true, info, _debuffs);
}
}
update = true;
}
if (hasDances())
{
_dances.stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(true, info, _dances));
for (BuffInfo info : _dances)
{
if (info.getSkill().isRemovedOnAnyActionExceptMove())
{
stopAndRemove(true, info, _dances);
}
}
update = true;
}
if (hasToggles())
{
_toggles.stream().filter(info -> info.getSkill().isRemovedOnAnyActionExceptMove()).forEach(info -> stopAndRemove(true, info, _toggles));
for (BuffInfo info : _toggles)
{
if (info.getSkill().isRemovedOnAnyActionExceptMove())
{
stopAndRemove(true, info, _toggles);
}
}
update = true;
}
@@ -960,34 +1145,65 @@ public class EffectList
{
if (hasBuffs())
{
_buffs.stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(true, info, _buffs));
for (BuffInfo info : _buffs)
{
if ((info != null) && info.getSkill().isRemovedOnDamage())
{
stopAndRemove(true, info, _buffs);
}
}
update = true;
}
if (hasTriggered())
{
_triggered.stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(true, info, _triggered));
for (BuffInfo info : _triggered)
{
if ((info != null) && info.getSkill().isRemovedOnDamage())
{
stopAndRemove(true, info, _triggered);
}
}
update = true;
}
if (hasDances())
{
_dances.stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(true, info, _dances));
for (BuffInfo info : _dances)
{
if ((info != null) && info.getSkill().isRemovedOnDamage())
{
stopAndRemove(true, info, _dances);
}
}
update = true;
}
if (hasToggles())
{
_toggles.stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(true, info, _toggles));
for (BuffInfo info : _toggles)
{
if ((info != null) && info.getSkill().isRemovedOnDamage())
{
stopAndRemove(true, info, _toggles);
}
}
update = true;
}
}
if (_hasDebuffsRemovedOnDamage && hasDebuffs())
{
_debuffs.stream().filter(Objects::nonNull).filter(info -> info.getSkill().isRemovedOnDamage()).forEach(info -> stopAndRemove(true, info, _debuffs));
for (BuffInfo info : _debuffs)
{
if ((info != null) && info.getSkill().isRemovedOnDamage())
{
stopAndRemove(true, info, _debuffs);
}
}
update = true;
}
// Update effect flags and icons.
updateEffectList(update);
}
@@ -1179,13 +1395,16 @@ public class EffectList
}
// Puts the effects in the list.
_passives.stream().filter(b -> b.getSkill().getId() == skill.getId()).forEach(b ->
for (BuffInfo b : _passives)
{
// Removes the old stats from the creature if the skill was present.
b.setInUse(false);
b.removeStats();
_passives.remove(b);
});
if (b.getSkill().getId() == skill.getId())
{
b.setInUse(false);
b.removeStats();
_passives.remove(b);
}
}
_passives.add(info);

View File

@@ -314,7 +314,13 @@ public class Party extends AbstractPlayerGroup
msg.addString(player.getName());
broadcastPacket(msg);
_members.stream().filter(member -> member != player).forEach(member -> member.sendPacket(new PartySmallWindowAdd(player, this)));
for (PlayerInstance member : _members)
{
if (member != player)
{
member.sendPacket(new PartySmallWindowAdd(player, this));
}
}
// send the position of all party members to the new party member
// player.sendPacket(new PartyMemberPosition(this));

View File

@@ -438,8 +438,16 @@ public class SchemeBufferInstance extends Npc
return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1);
}
private static long getCountOf(List<Integer> skills, boolean dances)
private static int getCountOf(List<Integer> skills, boolean dances)
{
return skills.stream().filter(sId -> SkillData.getInstance().getSkill(sId, 1).isDance() == dances).count();
int count = 0;
for (int skillId : skills)
{
if (SkillData.getInstance().getSkill(skillId, 1).isDance() == dances)
{
count++;
}
}
return count;
}
}

View File

@@ -57,7 +57,15 @@ public class CubicHeal implements Runnable
try
{
final Skill skill = _cubic.getSkills().stream().filter(s -> s.getId() == CubicInstance.SKILL_CUBIC_HEAL).findFirst().orElse(null);
Skill skill = null;
for (Skill s : _cubic.getSkills())
{
if (s.getId() == CubicInstance.SKILL_CUBIC_HEAL)
{
skill = s;
break;
}
}
if (skill == null)
{
return;

View File

@@ -78,12 +78,27 @@ public class ListenersContainer
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{
getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe);
for (AbstractEventListener listener : getListeners(type))
{
if (filter.test(listener))
{
listener.unregisterMe();
}
}
}
public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{
getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe));
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{
if (filter.test(listener))
{
listener.unregisterMe();
}
}
}
}
public boolean hasListener(EventType type)

View File

@@ -16,11 +16,11 @@
*/
package org.l2jmobius.gameserver.model.instancezone;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.model.StatSet;
@@ -169,7 +169,15 @@ public class InstanceWorld
*/
public List<Npc> getAliveNpcs()
{
return _instance.getNpcs().stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toList());
final List<Npc> result = new ArrayList<>();
for (Npc npc : _instance.getNpcs())
{
if (npc.getCurrentHp() > 0)
{
result.add(npc);
}
}
return result;
}
/**
@@ -179,7 +187,15 @@ public class InstanceWorld
*/
public List<Npc> getNpcs(int... id)
{
return _instance.getNpcs().stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList());
final List<Npc> result = new ArrayList<>();
for (Npc npc : _instance.getNpcs())
{
if (CommonUtil.contains(id, npc.getId()))
{
result.add(npc);
}
}
return result;
}
/**
@@ -190,9 +206,18 @@ public class InstanceWorld
* @return list of filtered NPCs from instance
*/
@SafeVarargs
@SuppressWarnings("unchecked")
public final <T extends Creature> List<T> getNpcs(Class<T> clazz, int... ids)
{
return _instance.getNpcs().stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList());
final List<T> result = new ArrayList<>();
for (Npc npc : _instance.getNpcs())
{
if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc))
{
result.add((T) npc);
}
}
return result;
}
/**
@@ -203,9 +228,18 @@ public class InstanceWorld
* @return list of filtered NPCs from instance
*/
@SafeVarargs
@SuppressWarnings("unchecked")
public final <T extends Creature> List<T> getAliveNpcs(Class<T> clazz, int... ids)
{
return _instance.getNpcs().stream().filter(n -> ((ids.length == 0) || CommonUtil.contains(ids, n.getId())) && (n.getCurrentHp() > 0)).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList());
final List<T> result = new ArrayList<>();
for (Npc npc : _instance.getNpcs())
{
if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc))
{
result.add((T) npc);
}
}
return result;
}
/**
@@ -215,7 +249,15 @@ public class InstanceWorld
*/
public List<Npc> getAliveNpcs(int... id)
{
return _instance.getNpcs().stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList());
final List<Npc> result = new ArrayList<>();
for (Npc npc : _instance.getNpcs())
{
if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId()))
{
result.add(npc);
}
}
return result;
}
/**
@@ -225,7 +267,14 @@ public class InstanceWorld
*/
public Npc getNpc(int id)
{
return _instance.getNpcs().stream().filter(n -> n.getId() == id).findFirst().orElse(null);
for (Npc npc : _instance.getNpcs())
{
if (npc.getId() == id)
{
return npc;
}
}
return null;
}
/**

View File

@@ -88,7 +88,16 @@ public abstract class ItemContainer
{
filter = filter.and(additionalFilter);
}
return (int) _items.stream().filter(filter).count();
int count = 0;
for (ItemInstance item : _items)
{
if (filter.test(item))
{
count++;
}
}
return count;
}
/**

View File

@@ -2574,7 +2574,13 @@ public class Quest extends AbstractScript implements IIdentifiable
}
else
{
getListeners().stream().filter(listener -> listener.getType() == EventType.ON_PLAYER_LOGIN).forEach(AbstractEventListener::unregisterMe);
for (AbstractEventListener listener : getListeners())
{
if (listener.getType() == EventType.ON_PLAYER_LOGIN)
{
listener.unregisterMe();
}
}
}
}