From 80455310151d9f6188fb8988ea6d2c80a4b41a16 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 12 Nov 2017 01:30:17 +0000 Subject: [PATCH] Minor Siege improvements. Contributed by Liamxroy. --- .../l2jmobius/gameserver/model/L2Clan.java | 2 + .../gameserver/model/entity/Siege.java | 143 +++++------------- .../l2jmobius/gameserver/model/L2Clan.java | 2 + .../gameserver/model/entity/Siege.java | 143 +++++------------- .../l2jmobius/gameserver/model/L2Clan.java | 2 + .../gameserver/model/entity/Siege.java | 143 +++++------------- .../l2jmobius/gameserver/model/L2Clan.java | 2 + .../gameserver/model/entity/Siege.java | 143 +++++------------- .../l2jmobius/gameserver/model/L2Clan.java | 2 + .../gameserver/model/entity/Siege.java | 143 +++++------------- 10 files changed, 200 insertions(+), 525 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2Clan.java index a79ba1827b..53d834f067 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.atomic.AtomicInteger; @@ -663,6 +664,7 @@ public class L2Clan implements IIdentifiable, INamable .filter(member -> member.getObjectId() != exclude) .filter(L2ClanMember::isOnline) .map(L2ClanMember::getPlayerInstance) + .filter(Objects::nonNull) .collect(Collectors.toList()); //@formatter:on } diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/entity/Siege.java index 4d1d933e3a..664be1c395 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/entity/Siege.java @@ -24,11 +24,13 @@ import java.util.Calendar; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; @@ -545,12 +547,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getDefenderClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } @@ -559,12 +558,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getAttackerClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } } @@ -583,11 +579,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -648,11 +639,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -820,25 +806,14 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getAttackerClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getAttackerClans().stream() + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -854,29 +829,15 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getDefenderClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - if (clan.getId() != getCastle().getOwnerId()) - { - continue; - } - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getDefenderClans().stream() + .filter(siegeclan -> siegeclan.getClanId() == _castle.getOwnerId()) + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -884,21 +845,7 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - final List players = new ArrayList<>(); - - for (L2PcInstance player : getCastle().getZone().getPlayersInside()) - { - if (player == null) - { - continue; - } - - if (!player.isInSiege()) - { - players.add(player); - } - } - return players; + return getCastle().getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); } /** @@ -907,11 +854,7 @@ public class Siege implements Siegable */ public void killedCT(L2Npc ct) { - _controlTowerCount--; - if (_controlTowerCount < 0) - { - _controlTowerCount = 0; - } + _controlTowerCount = Math.max(_controlTowerCount - 1, 0); } /** @@ -920,17 +863,7 @@ public class Siege implements Siegable */ public void killedFlag(L2Npc flag) { - if (flag == null) - { - return; - } - for (L2SiegeClan clan : getAttackerClans()) - { - if (clan.removeFlag(flag)) - { - return; - } - } + getAttackerClans().forEach(siegeClan -> siegeClan.removeFlag(flag)); } /** @@ -1538,18 +1471,18 @@ public class Siege implements Siegable */ private void spawnControlTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); _controlTowers.add((L2ControlTowerInstance) spawn.doSpawn()); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); } _controlTowerCount = _controlTowers.size(); } @@ -1559,9 +1492,9 @@ public class Siege implements Siegable */ private void spawnFlameTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); @@ -1570,10 +1503,10 @@ public class Siege implements Siegable tower.setZoneList(ts.getZoneList()); _flameTowers.add(tower); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); } } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2Clan.java index d274d275d8..47de55dbde 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.atomic.AtomicInteger; @@ -664,6 +665,7 @@ public class L2Clan implements IIdentifiable, INamable .filter(member -> member.getObjectId() != exclude) .filter(L2ClanMember::isOnline) .map(L2ClanMember::getPlayerInstance) + .filter(Objects::nonNull) .collect(Collectors.toList()); //@formatter:on } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/entity/Siege.java index 25e31c2dfd..00ff234699 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/entity/Siege.java @@ -24,11 +24,13 @@ import java.util.Calendar; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; @@ -545,12 +547,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getDefenderClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } @@ -559,12 +558,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getAttackerClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } } @@ -583,11 +579,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -648,11 +639,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -820,25 +806,14 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getAttackerClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getAttackerClans().stream() + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -854,29 +829,15 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getDefenderClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - if (clan.getId() != getCastle().getOwnerId()) - { - continue; - } - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getDefenderClans().stream() + .filter(siegeclan -> siegeclan.getClanId() == _castle.getOwnerId()) + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -884,21 +845,7 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - final List players = new ArrayList<>(); - - for (L2PcInstance player : getCastle().getZone().getPlayersInside()) - { - if (player == null) - { - continue; - } - - if (!player.isInSiege()) - { - players.add(player); - } - } - return players; + return getCastle().getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); } /** @@ -907,11 +854,7 @@ public class Siege implements Siegable */ public void killedCT(L2Npc ct) { - _controlTowerCount--; - if (_controlTowerCount < 0) - { - _controlTowerCount = 0; - } + _controlTowerCount = Math.max(_controlTowerCount - 1, 0); } /** @@ -920,17 +863,7 @@ public class Siege implements Siegable */ public void killedFlag(L2Npc flag) { - if (flag == null) - { - return; - } - for (L2SiegeClan clan : getAttackerClans()) - { - if (clan.removeFlag(flag)) - { - return; - } - } + getAttackerClans().forEach(siegeClan -> siegeClan.removeFlag(flag)); } /** @@ -1538,18 +1471,18 @@ public class Siege implements Siegable */ private void spawnControlTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); _controlTowers.add((L2ControlTowerInstance) spawn.doSpawn()); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); } _controlTowerCount = _controlTowers.size(); } @@ -1559,9 +1492,9 @@ public class Siege implements Siegable */ private void spawnFlameTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); @@ -1570,10 +1503,10 @@ public class Siege implements Siegable tower.setZoneList(ts.getZoneList()); _flameTowers.add(tower); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); } } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2Clan.java index d274d275d8..47de55dbde 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.atomic.AtomicInteger; @@ -664,6 +665,7 @@ public class L2Clan implements IIdentifiable, INamable .filter(member -> member.getObjectId() != exclude) .filter(L2ClanMember::isOnline) .map(L2ClanMember::getPlayerInstance) + .filter(Objects::nonNull) .collect(Collectors.toList()); //@formatter:on } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/entity/Siege.java index 25e31c2dfd..00ff234699 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/entity/Siege.java @@ -24,11 +24,13 @@ import java.util.Calendar; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; @@ -545,12 +547,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getDefenderClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } @@ -559,12 +558,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getAttackerClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } } @@ -583,11 +579,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -648,11 +639,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -820,25 +806,14 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getAttackerClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getAttackerClans().stream() + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -854,29 +829,15 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getDefenderClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - if (clan.getId() != getCastle().getOwnerId()) - { - continue; - } - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getDefenderClans().stream() + .filter(siegeclan -> siegeclan.getClanId() == _castle.getOwnerId()) + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -884,21 +845,7 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - final List players = new ArrayList<>(); - - for (L2PcInstance player : getCastle().getZone().getPlayersInside()) - { - if (player == null) - { - continue; - } - - if (!player.isInSiege()) - { - players.add(player); - } - } - return players; + return getCastle().getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); } /** @@ -907,11 +854,7 @@ public class Siege implements Siegable */ public void killedCT(L2Npc ct) { - _controlTowerCount--; - if (_controlTowerCount < 0) - { - _controlTowerCount = 0; - } + _controlTowerCount = Math.max(_controlTowerCount - 1, 0); } /** @@ -920,17 +863,7 @@ public class Siege implements Siegable */ public void killedFlag(L2Npc flag) { - if (flag == null) - { - return; - } - for (L2SiegeClan clan : getAttackerClans()) - { - if (clan.removeFlag(flag)) - { - return; - } - } + getAttackerClans().forEach(siegeClan -> siegeClan.removeFlag(flag)); } /** @@ -1538,18 +1471,18 @@ public class Siege implements Siegable */ private void spawnControlTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); _controlTowers.add((L2ControlTowerInstance) spawn.doSpawn()); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); } _controlTowerCount = _controlTowers.size(); } @@ -1559,9 +1492,9 @@ public class Siege implements Siegable */ private void spawnFlameTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); @@ -1570,10 +1503,10 @@ public class Siege implements Siegable tower.setZoneList(ts.getZoneList()); _flameTowers.add(tower); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2Clan.java index d274d275d8..47de55dbde 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.atomic.AtomicInteger; @@ -664,6 +665,7 @@ public class L2Clan implements IIdentifiable, INamable .filter(member -> member.getObjectId() != exclude) .filter(L2ClanMember::isOnline) .map(L2ClanMember::getPlayerInstance) + .filter(Objects::nonNull) .collect(Collectors.toList()); //@formatter:on } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/entity/Siege.java index 25e31c2dfd..00ff234699 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/entity/Siege.java @@ -24,11 +24,13 @@ import java.util.Calendar; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; @@ -545,12 +547,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getDefenderClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } @@ -559,12 +558,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getAttackerClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } } @@ -583,11 +579,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -648,11 +639,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -820,25 +806,14 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getAttackerClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getAttackerClans().stream() + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -854,29 +829,15 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getDefenderClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - if (clan.getId() != getCastle().getOwnerId()) - { - continue; - } - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getDefenderClans().stream() + .filter(siegeclan -> siegeclan.getClanId() == _castle.getOwnerId()) + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -884,21 +845,7 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - final List players = new ArrayList<>(); - - for (L2PcInstance player : getCastle().getZone().getPlayersInside()) - { - if (player == null) - { - continue; - } - - if (!player.isInSiege()) - { - players.add(player); - } - } - return players; + return getCastle().getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); } /** @@ -907,11 +854,7 @@ public class Siege implements Siegable */ public void killedCT(L2Npc ct) { - _controlTowerCount--; - if (_controlTowerCount < 0) - { - _controlTowerCount = 0; - } + _controlTowerCount = Math.max(_controlTowerCount - 1, 0); } /** @@ -920,17 +863,7 @@ public class Siege implements Siegable */ public void killedFlag(L2Npc flag) { - if (flag == null) - { - return; - } - for (L2SiegeClan clan : getAttackerClans()) - { - if (clan.removeFlag(flag)) - { - return; - } - } + getAttackerClans().forEach(siegeClan -> siegeClan.removeFlag(flag)); } /** @@ -1538,18 +1471,18 @@ public class Siege implements Siegable */ private void spawnControlTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); _controlTowers.add((L2ControlTowerInstance) spawn.doSpawn()); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); } _controlTowerCount = _controlTowers.size(); } @@ -1559,9 +1492,9 @@ public class Siege implements Siegable */ private void spawnFlameTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); @@ -1570,10 +1503,10 @@ public class Siege implements Siegable tower.setZoneList(ts.getZoneList()); _flameTowers.add(tower); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2Clan.java index 169c3b5de6..f198af54fd 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.atomic.AtomicInteger; @@ -664,6 +665,7 @@ public class L2Clan implements IIdentifiable, INamable .filter(member -> member.getObjectId() != exclude) .filter(L2ClanMember::isOnline) .map(L2ClanMember::getPlayerInstance) + .filter(Objects::nonNull) .collect(Collectors.toList()); //@formatter:on } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/entity/Siege.java index 4d1d933e3a..664be1c395 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/entity/Siege.java @@ -24,11 +24,13 @@ import java.util.Calendar; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import com.l2jmobius.Config; import com.l2jmobius.commons.database.DatabaseFactory; @@ -545,12 +547,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getDefenderClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } @@ -559,12 +558,9 @@ public class Siege implements Siegable for (L2SiegeClan siegeClans : getAttackerClans()) { final L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId()); - for (L2PcInstance member : clan.getOnlineMembers(0)) + if (clan != null) { - if (member != null) - { - member.sendPacket(message); - } + clan.getOnlineMembers(0).forEach(message::sendTo); } } } @@ -583,11 +579,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -648,11 +639,6 @@ public class Siege implements Siegable clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); for (L2PcInstance member : clan.getOnlineMembers(0)) { - if (member == null) - { - continue; - } - if (clear) { member.setSiegeState((byte) 0); @@ -820,25 +806,14 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getAttackerClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getAttackerClans().stream() + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -854,29 +829,15 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - final List players = new ArrayList<>(); - L2Clan clan; - for (L2SiegeClan siegeclan : getDefenderClans()) - { - clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); - if (clan.getId() != getCastle().getOwnerId()) - { - continue; - } - for (L2PcInstance player : clan.getOnlineMembers(0)) - { - if (player == null) - { - continue; - } - - if (player.isInSiege()) - { - players.add(player); - } - } - } - return players; + //@formatter:off + return getDefenderClans().stream() + .filter(siegeclan -> siegeclan.getClanId() == _castle.getOwnerId()) + .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) + .filter(Objects::nonNull) + .flatMap(clan -> clan.getOnlineMembers(0).stream()) + .filter(L2PcInstance::isInSiege) + .collect(Collectors.toList()); + //@formatter:on } /** @@ -884,21 +845,7 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - final List players = new ArrayList<>(); - - for (L2PcInstance player : getCastle().getZone().getPlayersInside()) - { - if (player == null) - { - continue; - } - - if (!player.isInSiege()) - { - players.add(player); - } - } - return players; + return getCastle().getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); } /** @@ -907,11 +854,7 @@ public class Siege implements Siegable */ public void killedCT(L2Npc ct) { - _controlTowerCount--; - if (_controlTowerCount < 0) - { - _controlTowerCount = 0; - } + _controlTowerCount = Math.max(_controlTowerCount - 1, 0); } /** @@ -920,17 +863,7 @@ public class Siege implements Siegable */ public void killedFlag(L2Npc flag) { - if (flag == null) - { - return; - } - for (L2SiegeClan clan : getAttackerClans()) - { - if (clan.removeFlag(flag)) - { - return; - } - } + getAttackerClans().forEach(siegeClan -> siegeClan.removeFlag(flag)); } /** @@ -1538,18 +1471,18 @@ public class Siege implements Siegable */ private void spawnControlTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getControlTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); _controlTowers.add((L2ControlTowerInstance) spawn.doSpawn()); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn control tower! " + e); } _controlTowerCount = _controlTowers.size(); } @@ -1559,9 +1492,9 @@ public class Siege implements Siegable */ private void spawnFlameTower() { - for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) + try { - try + for (TowerSpawn ts : SiegeManager.getInstance().getFlameTowers(getCastle().getResidenceId())) { final L2Spawn spawn = new L2Spawn(ts.getId()); spawn.setLocation(ts.getLocation()); @@ -1570,10 +1503,10 @@ public class Siege implements Siegable tower.setZoneList(ts.getZoneList()); _flameTowers.add(tower); } - catch (Exception e) - { - _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); - } + } + catch (Exception e) + { + _log.warning(getClass().getSimpleName() + ": Cannot spawn flame tower! " + e); } }