From cf0ee224f8330b8484015a2592f2a944bb5bdb6c Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 18 Jun 2020 16:09:02 +0000 Subject: [PATCH] Removed most stream filter uses. --- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 16 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 16 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 197 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 12 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 34 +- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 34 +- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 34 +- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 10 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 34 +- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../communitybbs/Manager/MailBBSManager.java | 14 +- .../gameserver/datatables/xml/FishData.java | 12 +- .../gameserver/datatables/xml/HennaData.java | 12 +- .../model/actor/instance/FenceInstance.java | 20 +- .../gameserver/model/quest/Quest.java | 23 +- .../communitybbs/Manager/MailBBSManager.java | 14 +- .../gameserver/datatables/xml/FishData.java | 12 +- .../gameserver/datatables/xml/HennaData.java | 12 +- .../model/actor/instance/FenceInstance.java | 20 +- .../gameserver/model/quest/Quest.java | 23 +- .../data/scripts/ai/bosses/Beleth/Beleth.java | 15 +- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../handlers/communityboard/HomeBoard.java | 4 +- .../effecthandlers/RandomizeHate.java | 11 +- .../gameserver/LoginServerThread.java | 10 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/GrandBossManager.java | 18 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 309 +++++++++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 8 +- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/tasks/cubics/CubicHeal.java | 10 +- .../model/events/ListenersContainer.java | 19 +- .../model/instancezone/InstanceWorld.java | 63 +++- .../model/itemcontainer/ItemContainer.java | 11 +- .../gameserver/model/quest/Quest.java | 8 +- .../data/scripts/ai/bosses/Beleth/Beleth.java | 15 +- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../handlers/communityboard/HomeBoard.java | 4 +- .../effecthandlers/RandomizeHate.java | 11 +- .../gameserver/LoginServerThread.java | 10 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/GrandBossManager.java | 18 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 309 +++++++++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 8 +- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/tasks/cubics/CubicHeal.java | 10 +- .../model/events/ListenersContainer.java | 19 +- .../model/instancezone/InstanceWorld.java | 63 +++- .../model/itemcontainer/ItemContainer.java | 11 +- .../gameserver/model/quest/Quest.java | 8 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 12 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 16 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 12 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 13 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 12 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 13 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 12 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 13 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 12 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 13 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 12 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 13 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- .../ai/others/ClassMaster/ClassMaster.java | 38 ++- .../scripts/custom/SellBuff/SellBuff.java | 56 ++-- .../admincommandhandlers/AdminAdmin.java | 8 +- .../handlers/chathandlers/ChatWorld.java | 24 +- .../handlers/communityboard/HomeBoard.java | 17 +- .../BossDailyMissionHandler.java | 8 +- .../effecthandlers/AbnormalTimeChange.java | 62 ++-- .../effecthandlers/CallTargetParty.java | 8 +- .../handlers/effecthandlers/SummonNpc.java | 8 +- .../handlers/effecthandlers/Synergy.java | 12 +- .../effecthandlers/TeleportToNpc.java | 17 +- .../handlers/itemhandlers/BeastSoulShot.java | 12 +- .../itemhandlers/BeastSpiritShot.java | 12 +- .../playeractions/ServitorAttack.java | 9 +- .../handlers/playeractions/ServitorMove.java | 20 +- .../gameserver/LoginServerThread.java | 10 +- .../org/l2jmobius/gameserver/ai/PlayerAI.java | 17 +- .../org/l2jmobius/gameserver/ai/SummonAI.java | 12 +- .../gameserver/communitybbs/BB/Forum.java | 9 +- .../gameserver/data/sql/impl/ClanTable.java | 9 +- .../gameserver/data/xml/impl/ActionData.java | 10 +- .../gameserver/data/xml/impl/CastleData.java | 14 +- .../data/xml/impl/ClanHallData.java | 27 +- .../data/xml/impl/CombinationItemsData.java | 30 +- .../gameserver/data/xml/impl/NpcData.java | 15 +- .../data/xml/impl/ResidenceFunctionsData.java | 13 +- .../data/xml/impl/SkillTreeData.java | 39 ++- .../gameserver/data/xml/impl/SpawnData.java | 10 +- .../instancemanager/CastleManorManager.java | 11 +- .../instancemanager/ClanEntryManager.java | 47 ++- .../ClanHallAuctionManager.java | 28 +- .../instancemanager/CommissionManager.java | 18 +- .../instancemanager/InstanceManager.java | 29 +- .../instancemanager/MailManager.java | 10 +- .../instancemanager/MatchingRoomManager.java | 58 ++-- .../instancemanager/MentorManager.java | 25 +- .../instancemanager/PremiumManager.java | 26 +- .../instancemanager/SellBuffsManager.java | 9 +- .../instancemanager/SiegeGuardManager.java | 36 +- .../instancemanager/ZoneManager.java | 20 +- .../gameserver/model/EffectList.java | 192 ++++++++--- .../org/l2jmobius/gameserver/model/Party.java | 17 +- .../gameserver/model/actor/Attackable.java | 37 ++- .../gameserver/model/actor/Creature.java | 23 +- .../model/actor/instance/PlayerInstance.java | 71 +++- .../actor/instance/SchemeBufferInstance.java | 12 +- .../model/actor/request/SayuneRequest.java | 9 +- .../model/actor/stat/CreatureStat.java | 93 ++++-- .../model/actor/transform/Transform.java | 38 ++- .../ceremonyofchaos/CeremonyOfChaosEvent.java | 31 +- .../l2jmobius/gameserver/model/clan/Clan.java | 43 ++- .../gameserver/model/entity/Castle.java | 27 +- .../gameserver/model/entity/ClanHall.java | 21 +- .../gameserver/model/entity/Duel.java | 11 +- .../gameserver/model/entity/Siege.java | 64 ++-- .../eventengine/AbstractEventManager.java | 21 +- .../model/events/ListenersContainer.java | 19 +- .../holders/PreparedMultisellListHolder.java | 14 +- .../model/instancezone/Instance.java | 101 +++++- .../model/instancezone/InstanceTemplate.java | 8 +- .../model/itemcontainer/ItemContainer.java | 35 +- .../gameserver/model/items/Item.java | 39 ++- .../matching/CommandChannelMatchingRoom.java | 20 +- .../model/matching/PartyMatchingRoom.java | 20 +- .../model/olympiad/AbstractOlympiadGame.java | 19 +- .../gameserver/model/quest/Quest.java | 8 +- .../model/residences/AbstractResidence.java | 37 ++- .../gameserver/model/skills/Skill.java | 25 +- .../gameserver/model/spawns/SpawnGroup.java | 11 +- .../model/spawns/SpawnTemplate.java | 27 +- .../gameserver/model/zone/ZoneType.java | 18 +- .../RequestPledgeWaitingApplied.java | 8 +- .../clientpackets/RequestStartPledgeWar.java | 18 +- .../RequestSurrenderPledgeWar.java | 13 +- .../adenadistribution/RequestDivideAdena.java | 14 +- .../RequestDivideAdenaCancel.java | 15 +- .../RequestOneDayRewardReceive.java | 13 +- .../ExAbnormalStatusUpdateFromTarget.java | 20 +- .../serverpackets/ExAlchemySkillList.java | 9 +- 1223 files changed, 24696 insertions(+), 7524 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index c55c79b02a..0fae7daf6b 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 449180437e..8bf93bbaf5 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -213,12 +213,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; @@ -245,11 +248,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; @@ -390,29 +396,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; diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index cc555e34cb..d31e74cabf 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index ccb0c90e79..54b18d33e7 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/LoginServerThread.java index e82f429db0..94bebc6bc1 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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; @@ -281,7 +280,14 @@ public class LoginServerThread extends Thread st.addAttribute(ServerStatus.SERVER_AGE, ServerStatus.SERVER_AGE_ALL); } sendPacket(st); - final List playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index bee15561fe..f86996527b 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -137,7 +137,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; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 7473fedc47..73a1820001 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Attackable.java index fc254e124c..db290ddb5a 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -395,11 +393,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -457,10 +471,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Creature.java index ce91d7544e..d7ffde99ee 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5085,7 +5085,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5096,7 +5105,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 34565dbeda..a396fe7eae 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5416,7 +5416,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9663,12 +9670,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11613,7 +11634,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11646,14 +11673,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13704,9 +13735,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13714,7 +13753,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 528d65c6ef..d7eea51ced 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/clan/Clan.java index e43138a4dc..8ff4c84c60 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -662,14 +661,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -677,11 +677,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -3055,7 +3059,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Castle.java index 75163510ca..4d6a5825aa 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1163,7 +1176,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Siege.java index bdd37c1c8c..9b219c3a52 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java index f5eb49c798..6f9ad99431 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -752,7 +751,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -761,7 +773,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -773,7 +798,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6b4854123a..8302c4b64c 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/Quest.java index c7355487c0..5e24908d6b 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2841,7 +2841,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(); + } + } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index c2b2cb5731..c234223bcb 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index ee1538f748..4e9327f49e 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 8a34f4ad28..fedb7cb1a5 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index cc555e34cb..d31e74cabf 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index ccb0c90e79..54b18d33e7 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/LoginServerThread.java index e82f429db0..94bebc6bc1 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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; @@ -281,7 +280,14 @@ public class LoginServerThread extends Thread st.addAttribute(ServerStatus.SERVER_AGE, ServerStatus.SERVER_AGE_ALL); } sendPacket(st); - final List playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index bee15561fe..f86996527b 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -137,7 +137,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; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 7473fedc47..73a1820001 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 13e1e98f63..3292992a5b 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -388,11 +386,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -450,10 +464,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Creature.java index ce91d7544e..d7ffde99ee 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5085,7 +5085,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5096,7 +5105,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 1f2d5da83b..f592e1ac0f 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5422,7 +5422,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9670,12 +9677,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11620,7 +11641,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11653,14 +11680,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13711,9 +13742,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13721,7 +13760,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 528d65c6ef..d7eea51ced 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/clan/Clan.java index dba53353a6..f405468a7b 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -3044,7 +3048,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Castle.java index 75163510ca..4d6a5825aa 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1163,7 +1176,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Siege.java index 5b84c4a276..6d540a2f35 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java index f5eb49c798..6f9ad99431 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -752,7 +751,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -761,7 +773,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -773,7 +798,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6b4854123a..8302c4b64c 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6685c89b98..8163f16914 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2843,7 +2843,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(); + } + } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index c2b2cb5731..c234223bcb 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index ee1538f748..4e9327f49e 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index b9972a1afa..e50fc52a61 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -31,12 +31,12 @@ import org.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayRecei */ public class RequestOneDayRewardReceive implements IClientIncomingPacket { - private int _reward; + private int _id; @Override public boolean read(GameClient client, PacketReader packet) { - _reward = packet.readC(); + _id = packet.readC(); return true; } @@ -49,13 +49,19 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_reward); - if (reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } player.sendPacket(new ExOneDayReceiveRewardList(player)); } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index e17d8de503..192f89b12d 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 48d37408da..8083d4e60e 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index c13f17c227..d08d5557bf 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index cc555e34cb..d31e74cabf 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index ccb0c90e79..54b18d33e7 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 7473fedc47..73a1820001 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 13e1e98f63..3292992a5b 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -388,11 +386,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -450,10 +464,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Creature.java index b6286ceca5..e25daeb242 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5085,7 +5085,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5096,7 +5105,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 2d3eec5641..400fc12091 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5424,7 +5424,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9672,12 +9679,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11622,7 +11643,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11655,14 +11682,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13714,9 +13745,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13724,7 +13763,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 528d65c6ef..d7eea51ced 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/clan/Clan.java index dba53353a6..f405468a7b 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -3044,7 +3048,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Castle.java index 75163510ca..4d6a5825aa 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1163,7 +1176,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Siege.java index 5b84c4a276..6d540a2f35 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java index f5eb49c798..6f9ad99431 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -752,7 +751,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -761,7 +773,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -773,7 +798,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6b4854123a..8302c4b64c 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/quest/Quest.java index 261c06cc14..7abe469de2 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2844,7 +2844,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(); + } + } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index c2b2cb5731..c234223bcb 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index ee1538f748..4e9327f49e 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index b9972a1afa..e50fc52a61 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -31,12 +31,12 @@ import org.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayRecei */ public class RequestOneDayRewardReceive implements IClientIncomingPacket { - private int _reward; + private int _id; @Override public boolean read(GameClient client, PacketReader packet) { - _reward = packet.readC(); + _id = packet.readC(); return true; } @@ -49,13 +49,19 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_reward); - if (reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } player.sendPacket(new ExOneDayReceiveRewardList(player)); } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index e17d8de503..192f89b12d 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 48d37408da..8083d4e60e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index c13f17c227..d08d5557bf 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index cc555e34cb..d31e74cabf 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index ccb0c90e79..54b18d33e7 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index f22a8d191a..0929ab7f5f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 7473fedc47..73a1820001 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java index c1c9a1008b..6f12d5e815 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -479,7 +582,6 @@ public class EffectList stopEffects(i -> i.isAbnormalType(type), true, true); return true; } - return false; } @@ -495,7 +597,6 @@ public class EffectList stopEffects(i -> types.contains(i.getSkill().getAbnormalType()), true, true); return true; } - return false; } @@ -509,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -585,7 +692,6 @@ public class EffectList } } } - return false; } @@ -734,7 +840,6 @@ public class EffectList // Decrease specific buff count increaseDecreaseCount(info, false); - info.getSkill().applyEffectScope(EffectScope.END, info, true, false); } } @@ -927,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -944,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -971,14 +1082,11 @@ public class EffectList final Optional asu = (_owner.isPlayer() && !partyOnly) ? Optional.of(new AbnormalStatusUpdate()) : Optional.empty(); final Optional ps = ((party != null) || _owner.isSummon()) ? Optional.of(new PartySpelled(_owner)) : Optional.empty(); final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); - if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -990,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1020,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 13e1e98f63..3292992a5b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -388,11 +386,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -450,10 +464,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Creature.java index b6286ceca5..e25daeb242 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5085,7 +5085,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5096,7 +5105,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index eda207ae4d..c91cabc2c3 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5420,7 +5420,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9663,12 +9670,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11603,7 +11624,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11636,14 +11663,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13686,9 +13717,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13696,7 +13735,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 528d65c6ef..d7eea51ced 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/clan/Clan.java index dba53353a6..f405468a7b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -3044,7 +3048,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Castle.java index 75163510ca..4d6a5825aa 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1163,7 +1176,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Siege.java index 5b84c4a276..6d540a2f35 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java index 13d78dad6d..c5d90c54d3 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -752,7 +751,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -761,7 +773,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -773,7 +798,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/quest/Quest.java index f5226d67ea..74f94d70ba 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2844,7 +2844,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(); + } + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index c2b2cb5731..c234223bcb 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index ee1538f748..4e9327f49e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index 2cfdd6c827..1d110ac6cd 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -50,13 +50,19 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); - if ((reward == null) || reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } player.sendPacket(new ExConnectedTimeAndGettableReward(player)); player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index e17d8de503..192f89b12d 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 48d37408da..8083d4e60e 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e5efe56d92..26bca53102 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index cc555e34cb..d31e74cabf 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index ccb0c90e79..54b18d33e7 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index f22a8d191a..0929ab7f5f 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 7473fedc47..73a1820001 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index a64a9b0aa2..8729242e0a 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/Party.java index f977f75549..c4e65fb6d2 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/Party.java @@ -332,7 +332,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)); @@ -855,10 +861,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 4c2368afb1..1372c4605b 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -387,11 +385,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -449,10 +463,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java index 5c9ec6e44e..de007f3b17 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5094,7 +5094,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5105,7 +5114,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 43e75df601..83534b1985 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5399,7 +5399,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9650,12 +9657,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11590,7 +11611,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11623,14 +11650,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13675,9 +13706,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13685,7 +13724,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index abd8c4c455..7abf4cab8a 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/clan/Clan.java index 5a9a618eab..5990eb4262 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,18 +20,17 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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.ScheduledFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -574,14 +573,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -589,11 +589,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Castle.java index f5941e519f..171262f552 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1169,7 +1182,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Duel.java index 996be116e4..0e2fd5cd8a 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Siege.java index 5785a31228..e30fae9052 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 0183b272fd..594092b165 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java index e8169a357c..83375155b0 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -753,7 +752,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -762,7 +774,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -774,7 +799,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/quest/Quest.java index 150828ffd9..77d73fdf56 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2844,7 +2844,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(); + } + } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index c2b2cb5731..c234223bcb 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index ee1538f748..4e9327f49e 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index e17d8de503..192f89b12d 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 48d37408da..8083d4e60e 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index fbc90452d7..629d795985 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index cc555e34cb..d31e74cabf 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index ccb0c90e79..54b18d33e7 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index f22a8d191a..0929ab7f5f 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 7473fedc47..73a1820001 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 6288c8b265..79703029bc 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index a64a9b0aa2..8729242e0a 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/Party.java index f977f75549..c4e65fb6d2 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/Party.java @@ -332,7 +332,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)); @@ -855,10 +861,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 4c2368afb1..1372c4605b 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -387,11 +385,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -449,10 +463,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java index 5c9ec6e44e..de007f3b17 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5094,7 +5094,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5105,7 +5114,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index e1f81efaaa..e69992f618 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5399,7 +5399,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9650,12 +9657,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11593,7 +11614,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11626,14 +11653,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13678,9 +13709,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13688,7 +13727,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 528d65c6ef..d7eea51ced 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/clan/Clan.java index 5a9a618eab..5990eb4262 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,18 +20,17 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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.ScheduledFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -574,14 +573,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -589,11 +589,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Castle.java index f5941e519f..171262f552 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1169,7 +1182,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Siege.java index e6c0812a5f..b97172806e 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java index baa1a07392..2612b849a4 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -758,7 +757,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -767,7 +779,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -779,7 +804,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/quest/Quest.java index f5226d67ea..74f94d70ba 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2844,7 +2844,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(); + } + } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index c2b2cb5731..c234223bcb 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index ee1538f748..4e9327f49e 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index e17d8de503..192f89b12d 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index d7aedac1fc..bb56c31997 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index fbc90452d7..629d795985 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index cc555e34cb..d31e74cabf 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index ccb0c90e79..54b18d33e7 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index f22a8d191a..0929ab7f5f 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 9db6c625bf..409c8428f8 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 6288c8b265..79703029bc 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index a64a9b0aa2..8729242e0a 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/Party.java index f977f75549..c4e65fb6d2 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/Party.java @@ -332,7 +332,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)); @@ -855,10 +861,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 4c2368afb1..1372c4605b 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -387,11 +385,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -449,10 +463,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java index 5c9ec6e44e..de007f3b17 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5094,7 +5094,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5105,7 +5114,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 6b15f996ab..b4fcc42fcf 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5400,7 +5400,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9656,12 +9663,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11599,7 +11620,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11632,14 +11659,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13684,9 +13715,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13694,7 +13733,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 528d65c6ef..d7eea51ced 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/clan/Clan.java index 5a9a618eab..5990eb4262 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,18 +20,17 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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.ScheduledFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -574,14 +573,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -589,11 +589,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Castle.java index f5941e519f..171262f552 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1169,7 +1182,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Siege.java index e6c0812a5f..b97172806e 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java index 145ac0e436..be4b944f51 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -759,7 +758,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -768,7 +780,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -780,7 +805,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/quest/Quest.java index f5226d67ea..74f94d70ba 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2844,7 +2844,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(); + } + } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index c2b2cb5731..c234223bcb 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index ee1538f748..4e9327f49e 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index e17d8de503..192f89b12d 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 8cd68ed6a4..bd693ede0a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index c13f17c227..d08d5557bf 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 3d99ba957d..ff15bdff9f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index fc5cd18457..d9d0da9ece 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector.getActingPlayer())).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector.getActingPlayer())) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index 78f01211f6..361bcbc216 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index a9f0cb4b8d..330563516a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 12f2fd12b7..0e7b7dfc40 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index a89c23c24c..3a486c1360 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index f22a8d191a..0929ab7f5f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 89332b2ea2..02151ce332 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -726,11 +725,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 4f7319f59f..e251a896e0 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 6288c8b265..79703029bc 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index a64a9b0aa2..8729242e0a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/Party.java index 0ce51ab4dc..1ff6d77a5e 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/Party.java @@ -331,7 +331,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)); @@ -854,10 +860,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 01fa2bd3c9..91c007bd3b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -387,11 +385,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -449,10 +463,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java index 2584316e7c..d7f25c0ea8 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5093,7 +5093,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5104,7 +5113,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index fd3ac75be7..d3c9cf5f94 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5331,7 +5331,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9637,12 +9644,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11571,7 +11592,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11604,14 +11631,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13656,9 +13687,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13666,7 +13705,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index f6b1fdd6c1..893844d6e8 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -896,36 +895,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 528d65c6ef..d7eea51ced 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -503,7 +509,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -601,12 +615,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/clan/Clan.java index f086d3cc5d..57a0e47799 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,18 +20,17 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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.ScheduledFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -573,14 +572,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -588,11 +588,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Castle.java index f5941e519f..171262f552 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -888,12 +887,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1169,7 +1182,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Siege.java index e6c0812a5f..b97172806e 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 086246cddf..3ffcb3fe6f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java index 145ac0e436..be4b944f51 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -759,7 +758,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -768,7 +780,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -780,7 +805,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/quest/Quest.java index de4c4fec93..81f23d4745 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2854,7 +2854,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(); + } + } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/Skill.java index a1f1e4966b..94f426671a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0c4fb30477..e53496fc49 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index e17d8de503..192f89b12d 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java index 53f9e3abb9..1ee59485de 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java @@ -532,10 +532,18 @@ public class MailBBSManager extends BaseBBSManager final Timestamp ts = new Timestamp(currentDate - 86400000); // Check sender mails based on previous timestamp. If more than 10 mails have been found for today, then cancel the use. - if (getPlayerMails(activeChar.getObjectId()).stream().filter(l -> l.sentDate.after(ts) && (l.location == MailType.SENTBOX)).count() >= 10) + int count = 0; + for (Mail mail : getPlayerMails(activeChar.getObjectId())) { - activeChar.sendPacket(SystemMessageId.NO_MORE_MESSAGES_MAY_BE_SENT_AT_THIS_TIME_EACH_ACCOUNT_IS_ALLOWED_10_MESSAGES_PER_DAY); - return; + if (mail.sentDate.after(ts) && (mail.location == MailType.SENTBOX)) + { + count++; + } + if (count >= 10) + { + activeChar.sendPacket(SystemMessageId.NO_MORE_MESSAGES_MAY_BE_SENT_AT_THIS_TIME_EACH_ACCOUNT_IS_ALLOWED_10_MESSAGES_PER_DAY); + return; + } } // Format recipient names. If more than 5 are found, cancel the mail. diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/FishData.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/FishData.java index f75ab4fb2e..ef8ccfec71 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/FishData.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/FishData.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.datatables.xml; import java.io.File; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -86,8 +85,15 @@ public class FishData implements IXmlReader */ public Fish getFish(int lvl, int type, int group) { - final List fish = _fish.stream().filter(f -> (f.getLevel() == lvl) && (f.getType() == type) && (f.getGroup() == group)).collect(Collectors.toList()); - return fish.get(Rnd.get(fish.size())); + final List result = new ArrayList<>(); + for (Fish fish : _fish) + { + if ((fish.getLevel() == lvl) && (fish.getType() == type) && (fish.getGroup() == group)) + { + result.add(fish); + } + } + return result.get(Rnd.get(result.size())); } public static FishData getInstance() diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java index 757506b1c5..6f1a2b0da4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java @@ -17,10 +17,10 @@ package org.l2jmobius.gameserver.datatables.xml; import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -91,7 +91,15 @@ public class HennaData implements IXmlReader */ public List getAvailableHennasFor(PlayerInstance player) { - return _hennas.values().stream().filter(h -> h.canBeUsedBy(player)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Henna henna : _hennas.values()) + { + if (henna.canBeUsedBy(player)) + { + result.add(henna); + } + } + return result; } public static HennaData getInstance() diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java index d3bff4273a..cc78bd8f63 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java @@ -90,17 +90,19 @@ public class FenceInstance extends WorldObject deleteObjects[i] = new DeleteObject(_heightFences[i]); } - getKnownList().getKnownObjects().values().stream().filter(PlayerInstance.class::isInstance).map(PlayerInstance.class::cast).forEach(player -> + for (WorldObject obj : getKnownList().getKnownObjects().values()) { - for (DeleteObject deleteObject : deleteObjects) + if ((obj != null) && obj.isPlayer()) { - player.sendPacket(deleteObject); + for (DeleteObject deleteObject : deleteObjects) + { + obj.getActingPlayer().sendPacket(deleteObject); + } } - }); + } } decayMe(); - FenceData.getInstance().removeFence(this); return false; } @@ -113,7 +115,13 @@ public class FenceInstance extends WorldObject public void setState(FenceState type) { _state = type; - getKnownList().getKnownObjects().values().stream().filter(PlayerInstance.class::isInstance).map(PlayerInstance.class::cast).forEach(this::sendInfo); + for (WorldObject obj : getKnownList().getKnownObjects().values()) + { + if ((obj != null) && obj.isPlayer()) + { + sendInfo(obj.getActingPlayer()); + } + } } public int getWidth() diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/quest/Quest.java index eb74463563..d25e2c2ec3 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -30,7 +30,6 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; 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; @@ -1354,7 +1353,16 @@ public class Quest extends ManagedScript return (checkPlayerCondition(player, npc, var, value) != null) ? Arrays.asList(player) : Collections.emptyList(); } - return party.getPartyMembers().stream().filter(m -> checkPlayerCondition(m, npc, var, value) != null).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance member : party.getPartyMembers()) + { + if (checkPlayerCondition(member, npc, var, value) != null) + { + result.add(member); + } + } + + return result; } /** @@ -1481,7 +1489,16 @@ public class Quest extends ManagedScript return (checkPlayerState(player, npc, state) != null) ? Arrays.asList(player) : Collections.emptyList(); } - return party.getPartyMembers().stream().filter(m -> checkPlayerState(m, npc, state) != null).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance member : party.getPartyMembers()) + { + if (checkPlayerState(member, npc, state) != null) + { + result.add(member); + } + } + + return result; } /** diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java index 53f9e3abb9..1ee59485de 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/communitybbs/Manager/MailBBSManager.java @@ -532,10 +532,18 @@ public class MailBBSManager extends BaseBBSManager final Timestamp ts = new Timestamp(currentDate - 86400000); // Check sender mails based on previous timestamp. If more than 10 mails have been found for today, then cancel the use. - if (getPlayerMails(activeChar.getObjectId()).stream().filter(l -> l.sentDate.after(ts) && (l.location == MailType.SENTBOX)).count() >= 10) + int count = 0; + for (Mail mail : getPlayerMails(activeChar.getObjectId())) { - activeChar.sendPacket(SystemMessageId.NO_MORE_MESSAGES_MAY_BE_SENT_AT_THIS_TIME_EACH_ACCOUNT_IS_ALLOWED_10_MESSAGES_PER_DAY); - return; + if (mail.sentDate.after(ts) && (mail.location == MailType.SENTBOX)) + { + count++; + } + if (count >= 10) + { + activeChar.sendPacket(SystemMessageId.NO_MORE_MESSAGES_MAY_BE_SENT_AT_THIS_TIME_EACH_ACCOUNT_IS_ALLOWED_10_MESSAGES_PER_DAY); + return; + } } // Format recipient names. If more than 5 are found, cancel the mail. diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/FishData.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/FishData.java index f75ab4fb2e..ef8ccfec71 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/FishData.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/FishData.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.datatables.xml; import java.io.File; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -86,8 +85,15 @@ public class FishData implements IXmlReader */ public Fish getFish(int lvl, int type, int group) { - final List fish = _fish.stream().filter(f -> (f.getLevel() == lvl) && (f.getType() == type) && (f.getGroup() == group)).collect(Collectors.toList()); - return fish.get(Rnd.get(fish.size())); + final List result = new ArrayList<>(); + for (Fish fish : _fish) + { + if ((fish.getLevel() == lvl) && (fish.getType() == type) && (fish.getGroup() == group)) + { + result.add(fish); + } + } + return result.get(Rnd.get(result.size())); } public static FishData getInstance() diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java index 757506b1c5..6f1a2b0da4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/xml/HennaData.java @@ -17,10 +17,10 @@ package org.l2jmobius.gameserver.datatables.xml; import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -91,7 +91,15 @@ public class HennaData implements IXmlReader */ public List getAvailableHennasFor(PlayerInstance player) { - return _hennas.values().stream().filter(h -> h.canBeUsedBy(player)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Henna henna : _hennas.values()) + { + if (henna.canBeUsedBy(player)) + { + result.add(henna); + } + } + return result; } public static HennaData getInstance() diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java index d3bff4273a..cc78bd8f63 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FenceInstance.java @@ -90,17 +90,19 @@ public class FenceInstance extends WorldObject deleteObjects[i] = new DeleteObject(_heightFences[i]); } - getKnownList().getKnownObjects().values().stream().filter(PlayerInstance.class::isInstance).map(PlayerInstance.class::cast).forEach(player -> + for (WorldObject obj : getKnownList().getKnownObjects().values()) { - for (DeleteObject deleteObject : deleteObjects) + if ((obj != null) && obj.isPlayer()) { - player.sendPacket(deleteObject); + for (DeleteObject deleteObject : deleteObjects) + { + obj.getActingPlayer().sendPacket(deleteObject); + } } - }); + } } decayMe(); - FenceData.getInstance().removeFence(this); return false; } @@ -113,7 +115,13 @@ public class FenceInstance extends WorldObject public void setState(FenceState type) { _state = type; - getKnownList().getKnownObjects().values().stream().filter(PlayerInstance.class::isInstance).map(PlayerInstance.class::cast).forEach(this::sendInfo); + for (WorldObject obj : getKnownList().getKnownObjects().values()) + { + if ((obj != null) && obj.isPlayer()) + { + sendInfo(obj.getActingPlayer()); + } + } } public int getWidth() diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java index eb74463563..d25e2c2ec3 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -30,7 +30,6 @@ import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; 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; @@ -1354,7 +1353,16 @@ public class Quest extends ManagedScript return (checkPlayerCondition(player, npc, var, value) != null) ? Arrays.asList(player) : Collections.emptyList(); } - return party.getPartyMembers().stream().filter(m -> checkPlayerCondition(m, npc, var, value) != null).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance member : party.getPartyMembers()) + { + if (checkPlayerCondition(member, npc, var, value) != null) + { + result.add(member); + } + } + + return result; } /** @@ -1481,7 +1489,16 @@ public class Quest extends ManagedScript return (checkPlayerState(player, npc, state) != null) ? Arrays.asList(player) : Collections.emptyList(); } - return party.getPartyMembers().stream().filter(m -> checkPlayerState(m, npc, state) != null).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance member : party.getPartyMembers()) + { + if (checkPlayerState(member, npc, state) != null) + { + result.add(member); + } + } + + return result; } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c04b3996fb..07a2be29a1 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -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; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index beff086781..bcc5ea9c31 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,7 +215,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) @@ -224,7 +224,7 @@ public class HomeBoard implements IParseBoardHandler // not recommend broadcast // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); } - }); + } } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java index 494946d36f..9cf2bb377e 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java @@ -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 aggroList = effectedMob.getAggroList().keySet().stream().filter(c -> c != info.getEffector()).collect(Collectors.toList()); + final List aggroList = new ArrayList<>(); + for (Creature creature : effectedMob.getAggroList().keySet()) + { + if (creature != info.getEffector()) + { + aggroList.add(creature); + } + } if (aggroList.isEmpty()) { return; diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/LoginServerThread.java index 20758d4eb2..6116a5b094 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 81d4ef7bc2..6bb1fac118 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -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; } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 3978cb2eeb..f563653a95 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -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 getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate template : _npcs.values()) + { + if (filter.test(template)) + { + result.add(template); + } + } + return result; } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 214822613d..505bc9bc8b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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 getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java index ad13a7c22e..17535ecdaa 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java @@ -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) diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 4641956dea..319c9cef90 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index edcd544328..bffb622ada 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index b65ab78138..28a267c40b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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 map : _classZones.values()) { - final Optional 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 getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java index 5b3251b486..a42851d4f1 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java @@ -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; @@ -354,35 +353,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; } @@ -622,31 +665,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; } @@ -662,12 +735,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) @@ -684,31 +775,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; } @@ -801,39 +922,72 @@ public class EffectList boolean update = false; final Consumer 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; } @@ -913,33 +1067,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; } @@ -959,34 +1144,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); } @@ -1178,13 +1394,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); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/Party.java index 9f2fe0ff32..8c180df114 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/Party.java @@ -301,7 +301,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)); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ab59afb4e3..c3913dc244 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -438,8 +438,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java index 87e2026ad7..31ff7cf641 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java @@ -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; diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index 93ead43d1d..45868b50eb 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -78,12 +78,27 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } public boolean hasListener(EventType type) diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java index 08906b6b72..ab60a25f4c 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java @@ -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 getAliveNpcs() { - return _instance.getNpcs().stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toList()); + final List 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 getNpcs(int... id) { - return _instance.getNpcs().stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List 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 List getNpcs(Class 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 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 List getAliveNpcs(Class 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 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 getAliveNpcs(int... id) { - return _instance.getNpcs().stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List 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; } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index 324f5cbcbb..b669822a21 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -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; } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/quest/Quest.java index b222302e0a..8c54257fa6 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2531,7 +2531,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(); + } + } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c04b3996fb..07a2be29a1 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -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; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index f10367cbad..494962ca69 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -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())); } - }); + } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java index 494946d36f..9cf2bb377e 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/effecthandlers/RandomizeHate.java @@ -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 aggroList = effectedMob.getAggroList().keySet().stream().filter(c -> c != info.getEffector()).collect(Collectors.toList()); + final List aggroList = new ArrayList<>(); + for (Creature creature : effectedMob.getAggroList().keySet()) + { + if (creature != info.getEffector()) + { + aggroList.add(creature); + } + } if (aggroList.isEmpty()) { return; diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/LoginServerThread.java index 20758d4eb2..6116a5b094 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 81d4ef7bc2..6bb1fac118 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -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; } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 3978cb2eeb..f563653a95 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -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 getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate template : _npcs.values()) + { + if (filter.test(template)) + { + result.add(template); + } + } + return result; } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 214822613d..505bc9bc8b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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 getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java index ad13a7c22e..17535ecdaa 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/GrandBossManager.java @@ -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) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 4641956dea..319c9cef90 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index 50d2d41993..bb69dc36c1 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index b65ab78138..28a267c40b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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 map : _classZones.values()) { - final Optional 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 getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java index 26953480ac..7af9bbcfe2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java @@ -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 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); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/Party.java index 3632d6aad6..cef5ac6260 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/Party.java @@ -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)); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ab59afb4e3..c3913dc244 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -438,8 +438,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java index 87e2026ad7..31ff7cf641 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/tasks/cubics/CubicHeal.java @@ -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; diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index 93ead43d1d..45868b50eb 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -78,12 +78,27 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } public boolean hasListener(EventType type) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java index 08906b6b72..ab60a25f4c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/instancezone/InstanceWorld.java @@ -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 getAliveNpcs() { - return _instance.getNpcs().stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toList()); + final List 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 getNpcs(int... id) { - return _instance.getNpcs().stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List 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 List getNpcs(Class 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 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 List getAliveNpcs(Class 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 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 getAliveNpcs(int... id) { - return _instance.getNpcs().stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List 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; } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index 324f5cbcbb..b669822a21 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -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; } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/quest/Quest.java index 37a991fd4d..38f4c2aae2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -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(); + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 165a4c6638..ba7a828d4c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -769,7 +769,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1066,11 +1074,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index c7eae4ffea..a4d4d5b612 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,16 +215,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index d156b92959..361bcbc216 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { - final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.max(abnormalCount - 1, _skillLevelScaleTo)); + final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index e2192563f8..86cd57cb70 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 7a9993d10d..d155cc73f5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index 7ac08a33bf..4dc3748502 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 7019324027..59ce78de9d 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -739,11 +738,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 8b63a0c0b7..cf12a37cc7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Attackable.java index f27bde1f08..cda69f5dcd 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -388,11 +386,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -450,10 +464,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Creature.java index a41e892485..e706a20968 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5084,7 +5084,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5095,7 +5104,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 43de2c966a..6768b4baf9 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5387,7 +5387,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9604,12 +9611,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11465,7 +11486,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11498,14 +11525,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13560,9 +13591,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13570,7 +13609,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ca38d13322..2d859e0976 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -437,8 +437,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 1eb09ebcb7..10e71f2765 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -886,36 +885,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 8731352c3d..d6440737f3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -497,7 +503,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -595,12 +609,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/clan/Clan.java index 8b4978552d..4f7f382371 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -2907,7 +2911,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Castle.java index c6b7b3aebe..1352818bc0 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -889,12 +888,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1162,7 +1175,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Siege.java index f714cb5ce1..32ec9166df 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java index b67d114258..96f2a36697 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -752,7 +751,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -761,7 +773,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -773,7 +798,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6ac59b6f71..232e51e981 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2798,7 +2798,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(); + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0dd89633fe..e3acfe8816 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index b9972a1afa..e50fc52a61 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -31,12 +31,12 @@ import org.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayRecei */ public class RequestOneDayRewardReceive implements IClientIncomingPacket { - private int _reward; + private int _id; @Override public boolean read(GameClient client, PacketReader packet) { - _reward = packet.readC(); + _id = packet.readC(); return true; } @@ -49,13 +49,19 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_reward); - if (reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } player.sendPacket(new ExOneDayReceiveRewardList(player)); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 165a4c6638..ba7a828d4c 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -769,7 +769,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1066,11 +1074,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index c7eae4ffea..a4d4d5b612 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,16 +215,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index d156b92959..361bcbc216 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { - final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.max(abnormalCount - 1, _skillLevelScaleTo)); + final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index e2192563f8..86cd57cb70 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 7a9993d10d..d155cc73f5 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index 7ac08a33bf..4dc3748502 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 7019324027..59ce78de9d 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -739,11 +738,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 8b63a0c0b7..cf12a37cc7 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Attackable.java index f27bde1f08..cda69f5dcd 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -388,11 +386,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -450,10 +464,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Creature.java index a41e892485..e706a20968 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5084,7 +5084,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5095,7 +5104,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 069c5e7758..b8d005fb2d 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5387,7 +5387,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9604,12 +9611,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11465,7 +11486,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11498,14 +11525,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13560,9 +13591,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13570,7 +13609,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ca38d13322..2d859e0976 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -437,8 +437,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 1eb09ebcb7..10e71f2765 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -886,36 +885,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 8731352c3d..d6440737f3 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -497,7 +503,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -595,12 +609,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/clan/Clan.java index 8b4978552d..4f7f382371 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -2907,7 +2911,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Castle.java index c6b7b3aebe..1352818bc0 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -889,12 +888,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1162,7 +1175,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Siege.java index f714cb5ce1..32ec9166df 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java index b67d114258..96f2a36697 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -752,7 +751,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -761,7 +773,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -773,7 +798,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6ac59b6f71..232e51e981 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2798,7 +2798,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(); + } + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0dd89633fe..e3acfe8816 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index 2cfdd6c827..d23f5d6ac1 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -50,13 +50,20 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); - if ((reward == null) || reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } + player.sendPacket(new ExConnectedTimeAndGettableReward(player)); player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 165a4c6638..ba7a828d4c 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -769,7 +769,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1066,11 +1074,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index c7eae4ffea..a4d4d5b612 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,16 +215,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index d156b92959..361bcbc216 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { - final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.max(abnormalCount - 1, _skillLevelScaleTo)); + final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index e2192563f8..86cd57cb70 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 7a9993d10d..d155cc73f5 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index 7ac08a33bf..4dc3748502 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 7019324027..59ce78de9d 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -739,11 +738,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 8b63a0c0b7..cf12a37cc7 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Attackable.java index f27bde1f08..cda69f5dcd 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -388,11 +386,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -450,10 +464,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java index 2e6341f7c8..e68abb651a 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5093,7 +5093,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5104,7 +5113,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 3a32204f51..86712f6bc7 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5372,7 +5372,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9590,12 +9597,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11451,7 +11472,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11484,14 +11511,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13545,9 +13576,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13555,7 +13594,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ca38d13322..2d859e0976 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -437,8 +437,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 1eb09ebcb7..10e71f2765 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -886,36 +885,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 8731352c3d..d6440737f3 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -497,7 +503,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -595,12 +609,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/clan/Clan.java index 35e5fdda3a..8c8d794624 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -2907,7 +2911,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Castle.java index c6b7b3aebe..1352818bc0 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -889,12 +888,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1162,7 +1175,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Siege.java index f714cb5ce1..32ec9166df 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java index e2f9a6d25b..94eedcb5c2 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -753,7 +752,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -762,7 +774,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -774,7 +799,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6ac59b6f71..232e51e981 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2798,7 +2798,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(); + } + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0dd89633fe..e3acfe8816 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index 2cfdd6c827..d23f5d6ac1 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -50,13 +50,20 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); - if ((reward == null) || reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } + player.sendPacket(new ExConnectedTimeAndGettableReward(player)); player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 165a4c6638..ba7a828d4c 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -769,7 +769,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1066,11 +1074,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index c7eae4ffea..a4d4d5b612 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,16 +215,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index d156b92959..361bcbc216 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { - final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.max(abnormalCount - 1, _skillLevelScaleTo)); + final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index e2192563f8..86cd57cb70 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 7a9993d10d..d155cc73f5 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index 7ac08a33bf..4dc3748502 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index a09820db5d..f71a6c935f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -742,11 +741,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 8b63a0c0b7..cf12a37cc7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java index b22fb28b74..ea208758c7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -390,11 +388,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -452,10 +466,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java index 6649cf1e7c..f1f6aeef1d 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5115,7 +5115,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5126,7 +5135,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 73cb3e4766..13ef3bb3fc 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5383,7 +5383,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9617,12 +9624,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11493,7 +11514,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11526,14 +11553,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13587,9 +13618,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13597,7 +13636,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ca38d13322..2d859e0976 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -437,8 +437,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 1eb09ebcb7..10e71f2765 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -886,36 +885,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 8731352c3d..d6440737f3 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -497,7 +503,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -595,12 +609,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/clan/Clan.java index 35e5fdda3a..8c8d794624 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -2907,7 +2911,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Castle.java index c6b7b3aebe..1352818bc0 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -889,12 +888,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1162,7 +1175,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Siege.java index f714cb5ce1..32ec9166df 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 086246cddf..3ffcb3fe6f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java index dd4528790b..156141c7bf 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -755,7 +754,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -764,7 +776,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -776,7 +801,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6ac59b6f71..232e51e981 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2798,7 +2798,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(); + } + } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0dd89633fe..e3acfe8816 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index 2cfdd6c827..d23f5d6ac1 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -50,13 +50,20 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); - if ((reward == null) || reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } + player.sendPacket(new ExConnectedTimeAndGettableReward(player)); player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 165a4c6638..ba7a828d4c 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -769,7 +769,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1066,11 +1074,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index c7eae4ffea..a4d4d5b612 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,16 +215,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index d156b92959..361bcbc216 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { - final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.max(abnormalCount - 1, _skillLevelScaleTo)); + final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index e2192563f8..86cd57cb70 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 7a9993d10d..d155cc73f5 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index 7ac08a33bf..4dc3748502 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index a09820db5d..f71a6c935f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -742,11 +741,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 8b63a0c0b7..cf12a37cc7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java index b22fb28b74..ea208758c7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -390,11 +388,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -452,10 +466,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java index 6649cf1e7c..f1f6aeef1d 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5115,7 +5115,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5126,7 +5135,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index c16066e5bb..ed6eb6f3f4 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5383,7 +5383,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9617,12 +9624,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11493,7 +11514,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11526,14 +11553,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13587,9 +13618,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13597,7 +13636,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ca38d13322..2d859e0976 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -437,8 +437,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 1eb09ebcb7..10e71f2765 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -886,36 +885,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 8731352c3d..d6440737f3 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -497,7 +503,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -595,12 +609,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/clan/Clan.java index 35e5fdda3a..8c8d794624 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -2907,7 +2911,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Castle.java index c6b7b3aebe..1352818bc0 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -889,12 +888,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1162,7 +1175,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Siege.java index f714cb5ce1..32ec9166df 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 086246cddf..3ffcb3fe6f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java index dd4528790b..156141c7bf 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -755,7 +754,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -764,7 +776,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -776,7 +801,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6ac59b6f71..232e51e981 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2798,7 +2798,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(); + } + } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0dd89633fe..e3acfe8816 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index 2cfdd6c827..d23f5d6ac1 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -50,13 +50,20 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); - if ((reward == null) || reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } + player.sendPacket(new ExConnectedTimeAndGettableReward(player)); player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 442cebf1a1..e068afc75e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -737,7 +737,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1034,11 +1042,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index c7eae4ffea..a4d4d5b612 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,16 +215,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index fc5cd18457..d9d0da9ece 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector.getActingPlayer())).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector.getActingPlayer())) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index d156b92959..361bcbc216 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { - final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.max(abnormalCount - 1, _skillLevelScaleTo)); + final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index e2192563f8..86cd57cb70 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 7a9993d10d..d155cc73f5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index 7ac08a33bf..4dc3748502 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index a09820db5d..f71a6c935f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -742,11 +741,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 6188ff4995..d4cad9340e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -560,7 +559,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -569,7 +573,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -578,7 +590,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -587,7 +604,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -596,7 +618,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Attackable.java index b22fb28b74..ea208758c7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -390,11 +388,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -452,10 +466,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java index 4c9a190714..f1c5c561c6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5114,7 +5114,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5125,7 +5134,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index c95f27e364..5a292e04c2 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5303,7 +5303,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9529,12 +9536,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11418,7 +11439,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11451,14 +11478,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13512,9 +13543,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13522,7 +13561,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ca38d13322..2d859e0976 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -437,8 +437,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 1eb09ebcb7..10e71f2765 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -886,36 +885,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 8731352c3d..d6440737f3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -497,7 +503,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -595,12 +609,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/clan/Clan.java index 35e5fdda3a..8c8d794624 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -2907,7 +2911,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Castle.java index c6b7b3aebe..1352818bc0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -889,12 +888,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1162,7 +1175,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Siege.java index f714cb5ce1..32ec9166df 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 086246cddf..3ffcb3fe6f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java index dd4528790b..156141c7bf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -755,7 +754,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -764,7 +776,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -776,7 +801,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6ac59b6f71..232e51e981 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2798,7 +2798,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(); + } + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/Skill.java index a1f1e4966b..94f426671a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0dd89633fe..e3acfe8816 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index 2cfdd6c827..d23f5d6ac1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -50,13 +50,20 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); - if ((reward == null) || reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } + player.sendPacket(new ExConnectedTimeAndGettableReward(player)); player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 165a4c6638..ba7a828d4c 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -769,7 +769,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader } else { - final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get(); + ClassChangeData data = null; + for (ClassChangeData ccd : _classChangeData) + { + if (ccd.isInCategory(player)) + { + data = ccd; + break; + } + } if (data != null) { // Required items. @@ -1066,11 +1074,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean checkIfClassChangeHasOptions(PlayerInstance player) { - boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements + boolean showOptions = false; + + // Check if there are requirements + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player)) + { + showOptions = true; + break; + } + } + if (!showOptions) { - showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose. + // Check if there is more than 1 reward to chose. + int count = 0; + for (ClassChangeData ccd : _classChangeData) + { + if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player)) + { + count++; + } + } + if (count > 1) + { + showOptions = true; + } } + return showOptions; } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/SellBuff/SellBuff.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/SellBuff/SellBuff.java index 06cba57757..c458f1aab6 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/SellBuff/SellBuff.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/SellBuff/SellBuff.java @@ -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; diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index db7b6ebe25..391c95486f 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler } final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString()); - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } break; } case "see": diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java index e885331d5e..ae56d1cbe9 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java @@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler { if (activeChar.isGood()) { - World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllGoodPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } if (activeChar.isEvil()) { - World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getAllEvilPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } } else { - World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (player.isNotBlocked(activeChar)) + { + cs.sendTo(player); + } + } } activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index c7eae4ffea..a4d4d5b612 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -215,16 +215,19 @@ public class HomeBoard implements IParseBoardHandler { continue; } - targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> + for (Creature target : targets) { - skill.applyEffects(player, target); - if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + if (skill.isSharedWithSummon() || target.isPlayer()) { - player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); - // not recommend broadcast - // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + skill.applyEffects(player, target); + if (Config.COMMUNITYBOARD_CAST_ANIMATIONS) + { + player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + // not recommend broadcast + // player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay())); + } } - }); + } } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java index cd9e18a095..0c9cc213a5 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/dailymissionhandlers/BossDailyMissionHandler.java @@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler { final CommandChannel channel = party.getCommandChannel(); final List members = channel != null ? channel.getMembers() : party.getMembers(); - members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress); + for (PlayerInstance member : members) + { + if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE) + { + processPlayerProgress(member); + } + } } else { diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java index aa5b213b02..e957d0b431 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/AbnormalTimeChange.java @@ -18,15 +18,14 @@ package handlers.effecthandlers; import java.util.Collections; import java.util.HashSet; -import java.util.Objects; import java.util.Set; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.BuffInfo; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; @@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getEffects()) { - b.resetAbnormalTime(b.getTime() + _time); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getTime() + _time); + asu.addSkill(info); + } + } } break; } @@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect { if (_abnormals.isEmpty()) { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled()) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } else { - effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b -> + for (BuffInfo info : effected.getEffectList().getDebuffs()) { - b.resetAbnormalTime(b.getAbnormalTime()); - asu.addSkill(b); - }); + if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType())) + { + info.resetAbnormalTime(info.getAbnormalTime()); + asu.addSkill(info); + } + } } break; } @@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect effected.sendPacket(asu); final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected); - - // @formatter:off - effected.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : effected.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (effected.isPlayer() && (effected.getTarget() == effected)) { diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java index d8ead80229..4e3aa38468 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/CallTargetParty.java @@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect final Party party = player.getParty(); if (party != null) { - party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true)); + for (PlayerInstance member : party.getMembers()) + { + if ((member != player) && CallPc.checkSummonTargetStatus(member, effector)) + { + member.teleToLocation(player.getLocation(), true); + } + } } } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java index 7385e04cd6..d53ea2286c 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SummonNpc.java @@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect // If only single instance is allowed, delete previous NPCs. if (_singleInstance) { - player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe); + for (Npc npc : player.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + npc.deleteMe(); + } + } } final Npc npc = spawn.doSpawn(_isSummonSpawn); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Synergy.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Synergy.java index d156b92959..361bcbc216 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Synergy.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Synergy.java @@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect } } - final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count(); + int abnormalCount = 0; + for (AbnormalType abnormalType : _optionalSlots) + { + if (effector.hasAbnormalType(abnormalType)) + { + abnormalCount++; + } + } if (abnormalCount >= _minSlot) { - final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.max(abnormalCount - 1, _skillLevelScaleTo)); + final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo)); final Skill partyBuffSkill = partyBuff.getSkill(); - if (partyBuffSkill != null) { final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java index 0173cbe8b9..338375d841 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/TeleportToNpc.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null); + ILocational teleLocation = null; + for (Npc npc : effector.getSummonedNpcs()) + { + if (npc.getId() == _npcId) + { + teleLocation = npc; + } + } + if (teleLocation != null) { final Party party = effected.getParty(); if (_party && (party != null)) { - party.getMembers().forEach(p -> teleport(p, teleLocation)); + for (PlayerInstance member : party.getMembers()) + { + teleport(member, teleLocation); + } } else { diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index e2192563f8..86cd57cb70 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index 7a9993d10d..d155cc73f5 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -16,8 +16,8 @@ */ package handlers.itemhandlers; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ShotType; @@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler return false; } - final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); + final List aliveServitor = new ArrayList<>(); + for (Summon s : playable.getServitors().values()) + { + if (!s.isDead()) + { + aliveServitor.add(s); + } + } + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_SERVITOR_SAD_ISN_T_IT); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java index ed3960a59b..829cf54d76 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorAttack.java @@ -18,6 +18,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler { if (player.hasServitors()) { - player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget())); + for (Summon summon : player.getServitors().values()) + { + if (summon.canAttack(player.getTarget(), ctrlPressed)) + { + summon.doAttack(player.getTarget()); + } + } } else { diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorMove.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorMove.java index 7ac08a33bf..4dc3748502 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorMove.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/playeractions/ServitorMove.java @@ -19,6 +19,7 @@ package handlers.playeractions; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.IPlayerActionHandler; import org.l2jmobius.gameserver.model.ActionDataHolder; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler if (player.getTarget() != null) { - player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s -> + for (Summon summon : player.getServitors().values()) { - if (s.isBetrayed()) + if ((summon != player.getTarget()) && !summon.isMovementDisabled()) { - player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); - return; + if (summon.isBetrayed()) + { + player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS); + return; + } + + summon.setFollowStatus(false); + summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); } - - s.setFollowStatus(false); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation()); - }); + } } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java index 39bf2b4f51..5bbcf7938c 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -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 playerList = World.getInstance().getPlayers().stream().filter(player -> !player.isInOfflineMode()).map(PlayerInstance::getAccountName).collect(Collectors.toList()); + final List playerList = new ArrayList<>(); + for (PlayerInstance player : World.getInstance().getPlayers()) + { + if (!player.isInOfflineMode()) + { + playerList.add(player.getAccountName()); + } + } if (!playerList.isEmpty()) { sendPacket(new PlayerInGame(playerList)); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/PlayerAI.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/PlayerAI.java index 93b7c8cccf..eff97a494a 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/PlayerAI.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/PlayerAI.java @@ -26,6 +26,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.StaticObjectInstance; import org.l2jmobius.gameserver.model.interfaces.ILocational; @@ -164,7 +165,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } @@ -176,7 +183,13 @@ public class PlayerAI extends PlayableAI // Summons in defending mode defend its master when attacked. if (_actor.getActingPlayer().hasServitors()) { - _actor.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : _actor.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java index ba0715d3b9..908f5ab3ce 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -250,10 +250,16 @@ public class SummonAI extends PlayableAI implements Runnable private void allServitorsDefend(Creature attacker) { - final Creature Owner = getActor().getOwner(); - if ((Owner != null) && Owner.getActingPlayer().hasServitors()) + final Creature owner = getActor().getOwner(); + if ((owner != null) && owner.getActingPlayer().hasServitors()) { - Owner.getActingPlayer().getServitors().values().stream().filter(summon -> ((SummonAI) summon.getAI()).isDefending()).forEach(summon -> ((SummonAI) summon.getAI()).defendAttack(attacker)); + for (Summon summon : owner.getActingPlayer().getServitors().values()) + { + if (((SummonAI) summon.getAI()).isDefending()) + { + ((SummonAI) summon.getAI()).defendAttack(attacker); + } + } } else { diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java index 08838fae4b..f4ab8eea82 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/communitybbs/BB/Forum.java @@ -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; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java index 26abd7a648..21cdff27ff 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/impl/ClanTable.java @@ -138,7 +138,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; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java index dedfba5f3c..bbb49148e3 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ActionData.java @@ -48,7 +48,15 @@ public class ActionData implements IXmlReader _actionData.clear(); _actionSkillsData.clear(); parseDatapackFile("data/ActionData.xml"); - _actionData.values().stream().filter(h -> h.getHandler().equals("PetSkillUse") || h.getHandler().equals("ServitorSkillUse")).forEach(h -> _actionSkillsData.put(h.getOptionId(), h.getId())); + + for (ActionDataHolder holder : _actionData.values()) + { + if (holder.getHandler().equals("PetSkillUse") || holder.getHandler().equals("ServitorSkillUse")) + { + _actionSkillsData.put(holder.getOptionId(), holder.getId()); + } + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _actionData.size() + " player actions."); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java index c8d52eace0..f23760dccc 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CastleData.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -115,7 +114,18 @@ public class CastleData implements IXmlReader public List getSpawnsForSide(int castleId, CastleSide side) { - return _spawns.getOrDefault(castleId, Collections.emptyList()).stream().filter(s -> s.getSide() == side).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (_spawns.containsKey(castleId)) + { + for (CastleSpawnHolder spawn : _spawns.get(castleId)) + { + if (spawn.getSide() == side) + { + result.add(spawn); + } + } + } + return result; } public List getSiegeGuardsForCastle(int castleId) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java index b49d9041ef..453ccf3147 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ClanHallData.java @@ -175,18 +175,39 @@ public class ClanHallData implements IXmlReader public ClanHall getClanHallByNpcId(int npcId) { - return _clanHalls.values().stream().filter(ch -> ch.getNpcs().contains(npcId)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getNpcs().contains(npcId)) + { + return ch; + } + } + return null; } public ClanHall getClanHallByClan(Clan clan) { - return _clanHalls.values().stream().filter(ch -> ch.getOwner() == clan).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getOwner() == clan) + { + return ch; + } + } + return null; } public ClanHall getClanHallByDoorId(int doorId) { final DoorInstance door = DoorData.getInstance().getDoor(doorId); - return _clanHalls.values().stream().filter(ch -> ch.getDoors().contains(door)).findFirst().orElse(null); + for (ClanHall ch : _clanHalls.values()) + { + if (ch.getDoors().contains(door)) + { + return ch; + } + } + return null; } public List getFreeAuctionableHall() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java index f1a23734e0..7419e2d604 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/CombinationItemsData.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; @@ -86,17 +85,40 @@ public class CombinationItemsData implements IXmlReader public CombinationItem getItemsBySlots(int firstSlot, int secondSlot) { - return _items.stream().filter(item -> (item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)).findFirst().orElse(null); + for (CombinationItem item : _items) + { + if ((item.getItemOne() == firstSlot) && (item.getItemTwo() == secondSlot)) + { + return item; + } + } + return null; } public List getItemsByFirstSlot(int id) { - return _items.stream().filter(item -> item.getItemOne() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemOne() == id) + { + result.add(item); + } + } + return result; } public List getItemsBySecondSlot(int id) { - return _items.stream().filter(item -> item.getItemTwo() == id).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (CombinationItem item : _items) + { + if (item.getItemTwo() == id) + { + result.add(item); + } + } + return result; } public static final CombinationItemsData getInstance() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java index 48ddfd2126..35afac13bd 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -749,11 +748,15 @@ public class NpcData implements IXmlReader */ public List getTemplates(Predicate filter) { - //@formatter:off - return _npcs.values().stream() - .filter(filter) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (NpcTemplate npcTemplate : _npcs.values()) + { + if (filter.test(npcTemplate)) + { + result.add(npcTemplate); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java index b2e1673d82..28a3501609 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ResidenceFunctionsData.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.data.xml.impl; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -89,7 +88,17 @@ public class ResidenceFunctionsData implements IXmlReader */ public ResidenceFunctionTemplate getFunction(int id, int level) { - return _functions.getOrDefault(id, Collections.emptyList()).stream().filter(template -> template.getLevel() == level).findAny().orElse(null); + if (_functions.containsKey(id)) + { + for (ResidenceFunctionTemplate template : _functions.get(id)) + { + if (template.getLevel() == level) + { + return template; + } + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java index 8b63a0c0b7..cf12a37cc7 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreeData.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -561,7 +560,12 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillTree() { - return _nobleSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -570,7 +574,15 @@ public class SkillTreeData implements IXmlReader */ public List getNobleSkillAutoGetTree() { - return _nobleSkillTree.values().stream().filter(entry -> entry.isAutoGet()).map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _nobleSkillTree.values()) + { + if (skill.isAutoGet()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + } + return result; } /** @@ -579,7 +591,12 @@ public class SkillTreeData implements IXmlReader */ public List getHeroSkillTree() { - return _heroSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _heroSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -588,7 +605,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMSkillTree() { - return _gameMasterSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** @@ -597,7 +619,12 @@ public class SkillTreeData implements IXmlReader */ public List getGMAuraSkillTree() { - return _gameMasterAuraSkillTree.values().stream().map(entry -> SkillData.getInstance().getSkill(entry.getSkillId(), entry.getSkillLevel())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SkillLearn skill : _gameMasterAuraSkillTree.values()) + { + result.add(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel())); + } + return result; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java index 04ae8245d4..7fea345178 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/SpawnData.java @@ -153,7 +153,15 @@ public class SpawnData implements IXmlReader public List getSpawns(Predicate condition) { - return _spawns.stream().filter(condition).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnTemplate spawnTemplate : _spawns) + { + if (condition.test(spawnTemplate)) + { + result.add(spawnTemplate); + } + } + return result; } public List getGroupsByName(String groupName) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java index 08d60c94e4..e9aac43188 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CastleManorManager.java @@ -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; @@ -762,7 +763,15 @@ public class CastleManorManager implements IXmlReader, IStorable public Set getSeedsForCastle(int castleId) { - return _seeds.values().stream().filter(s -> s.getCastleId() == castleId).collect(Collectors.toSet()); + Set result = new HashSet<>(); + for (Seed seed : _seeds.values()) + { + if (seed.getCastleId() == castleId) + { + result.add(seed); + } + } + return result; } public Set getSeedIds() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java index e60ae29a2e..0aec0500d6 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanEntryManager.java @@ -20,12 +20,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.OptionalInt; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -213,9 +214,16 @@ public class ClanEntryManager return false; } - public OptionalInt getClanIdForPlayerApplication(int playerId) + public Integer getClanIdForPlayerApplication(int playerId) { - return _applicantList.entrySet().stream().filter(e -> e.getValue().containsKey(playerId)).mapToInt(e -> e.getKey()).findFirst(); + for (Entry> entry : _applicantList.entrySet()) + { + if (entry.getValue().containsKey(playerId)) + { + return entry.getKey(); + } + } + return 0; } public boolean addToWaitingList(int playerId, PledgeWaitingInfo info) @@ -345,12 +353,41 @@ public class ClanEntryManager public List queryWaitingListByName(String name) { - return _waitingList.values().stream().filter(p -> p.getPlayerName().toLowerCase().contains(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PledgeWaitingInfo p : _waitingList.values()) + { + if (p.getPlayerName().toLowerCase().contains(name)) + { + result.add(p); + } + } + return result; } public List getSortedClanListByName(String query, int type) { - return type == 1 ? _clanList.values().stream().filter(p -> p.getClanName().toLowerCase().contains(query)).collect(Collectors.toList()) : _clanList.values().stream().filter(p -> p.getClanLeaderName().toLowerCase().contains(query)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + if (type == 1) + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + else + { + for (PledgeRecruitInfo p : _clanList.values()) + { + if (p.getClanLeaderName().toLowerCase().contains(query)) + { + result.add(p); + } + } + } + return result; } public PledgeRecruitInfo getClanById(int clanId) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java index d6a8348576..0ca8a0ad15 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ClanHallAuctionManager.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.instancemanager; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.logging.Logger; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; @@ -72,21 +73,26 @@ public class ClanHallAuctionManager extends AbstractEventManager a.getBids().containsKey(clan.getId())) - .findFirst() - .orElse(null); - //@formatter:on + for (ClanHallAuction auction : AUCTIONS.values()) + { + if (auction.getBids().containsKey(clan.getId())) + { + return auction; + } + } + return null; } public boolean checkForClanBid(int clanHallId, Clan clan) { - //@formatter:off - return AUCTIONS.entrySet().stream() - .filter(a -> a.getKey() != clanHallId) - .anyMatch(a -> a.getValue().getBids().containsKey(clan.getId())); - //@formatter:on + for (Entry auction : AUCTIONS.entrySet()) + { + if ((auction.getKey() != clanHallId) && auction.getValue().getBids().containsKey(clan.getId())) + { + return true; + } + } + return false; } public static ClanHallAuctionManager getInstance() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java index 30f65e3484..1daea8553c 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/CommissionManager.java @@ -442,7 +442,14 @@ public class CommissionManager */ public boolean hasCommissionItems(int objectId) { - return _commissionItems.values().stream().anyMatch(item -> item.getItemInstance().getObjectId() == objectId); + for (CommissionItem item : _commissionItems.values()) + { + if (item.getItemInstance().getObjectId() == objectId) + { + return true; + } + } + return false; } /** @@ -452,7 +459,14 @@ public class CommissionManager */ public boolean hasCommissionedItemId(PlayerInstance player, int itemId) { - return !_commissionItems.values().stream().filter(c -> (c.getItemInstance().getOwnerId() == player.getObjectId()) && (c.getItemInstance().getItem().getId() == itemId)).collect(Collectors.toList()).isEmpty(); + for (CommissionItem item : _commissionItems.values()) + { + if ((item.getItemInstance().getOwnerId() == player.getObjectId()) && (item.getItemInstance().getItem().getId() == itemId)) + { + return true; + } + } + return false; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java index b510fdc4ee..bd7a571939 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -434,7 +434,24 @@ public class InstanceManager implements IXmlReader */ public Instance getPlayerInstance(PlayerInstance player, boolean isInside) { - return _instanceWorlds.values().stream().filter(i -> (isInside) ? i.containsPlayer(player) : i.isAllowed(player)).findFirst().orElse(null); + for (Instance instance : _instanceWorlds.values()) + { + if (isInside) + { + if (instance.containsPlayer(player)) + { + return instance; + } + } + else + { + if (instance.isAllowed(player)) + { + return instance; + } + } + } + return null; } /** @@ -656,7 +673,15 @@ public class InstanceManager implements IXmlReader */ public long getWorldCount(int templateId) { - return _instanceWorlds.values().stream().filter(i -> i.getTemplateId() == templateId).count(); + long count = 0; + for (Instance i : _instanceWorlds.values()) + { + if (i.getTemplateId() == templateId) + { + count++; + } + } + return count; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MailManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MailManager.java index de295244f6..176b407caa 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MailManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MailManager.java @@ -140,7 +140,15 @@ public class MailManager public long getUnreadCount(PlayerInstance player) { - return getInbox(player.getObjectId()).stream().filter(Message::isUnread).count(); + long count = 0; + for (Message message : getInbox(player.getObjectId())) + { + if (message.isUnread()) + { + count++; + } + } + return count; } public int getMailsInProgress(int objectId) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java index 00698ca365..34d3132332 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MatchingRoomManager.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.instancemanager; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -103,12 +104,19 @@ public class MatchingRoomManager public List getPartyMathchingRooms(int location, PartyMatchingRoomLevelType type, int requestorLevel) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(room -> (location < 0) || (room.getLocation() == location)) - .filter(room -> (type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel))) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if (((location < 0) || (room.getLocation() == location)) // + && ((type == PartyMatchingRoomLevelType.ALL) || ((room.getMinLvl() >= requestorLevel) && (room.getMaxLvl() <= requestorLevel)))) + { + result.add(room); + } + } + } + return result; } public Map getCCMathchingRooms() @@ -118,12 +126,19 @@ public class MatchingRoomManager public List getCCMathchingRooms(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.COMMAND_CHANNEL, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + if (_rooms.containsKey(MatchingRoomType.COMMAND_CHANNEL)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.COMMAND_CHANNEL).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + result.add(room); + } + } + } + return result; } public MatchingRoom getCCMatchingRoom(int roomId) @@ -133,13 +148,18 @@ public class MatchingRoomManager public MatchingRoom getPartyMathchingRoom(int location, int level) { - //@formatter:off - return _rooms.getOrDefault(MatchingRoomType.PARTY, Collections.emptyMap()).values().stream() - .filter(r -> r.getLocation() == location) - .filter(r -> (r.getMinLvl() <= level) && (r.getMaxLvl() >= level)) - .findFirst() - .orElse(null); - //@formatter:on + if (_rooms.containsKey(MatchingRoomType.PARTY)) + { + for (MatchingRoom room : _rooms.get(MatchingRoomType.PARTY).values()) + { + if ((room.getLocation() == location) // + && ((room.getMinLvl() <= level) && (room.getMaxLvl() >= level))) + { + return room; + } + } + } + return null; } public MatchingRoom getPartyMathchingRoom(int roomId) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java index 4fe7fff954..df45860d40 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/MentorManager.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,7 +33,6 @@ import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.BuffInfo; -import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.variables.PlayerVariables; /** @@ -134,13 +132,13 @@ public class MentorManager return; } - //@formatter:off - player.getEffectList().getEffects() - .stream() - .map(BuffInfo::getSkill) - .filter(Skill::isMentoring) - .forEach(player::stopSkillEffects); - //@formatter:on + for (BuffInfo info : player.getEffectList().getEffects()) + { + if (info.getSkill().isMentoring()) + { + player.stopSkillEffects(info.getSkill()); + } + } } public void setPenalty(int mentorId, long penalty) @@ -250,7 +248,14 @@ public class MentorManager public boolean hasOnlineMentees(int menteorId) { - return getMentees(menteorId).stream().filter(Objects::nonNull).filter(Mentee::isOnline).count() > 0; + for (Mentee mentee : getMentees(menteorId)) + { + if ((mentee != null) && mentee.isOnline()) + { + return true; + } + } + return false; } public static MentorManager getInstance() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java index 2df9423ddb..f5bbf1b566 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/PremiumManager.java @@ -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; + } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java index f4cde2e78f..d0e758b6a1 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SellBuffsManager.java @@ -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) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java index 39b18cf2d3..6c4acee2a0 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/SiegeGuardManager.java @@ -99,7 +99,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByItem(int castleId, int itemId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getItemId() == itemId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getItemId() == itemId) + { + return holder; + } + } + return null; } /** @@ -110,7 +117,14 @@ public class SiegeGuardManager */ public SiegeGuardHolder getSiegeGuardByNpc(int castleId, int npcId) { - return CastleData.getInstance().getSiegeGuardsForCastle(castleId).stream().filter(g -> (g.getNpcId() == npcId)).findFirst().orElse(null); + for (SiegeGuardHolder holder : CastleData.getInstance().getSiegeGuardsForCastle(castleId)) + { + if (holder.getNpcId() == npcId) + { + return holder; + } + } + return null; } /** @@ -120,7 +134,14 @@ public class SiegeGuardManager */ public boolean isTooCloseToAnotherTicket(PlayerInstance player) { - return _droppedTickets.stream().filter(g -> g.calculateDistance3D(player) < 25).findFirst().orElse(null) != null; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.calculateDistance3D(player) < 25) + { + return true; + } + } + return false; } /** @@ -131,8 +152,15 @@ public class SiegeGuardManager */ public boolean isAtNpcLimit(int castleId, int itemId) { - final long count = _droppedTickets.stream().filter(i -> i.getId() == itemId).count(); final SiegeGuardHolder holder = getSiegeGuardByItem(castleId, itemId); + long count = 0; + for (ItemInstance ticket : _droppedTickets) + { + if (ticket.getId() == itemId) + { + count++; + } + } return count >= holder.getMaxNpcAmout(); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java index 48b2e8f16c..1faf1ae423 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -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; @@ -557,10 +556,12 @@ public class ZoneManager implements IXmlReader { for (Map map : _classZones.values()) { - final Optional 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; @@ -589,10 +590,15 @@ public class ZoneManager implements IXmlReader @SuppressWarnings("unchecked") public T getZoneByName(String name, Class zoneType) { - final Optional 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; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java index f7c301ddc1..6f12d5e815 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.model; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.Set; @@ -30,8 +30,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.model.actor.Creature; @@ -137,7 +135,15 @@ public class EffectList */ public List getBuffs() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isBuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isBuff()) + { + result.add(info); + } + } + return result; } /** @@ -146,7 +152,15 @@ public class EffectList */ public List getDances() { - return _actives.stream().filter(b -> b.getSkill().getBuffType().isDance()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDance()) + { + result.add(info); + } + } + return result; } /** @@ -155,7 +169,15 @@ public class EffectList */ public List getDebuffs() { - return _actives.stream().filter(b -> b.getSkill().isDebuff()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (BuffInfo info : _actives) + { + if (info.getSkill().getBuffType().isDebuff()) + { + result.add(info); + } + } + return result; } /** @@ -165,7 +187,21 @@ public class EffectList */ public boolean isAffectedBySkill(int skillId) { - return (_actives.stream().anyMatch(i -> i.getSkill().getId() == skillId)) || (_passives.stream().anyMatch(i -> i.getSkill().getId() == skillId)); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return true; + } + } + return false; } /** @@ -175,7 +211,21 @@ public class EffectList */ public BuffInfo getBuffInfoBySkillId(int skillId) { - return Stream.concat(_actives.stream(), _passives.stream()).filter(b -> b.getSkill().getId() == skillId).findFirst().orElse(null); + for (BuffInfo info : _actives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + for (BuffInfo info : _passives) + { + if (info.getSkill().getId() == skillId) + { + return info; + } + } + return null; } /** @@ -195,7 +245,14 @@ public class EffectList */ public boolean hasAbnormalType(Collection types) { - return _stackedEffects.stream().anyMatch(types::contains); + for (AbnormalType abnormalType : _stackedEffects) + { + if (types.contains(abnormalType)) + { + return true; + } + } + return false; } /** @@ -205,7 +262,17 @@ public class EffectList */ public boolean hasAbnormalType(AbnormalType type, Predicate filter) { - return hasAbnormalType(type) && _actives.stream().filter(i -> i.isAbnormalType(type)).anyMatch(filter); + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type) && filter.test(info)) + { + return true; + } + } + } + return false; } /** @@ -216,7 +283,17 @@ public class EffectList */ public BuffInfo getFirstBuffInfoByAbnormalType(AbnormalType type) { - return hasAbnormalType(type) ? _actives.stream().filter(i -> i.isAbnormalType(type)).findFirst().orElse(null) : null; + if (hasAbnormalType(type)) + { + for (BuffInfo info : _actives) + { + if (info.isAbnormalType(type)) + { + return info; + } + } + } + return null; } /** @@ -353,9 +430,18 @@ public class EffectList */ public void stopAllEffectsWithoutExclusions(boolean update, boolean broadcast) { - _actives.stream().forEach(this::remove); - _passives.stream().forEach(this::remove); - _options.stream().forEach(this::remove); + for (BuffInfo info : _actives) + { + remove(info); + } + for (BuffInfo info : _passives) + { + remove(info); + } + for (BuffInfo info : _options) + { + remove(info); + } // Update stats, effect flags and icons. if (update) @@ -426,9 +512,26 @@ public class EffectList */ public void stopEffects(EffectFlag effectFlag) { - if (isAffected(effectFlag)) + if (isAffected(effectFlag) && !_actives.isEmpty()) { - stopEffects(info -> info.getEffects().stream().anyMatch(effect -> (effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)), true, true); + boolean update = false; + for (BuffInfo info : _actives) + { + for (AbstractEffect effect : info.getEffects()) + { + if ((effect != null) && ((effect.getEffectFlags() & effectFlag.getMask()) != 0)) + { + remove(info); + update = true; + } + } + } + + // Update stats, effect flags and icons. + if (update) + { + updateEffectList(true); + } } } @@ -507,7 +610,13 @@ public class EffectList { if (!_actives.isEmpty()) { - _actives.stream().filter(filter).forEach(this::remove); + for (BuffInfo info : _actives) + { + if (filter.test(info)) + { + remove(info); + } + } // Update stats, effect flags and icons. if (update) @@ -923,11 +1032,14 @@ public class EffectList } // Remove previous passives of this id. - _passives.stream().filter(Objects::nonNull).filter(b -> b.getSkill().getId() == skill.getId()).forEach(b -> + for (BuffInfo b : _passives) { - b.setInUse(false); - _passives.remove(b); - }); + if ((b != null) && (b.getSkill().getId() == skill.getId())) + { + b.setInUse(false); + _passives.remove(b); + } + } _passives.add(info); @@ -940,11 +1052,14 @@ public class EffectList if (info.getOption() != null) { // Remove previous options of this id. - _options.stream().filter(Objects::nonNull).filter(b -> b.getOption().getId() == info.getOption().getId()).forEach(b -> + for (BuffInfo b : _options) { - b.setInUse(false); - _options.remove(b); - }); + if ((b != null) && (b.getOption().getId() == info.getOption().getId())) + { + b.setInUse(false); + _options.remove(b); + } + } _options.add(info); @@ -969,11 +1084,9 @@ public class EffectList final Optional os = (player.isInOlympiadMode() && player.isOlympiadStart()) ? Optional.of(new ExOlympiadSpelledInfo(player)) : Optional.empty(); if (!_actives.isEmpty()) { - //@formatter:off - _actives.stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .forEach(info -> + for (BuffInfo info : _actives) + { + if ((info != null) && info.isInUse()) { if (info.getSkill().isHealingPotionSkill()) { @@ -985,8 +1098,8 @@ public class EffectList ps.filter(p -> !info.getSkill().isToggle()).ifPresent(p -> p.addSkill(info)); os.ifPresent(o -> o.addSkill(info)); } - }); - //@formatter:on + } + } } // Send icon update for player buff bar. @@ -1015,14 +1128,13 @@ public class EffectList // Update effect icons for everyone targeting this owner. final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(_owner); - - // @formatter:off - _owner.getStatus().getStatusListener().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(Creature::getActingPlayer) - .forEach(upd::sendTo); - // @formatter:on + for (Creature creature : _owner.getStatus().getStatusListener()) + { + if ((creature != null) && creature.isPlayer()) + { + upd.sendTo(creature.getActingPlayer()); + } + } if (_owner.isPlayer() && (_owner.getTarget() == _owner)) { diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/Party.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/Party.java index d5bf0dd361..238db50f63 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/Party.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/Party.java @@ -333,7 +333,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)); @@ -856,10 +862,13 @@ public class Party extends AbstractPlayerGroup // The servitor penalty float penalty = 1; - final Summon summon = member.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null); - if (summon != null) + for (Summon summon : member.getServitors().values()) { - penalty = ((ServitorInstance) summon).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } final double sqLevel = member.getLevel() * member.getLevel(); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java index f27bde1f08..cda69f5dcd 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -388,11 +386,27 @@ public class Attackable extends Npc if (party != null) { final CommandChannel command = party.getCommandChannel(); - //@formatter:off - final List members = command != null ? - command.getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()) : - player.getParty().getMembers().stream().filter(p -> p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE).collect(Collectors.toList()); - //@formatter:on + final List members = new ArrayList<>(); + if (command != null) + { + for (PlayerInstance p : command.getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } + else + { + for (PlayerInstance p : player.getParty().getMembers()) + { + if (p.calculateDistance3D(this) < Config.ALT_PARTY_RANGE) + { + members.add(p); + } + } + } members.forEach(p -> { @@ -450,10 +464,13 @@ public class Attackable extends Npc // If this attacker have servitor, get Exp Penalty applied for the servitor. float penalty = 1; - final Optional summon = attacker.getServitors().values().stream().filter(s -> ((ServitorInstance) s).getExpMultiplier() > 1).findFirst(); - if (summon.isPresent()) + for (Summon summon : attacker.getServitors().values()) { - penalty = ((ServitorInstance) summon.get()).getExpMultiplier(); + if (((ServitorInstance) summon).getExpMultiplier() > 1) + { + penalty = ((ServitorInstance) summon).getExpMultiplier(); + break; + } } // If there's NO party in progress diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java index a41e892485..e706a20968 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.model.actor; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; @@ -37,7 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -5084,7 +5084,16 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).collect(Collectors.toList()); + + final List result = new ArrayList<>(); + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + result.add(skillCaster); + } + } + return result; } @SafeVarargs @@ -5095,7 +5104,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { filter = filter.and(additionalFilter); } - return _skillCasters.values().stream().filter(filter).findAny().orElse(null); + + for (SkillCaster skillCaster : _skillCasters.values()) + { + if (filter.test(skillCaster)) + { + return skillCaster; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 5949f3e1ba..25c7f98771 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -5389,7 +5389,14 @@ public class PlayerInstance extends Playable */ public TrapInstance getTrap() { - return getSummonedNpcs().stream().filter(Npc::isTrap).map(TrapInstance.class::cast).findAny().orElse(null); + for (Npc npc : getSummonedNpcs()) + { + if (npc.isTrap()) + { + return (TrapInstance) npc; + } + } + return null; } /** @@ -9616,12 +9623,26 @@ public class PlayerInstance extends Playable public boolean hasDualClass() { - return getSubClasses().values().stream().anyMatch(SubClass::isDualClass); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return true; + } + } + return false; } public SubClass getDualClass() { - return getSubClasses().values().stream().filter(SubClass::isDualClass).findFirst().orElse(null); + for (SubClass subClass : _subClasses.values()) + { + if (subClass.isDualClass()) + { + return subClass; + } + } + return null; } public Map getSubClasses() @@ -11486,7 +11507,13 @@ public class PlayerInstance extends Playable if (isTransformed() && !_transformSkills.isEmpty()) { // Include transformation skills and those skills that are allowed during transformation. - currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList()); + for (Skill skill : currentSkills) + { + if (!skill.allowOnTransform()) + { + currentSkills.remove(skill); + } + } // Revelation skills. if (isDualClassActive()) @@ -11519,14 +11546,18 @@ public class PlayerInstance extends Playable currentSkills.addAll(_transformSkills.values()); } - //@formatter:off - return currentSkills.stream() - .filter(Objects::nonNull) - .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. - .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) - .filter(s -> s.isDisplayInList()) - .collect(Collectors.toList()); - //@formatter:on + for (Skill skill : currentSkills) + { + if ((skill == null) // + || skill.isBlockActionUseSkill() // Skills that are blocked from player use are not shown in skill list. + || SkillTreeData.getInstance().isAlchemySkill(skill.getId(), skill.getLevel()) // + || !skill.isDisplayInList()) + { + currentSkills.remove(skill); + } + } + + return currentSkills; } protected void startFeed(int npcId) @@ -13581,9 +13612,17 @@ public class PlayerInstance extends Playable * @param clazz * @return the event instance or null in case events map is not initialized yet or event is not registered */ + @SuppressWarnings("unchecked") public > T getEvent(Class clazz) { - return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + if (clazz.isAssignableFrom(event.getClass())) + { + return (T) event; + } + } + return null; } /** @@ -13591,7 +13630,11 @@ public class PlayerInstance extends Playable */ public AbstractEvent getEvent() { - return _events.values().stream().findFirst().orElse(null); + for (AbstractEvent event : _events.values()) + { + return event; + } + return null; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java index ca38d13322..2d859e0976 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/SchemeBufferInstance.java @@ -437,8 +437,16 @@ public class SchemeBufferInstance extends Npc return (objectsSize / pageSize) + ((objectsSize % pageSize) == 0 ? 0 : 1); } - private static long getCountOf(List skills, boolean dances) + private static int getCountOf(List 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; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java index 5578d8f1a5..69f506c190 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/request/SayuneRequest.java @@ -64,7 +64,14 @@ public class SayuneRequest extends AbstractRequest } else if (_isSelecting) { - return _possibleEntries.stream().filter(loc -> loc.getId() == pos).findAny().orElse(null); + for (SayuneEntry entry : _possibleEntries) + { + if (entry.getId() == pos) + { + return entry; + } + } + return null; } return _possibleEntries.removeFirst(); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java index 1eb09ebcb7..10e71f2765 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java @@ -31,13 +31,12 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.BiFunction; import java.util.function.BiPredicate; -import java.util.stream.Stream; import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.Position; -import org.l2jmobius.gameserver.model.EffectList; import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.BuffInfo; @@ -886,36 +885,80 @@ public class CreatureStat // Wipe all the data resetStats(); - // Collect all necessary effects - final EffectList effectList = _creature.getEffectList(); - final Stream passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)); - final Stream options = effectList.getOptions().stream().filter(BuffInfo::isInUse); - final Stream effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives, options)); - // Call pump to each effect - //@formatter:off - effectsStream.forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) - .forEach(effect -> effect.pump(info.getEffected(), info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getEffectList().getPassives()) + { + if (info.isInUse() && info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _creature, _creature)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getOptions()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + for (BuffInfo info : _creature.getEffectList().getEffects()) + { + if (info.isInUse()) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(info.getEffector(), info.getEffected(), info.getSkill())) + { + effect.pump(info.getEffected(), info.getSkill()); + } + } + } + } + // Pump for summon ABILITY_CHANGE abnormal type. if (_creature.isSummon() && (_creature.getActingPlayer() != null) && _creature.getActingPlayer().hasAbnormalType(AbnormalType.ABILITY_CHANGE)) { - //@formatter:off - _creature.getActingPlayer().getEffectList().getEffects().stream() - .filter(BuffInfo::isInUse) - .filter(info -> info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) - .forEach(info -> info.getEffects().stream() - .filter(effect -> effect.canStart(info.getEffector(), info.getEffected(), info.getSkill())) - .filter(effect -> effect.canPump(_creature, _creature, info.getSkill())) - .forEach(effect -> effect.pump(_creature, info.getSkill()))); - //@formatter:on + for (BuffInfo info : _creature.getActingPlayer().getEffectList().getEffects()) + { + if (info.isInUse() && info.isAbnormalType(AbnormalType.ABILITY_CHANGE)) + { + for (AbstractEffect effect : info.getEffects()) + { + if (effect.canStart(info.getEffector(), info.getEffected(), info.getSkill()) && effect.canPump(_creature, _creature, info.getSkill())) + { + effect.pump(_creature, info.getSkill()); + } + } + } + } } // Merge with additional stats - _additionalAdd.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeAdd(holder.getStat(), holder.getValue())); - _additionalMul.stream().filter(holder -> holder.verifyCondition(_creature)).forEach(holder -> mergeMul(holder.getStat(), holder.getValue())); + for (StatHolder holder : _additionalAdd) + { + if (holder.verifyCondition(_creature)) + { + mergeAdd(holder.getStat(), holder.getValue()); + } + } + for (StatHolder holder : _additionalMul) + { + if (holder.verifyCondition(_creature)) + { + mergeMul(holder.getStat(), holder.getValue()); + } + } _attackSpeedMultiplier = Formulas.calcAtkSpdMultiplier(_creature); _mAttackSpeedMultiplier = Formulas.calcMAtkSpdMultiplier(_creature); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java index 829210c305..2f0bb2ed10 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/transform/Transform.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model.actor.transform; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData; import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.Sex; +import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; @@ -35,6 +35,7 @@ import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.interfaces.IIdentifiable; import org.l2jmobius.gameserver.model.items.type.WeaponType; import org.l2jmobius.gameserver.model.skills.AbnormalType; +import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExBasicActionList; import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot; @@ -259,27 +260,30 @@ public class Transform implements IIdentifiable if (addSkills) { - //@formatter:off // Add common skills. - template.getSkills() - .stream() - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (SkillHolder h : template.getSkills()) + { + player.addTransformSkill(h.getSkill()); + } // Add skills depending on level. - template.getAdditionalSkills() - .stream() - .filter(h -> player.getLevel() >= h.getMinLevel()) - .map(SkillHolder::getSkill) - .forEach(player::addTransformSkill); + for (AdditionalSkillHolder h : template.getAdditionalSkills()) + { + if (player.getLevel() >= h.getMinLevel()) + { + player.addTransformSkill(h.getSkill()); + } + } // Add collection skills. - SkillTreeData.getInstance().getCollectSkillTree().values() - .stream() - .map(s -> player.getKnownSkill(s.getSkillId())) - .filter(Objects::nonNull) - .forEach(player::addTransformSkill); - //@formatter:on + for (SkillLearn s : SkillTreeData.getInstance().getCollectSkillTree().values()) + { + final Skill skill = player.getKnownSkill(s.getSkillId()); + if (skill != null) + { + player.addTransformSkill(skill); + } + } } // Set inventory blocks if needed. diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 8731352c3d..d6440737f3 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -276,7 +276,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent public void stopFight() { - getMembers().values().stream().filter(p -> p.getLifeTime() == 0).forEach(this::updateLifeTime); + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getLifeTime() == 0) + { + updateLifeTime(member); + } + } validateWinner(); final List winners = getWinners(); @@ -497,7 +503,15 @@ public class CeremonyOfChaosEvent extends AbstractEvent getMembers().values().forEach(p -> broadcastPacket(new ExCuriousHouseMemberUpdate(p))); // Validate winner - if (getMembers().values().stream().filter(member -> !member.isDefeated()).count() <= 1) + int count = 0; + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (!member.isDefeated()) + { + count++; + } + } + if (count <= 1) { stopFight(); } @@ -595,12 +609,13 @@ public class CeremonyOfChaosEvent extends AbstractEvent targetMember.setDefeated(true); // Delete target player - //@formatter:off - getMembers().values().stream() - .filter(member -> member.getObjectId() != targetPlayer.getObjectId()) - .map(CeremonyOfChaosMember::getPlayer) - .forEach(deleteObject::sendTo); - //@formatter:on + for (CeremonyOfChaosMember member : getMembers().values()) + { + if (member.getObjectId() != targetPlayer.getObjectId()) + { + deleteObject.sendTo(member.getPlayer()); + } + } // Make the target observer targetPlayer.setObserving(true); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java index 8b4978552d..4f7f382371 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -20,17 +20,16 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; 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; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -663,14 +662,15 @@ public class Clan implements IIdentifiable, INamable */ public List getOnlineMembers(int exclude) { - //@formatter:off - return _members.values().stream() - .filter(member -> member.getObjectId() != exclude) - .filter(ClanMember::isOnline) - .map(ClanMember::getPlayerInstance) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (ClanMember member : _members.values()) + { + if ((member.getObjectId() != exclude) && member.isOnline() && (member.getPlayerInstance() != null)) + { + result.add(member.getPlayerInstance()); + } + } + return result; } /** @@ -678,11 +678,15 @@ public class Clan implements IIdentifiable, INamable */ public int getOnlineMembersCount() { - //@formatter:off - return (int) _members.values().stream() - .filter(ClanMember::isOnline) - .count(); - //@formatter:on + int count = 0; + for (ClanMember member : _members.values()) + { + if (member.isOnline()) + { + count++; + } + } + return count; } /** @@ -2907,7 +2911,14 @@ public class Clan implements IIdentifiable, INamable } } - final int currentMaxOnline = (int) _members.values().stream().filter(member -> member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS).count(); + int currentMaxOnline = 0; + for (ClanMember member : _members.values()) + { + if (member.getOnlineTime() > Config.ALT_CLAN_MEMBERS_TIME_FOR_BONUS) + { + currentMaxOnline++; + } + } if (getMaxOnlineMembers() < currentMaxOnline) { getVariables().set("MAX_ONLINE_MEMBERS", currentMaxOnline); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Castle.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Castle.java index c6b7b3aebe..1352818bc0 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Castle.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Castle.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -889,12 +888,26 @@ public class Castle extends AbstractResidence public DoorInstance getDoor(int doorId) { - return _doors.stream().filter(d -> d.getId() == doorId).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getId() == doorId) + { + return door; + } + } + return null; } public DoorInstance getDoor(String doorName) { - return _doors.stream().filter(d -> d.getTemplate().getName().equals(doorName)).findFirst().orElse(null); + for (DoorInstance door : _doors) + { + if (door.getTemplate().getName().equals(doorName)) + { + return door; + } + } + return null; } public List getDoors() @@ -1162,7 +1175,13 @@ public class Castle extends AbstractResidence public void spawnSideNpcs() { - _sideNpcs.stream().filter(Objects::nonNull).forEach(Npc::deleteMe); + for (Npc npc : _sideNpcs) + { + if (npc != null) + { + npc.deleteMe(); + } + } _sideNpcs.clear(); for (CastleSpawnHolder holder : getSideSpawns()) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/ClanHall.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/ClanHall.java index ecddc77267..69e404c3d3 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/ClanHall.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/ClanHall.java @@ -22,12 +22,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.database.DatabaseFactory; @@ -150,10 +150,13 @@ public class ClanHall extends AbstractResidence @Override protected void initResidenceZone() { - final ClanHallZone zone = ZoneManager.getInstance().getAllZones(ClanHallZone.class).stream().filter(z -> z.getResidenceId() == getResidenceId()).findFirst().orElse(null); - if (zone != null) + for (ClanHallZone zone : ZoneManager.getInstance().getAllZones(ClanHallZone.class)) { - setResidenceZone(zone); + if (zone.getResidenceId() == getResidenceId()) + { + setResidenceZone(zone); + break; + } } } @@ -328,7 +331,15 @@ public class ClanHall extends AbstractResidence public List getTeleportList(int functionLevel) { - return _teleports.stream().filter(holder -> holder.getMinFunctionLevel() <= functionLevel).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (ClanHallTeleportHolder holder : _teleports) + { + if (holder.getMinFunctionLevel() <= functionLevel) + { + result.add(holder); + } + } + return result; } public int getMinBid() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java index e54a43b1bc..1d117e44d8 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -610,8 +610,15 @@ public class Duel } final int instanceId = DuelManager.getInstance().getDuelArena(); - final OlympiadStadiumZone zone = ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class) // - .stream().filter(z -> z.getInstanceTemplateId() == instanceId).findFirst().orElse(null); + OlympiadStadiumZone zone = null; + for (OlympiadStadiumZone z : ZoneManager.getInstance().getAllZones(OlympiadStadiumZone.class)) + { + if (z.getInstanceTemplateId() == instanceId) + { + zone = z; + break; + } + } if (zone == null) { throw new RuntimeException("Unable to find a party duel arena!"); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Siege.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Siege.java index f714cb5ce1..32ec9166df 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Siege.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/entity/Siege.java @@ -25,13 +25,11 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -790,14 +788,22 @@ public class Siege implements Siegable @Override public List getAttackersInZone() { - //@formatter:off - return getAttackerClans().stream() - .map(siegeclan -> ClanTable.getInstance().getClan(siegeclan.getClanId())) - .filter(Objects::nonNull) - .flatMap(clan -> clan.getOnlineMembers(0).stream()) - .filter(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getAttackerClans()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + return result; } /** @@ -813,15 +819,25 @@ public class Siege implements Siegable */ public List getOwnersInZone() { - //@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(PlayerInstance::isInSiege) - .collect(Collectors.toList()); - //@formatter:on + final List result = new ArrayList<>(); + for (SiegeClan siegeclan : getDefenderClans()) + { + if (siegeclan.getClanId() == _castle.getOwnerId()) + { + final Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId()); + if (clan != null) + { + for (PlayerInstance member : clan.getOnlineMembers(0)) + { + if (member.isInSiege()) + { + result.add(member); + } + } + } + } + } + return result; } /** @@ -829,7 +845,15 @@ public class Siege implements Siegable */ public List getSpectatorsInZone() { - return _castle.getZone().getPlayersInside().stream().filter(p -> !p.isInSiege()).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _castle.getZone().getPlayersInside()) + { + if (!player.isInSiege()) + { + result.add(player); + } + } + return result; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java index 3990c470e8..a1a0b03fdf 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventManager.java @@ -81,7 +81,14 @@ public abstract class AbstractEventManager>extends Ab public EventScheduler getScheduler(String name) { - return _schedulers.stream().filter(scheduler -> scheduler.getName().equalsIgnoreCase(name)).findFirst().orElse(null); + for (EventScheduler scheduler : _schedulers) + { + if (scheduler.getName().equalsIgnoreCase(name)) + { + return scheduler; + } + } + return null; } public void setSchedulers(Set schedulers) @@ -134,11 +141,13 @@ public abstract class AbstractEventManager>extends Ab public void startConditionalSchedulers() { - //@formatter:off - _conditionalSchedulers.stream() - .filter(IConditionalEventScheduler::test) - .forEach(IConditionalEventScheduler::run); - //@formatter:on + for (IConditionalEventScheduler scheduler : _conditionalSchedulers) + { + if (scheduler.test()) + { + scheduler.run(); + } + } } /* ********************** */ diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java index cbc332d949..04ed40185a 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/ListenersContainer.java @@ -82,14 +82,29 @@ public class ListenersContainer public void removeListenerIf(EventType type, Predicate filter) { - getListeners(type).stream().filter(filter).forEach(AbstractEventListener::unregisterMe); + for (AbstractEventListener listener : getListeners(type)) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } } public void removeListenerIf(Predicate filter) { if (_listeners != null) { - getListeners().values().forEach(queue -> queue.stream().filter(filter).forEach(AbstractEventListener::unregisterMe)); + for (Queue queue : getListeners().values()) + { + for (AbstractEventListener listener : queue) + { + if (filter.test(listener)) + { + listener.unregisterMe(); + } + } + } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java index 1b2183600f..b559312f3f 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/holders/PreparedMultisellListHolder.java @@ -57,11 +57,17 @@ public class PreparedMultisellListHolder extends MultisellListHolder inventory.getItems(item -> !item.isEquipped() && (item.isArmor() || item.isWeapon())).forEach(item -> { // Check ingredients of each entry to see if it's an entry we'd like to include. - list.getEntries().stream().filter(e -> e.getIngredients().stream().anyMatch(i -> i.getId() == item.getId())).forEach(e -> + for (MultisellEntryHolder entry : list.getEntries()) { - _entries.add(e); - _itemInfos.add(new ItemInfo(item)); - }); + for (ItemChanceHolder holder : entry.getIngredients()) + { + if (holder.getId() == item.getId()) + { + _entries.add(entry); + _itemInfos.add(new ItemInfo(item)); + } + } + } }); } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/Instance.java index 71e198ea2a..9cd0c11025 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/Instance.java @@ -119,8 +119,15 @@ public class Instance implements IIdentifiable, INamable setStatus(0); spawnDoors(); - // initialize instance spawns - _spawns.stream().filter(SpawnTemplate::isSpawningByDefault).forEach(spawnTemplate -> spawnTemplate.spawnAll(this)); + // Initialize instance spawns. + for (SpawnTemplate spawnTemplate : _spawns) + { + if (spawnTemplate.isSpawningByDefault()) + { + spawnTemplate.spawnAll(this); + } + } + if (!isDynamic()) { // Notify DP scripts @@ -325,7 +332,11 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getFirstPlayer() { - return _players.stream().findFirst().orElse(null); + for (PlayerInstance player : _players) + { + return player; + } + return null; } /** @@ -335,7 +346,14 @@ public class Instance implements IIdentifiable, INamable */ public PlayerInstance getPlayerById(int id) { - return _players.stream().filter(p -> p.getObjectId() == id).findFirst().orElse(null); + for (PlayerInstance player : _players) + { + if (player.getObjectId() == id) + { + return player; + } + } + return null; } /** @@ -344,9 +362,17 @@ public class Instance implements IIdentifiable, INamable * @param radius radius around target * @return players within radius */ - public Set getPlayersInsideRadius(ILocational object, int radius) + public List getPlayersInsideRadius(ILocational object, int radius) { - return _players.stream().filter(p -> p.isInsideRadius3D(object, radius)).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (PlayerInstance player : _players) + { + if (player.isInsideRadius3D(object, radius)) + { + result.add(player); + } + } + return result; } /** @@ -543,9 +569,17 @@ public class Instance implements IIdentifiable, INamable * Get alive NPCs from instance. * @return set of NPCs from instance */ - public Set getAliveNpcs() + public List getAliveNpcs() { - return _npcs.stream().filter(n -> n.getCurrentHp() > 0).collect(Collectors.toSet()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (npc.getCurrentHp() > 0) + { + result.add(npc); + } + } + return result; } /** @@ -555,7 +589,15 @@ public class Instance implements IIdentifiable, INamable */ public List getNpcs(int... id) { - return _npcs.stream().filter(n -> CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -566,9 +608,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getNpcs(Class clazz, int... ids) { - return _npcs.stream().filter(n -> (ids.length == 0) || CommonUtil.contains(ids, n.getId())).filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if (((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -579,9 +630,18 @@ public class Instance implements IIdentifiable, INamable * @return list of filtered NPCs from instance */ @SafeVarargs + @SuppressWarnings("unchecked") public final List getAliveNpcs(Class clazz, int... ids) { - return _npcs.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 result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((((ids.length == 0) || CommonUtil.contains(ids, npc.getId())) && (npc.getCurrentHp() > 0)) && clazz.isInstance(npc)) + { + result.add((T) npc); + } + } + return result; } /** @@ -591,7 +651,15 @@ public class Instance implements IIdentifiable, INamable */ public List getAliveNpcs(int... id) { - return _npcs.stream().filter(n -> (n.getCurrentHp() > 0) && CommonUtil.contains(id, n.getId())).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (Npc npc : _npcs) + { + if ((npc.getCurrentHp() > 0) && CommonUtil.contains(id, npc.getId())) + { + result.add(npc); + } + } + return result; } /** @@ -601,7 +669,14 @@ public class Instance implements IIdentifiable, INamable */ public Npc getNpc(int id) { - return _npcs.stream().filter(n -> n.getId() == id).findFirst().orElse(null); + for (Npc npc : _npcs) + { + if (npc.getId() == id) + { + return npc; + } + } + return null; } public void addNpc(Npc npc) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java index c9fde94aa6..973dab1661 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/instancezone/InstanceTemplate.java @@ -676,7 +676,13 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl // If any group found then put them into enter group list if (pGroup != null) { - pGroup.getMembers().stream().filter(p -> !p.equals(player)).forEach(group::add); + for (PlayerInstance member : pGroup.getMembers()) + { + if (!member.equals(player)) + { + group.add(member); + } + } } return group; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java index e4fb5a1e1a..a94ea961e9 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/itemcontainer/ItemContainer.java @@ -19,14 +19,14 @@ package org.l2jmobius.gameserver.model.itemcontainer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; 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; @@ -89,7 +89,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return (int) _items.values().stream().filter(filter).count(); + + int count = 0; + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + count++; + } + } + return count; } /** @@ -115,7 +124,16 @@ public abstract class ItemContainer { filter = filter.and(additionalFilter); } - return _items.values().stream().filter(filter).collect(Collectors.toCollection(LinkedList::new)); + + final List result = new ArrayList<>(); + for (ItemInstance item : _items.values()) + { + if (filter.test(item)) + { + result.add(item); + } + } + return result; } /** @@ -124,7 +142,14 @@ public abstract class ItemContainer */ public ItemInstance getItemByItemId(int itemId) { - return _items.values().stream().filter(item -> item.getId() == itemId).findFirst().orElse(null); + for (ItemInstance item : _items.values()) + { + if (item.getId() == itemId) + { + return item; + } + } + return null; } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java index f5eb49c798..6f9ad99431 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.logging.Logger; -import java.util.stream.Collectors; import org.l2jmobius.Config; import org.l2jmobius.gameserver.datatables.ItemTable; @@ -752,7 +751,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(Predicate condition) { - return _skills != null ? _skills.stream().filter(condition).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (condition.test(skill)) + { + result.add(skill); + } + } + return result; } /** @@ -761,7 +773,20 @@ public abstract class Item extends ListenersContainer implements IIdentifiable */ public List getSkills(ItemSkillType type) { - return _skills != null ? _skills.stream().filter(sk -> sk.getType() == type).collect(Collectors.toList()) : null; + if (_skills == null) + { + return null; + } + + final List result = new ArrayList<>(); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + result.add(skill); + } + } + return result; } /** @@ -773,7 +798,13 @@ public abstract class Item extends ListenersContainer implements IIdentifiable { if (_skills != null) { - _skills.stream().filter(sk -> sk.getType() == type).forEach(action); + for (ItemSkillHolder skill : _skills) + { + if (skill.getType() == type) + { + action.accept(skill); + } + } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java index a8642fc02c..53b662012b 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/CommandChannelMatchingRoom.java @@ -56,13 +56,25 @@ public class CommandChannelMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExManageMpccRoomMember(p, this, ExManagePartyRoomMemberType.ADD_MEMBER))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExManageMpccRoomMember(member, this, ExManagePartyRoomMemberType.ADD_MEMBER)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_ENTERED_THE_COMMAND_CHANNEL_MATCHING_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new ExMPCCRoomInfo(this)); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java index 8ab624a085..294562e3e8 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/matching/PartyMatchingRoom.java @@ -57,13 +57,25 @@ public class PartyMatchingRoom extends MatchingRoom @Override protected void notifyNewMember(PlayerInstance player) { - // Update others player - getMembers().stream().filter(p -> p != player).forEach(p -> p.sendPacket(new ExPartyRoomMember(p, this))); + // Update other players + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + member.sendPacket(new ExPartyRoomMember(member, this)); + } + } - // Send SystemMessage to others player + // Send SystemMessage to other players final SystemMessage sm = new SystemMessage(SystemMessageId.C1_HAS_ENTERED_THE_PARTY_ROOM); sm.addPcName(player); - getMembers().stream().filter(p -> p != player).forEach(sm::sendTo); + for (PlayerInstance member : getMembers()) + { + if (member != player) + { + sm.sendTo(member); + } + } // Update new player player.sendPacket(new PartyRoomInfo(this)); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java index 6a84d65c41..2b888fac00 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/olympiad/AbstractOlympiadGame.java @@ -328,15 +328,18 @@ public abstract class AbstractOlympiadGame pet.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); } - player.getServitors().values().stream().filter(s -> !s.isDead()).forEach(s -> + for (Summon s : player.getServitors().values()) { - s.setTarget(null); - s.abortAttack(); - s.abortCast(); - s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - s.stopAllEffectsExceptThoseThatLastThroughDeath(); - s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); - }); + if (!s.isDead()) + { + s.setTarget(null); + s.abortAttack(); + s.abortCast(); + s.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + s.stopAllEffectsExceptThoseThatLastThroughDeath(); + s.getEffectList().stopEffects(info -> info.getSkill().isBlockedInOlympiad(), true, true); + } + } player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp()); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java index 6ac59b6f71..232e51e981 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2798,7 +2798,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(); + } + } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java index 11a2cac6ca..280ca1b7f1 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/residences/AbstractResidence.java @@ -250,7 +250,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(ResidenceFunctionType type) { - return _functions.values().stream().filter(func -> func.getType() == type).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getType() == type) + { + return func; + } + } + return null; } /** @@ -260,7 +267,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id, int level) { - return _functions.values().stream().filter(func -> (func.getId() == id) && (func.getLevel() == level)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if ((func.getId() == id) && (func.getLevel() == level)) + { + return func; + } + } + return null; } /** @@ -269,7 +283,14 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public ResidenceFunction getFunction(int id) { - return _functions.values().stream().filter(func -> (func.getId() == id)).findFirst().orElse(null); + for (ResidenceFunction func : _functions.values()) + { + if (func.getId() == id) + { + return func; + } + } + return null; } /** @@ -288,7 +309,15 @@ public abstract class AbstractResidence extends ListenersContainer implements IN */ public long getFunctionExpiration(ResidenceFunctionType type) { - final ResidenceFunction function = _functions.values().stream().filter(func -> func.getTemplate().getType() == type).findFirst().orElse(null); + ResidenceFunction function = null; + for (ResidenceFunction func : _functions.values()) + { + if (func.getTemplate().getType() == type) + { + function = func; + break; + } + } return function != null ? function.getExpiration() : -1; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/Skill.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/Skill.java index d5d7f67e30..a24de3d184 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/Skill.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/Skill.java @@ -1710,12 +1710,15 @@ public class Skill implements IIdentifiable return null; } - //@formatter:off - final int toggleSkillId = creature.getEffectList().getEffects().stream() - .filter(info -> info.getSkill().getToggleGroupId() == _attachToggleGroupId) - .mapToInt(info -> info.getSkill().getId()) - .findAny().orElse(0); - //@formatter:on + int toggleSkillId = 0; + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if (info.getSkill().getToggleGroupId() == _attachToggleGroupId) + { + toggleSkillId = info.getSkill().getId(); + break; + } + } // No active toggles with this toggle group ID found. if (toggleSkillId == 0) @@ -1723,7 +1726,15 @@ public class Skill implements IIdentifiable return null; } - final AttachSkillHolder attachedSkill = _attachSkills.stream().filter(ash -> ash.getRequiredSkillId() == toggleSkillId).findAny().orElse(null); + AttachSkillHolder attachedSkill = null; + for (AttachSkillHolder ash : _attachSkills) + { + if (ash.getRequiredSkillId() == toggleSkillId) + { + attachedSkill = ash; + break; + } + } // No attached skills for this toggle found. if (attachedSkill == null) diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java index df9ab4edf9..40e4548d3b 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnGroup.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.model.spawns; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -117,7 +116,15 @@ public class SpawnGroup implements Cloneable, ITerritorized, IParameterized getSpawnsById(int id) { - return _spawns.stream().filter(spawn -> spawn.getId() == id).collect(Collectors.toList()); + List result = new ArrayList<>(); + for (NpcSpawnTemplate spawn : _spawns) + { + if (spawn.getId() == id) + { + result.add(spawn); + } + } + return result; } public void spawnAll() diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java index 6b6d0936ff..7b005d7a43 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/spawns/SpawnTemplate.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.model.StatSet; @@ -124,7 +123,15 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized getGroupsByName(String name) { - return _groups.stream().filter(group -> String.valueOf(group.getName()).equalsIgnoreCase(name)).collect(Collectors.toList()); + final List result = new ArrayList<>(); + for (SpawnGroup group : _groups) + { + if (String.valueOf(group.getName()).equalsIgnoreCase(name)) + { + result.add(group); + } + } + return result; } @Override @@ -153,7 +160,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter, Instance instance) { - _groups.stream().filter(groupFilter).forEach(group -> group.spawnAll(instance)); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.spawnAll(instance); + } + } } public void spawnAll() @@ -178,7 +191,13 @@ public class SpawnTemplate implements Cloneable, ITerritorized, IParameterized groupFilter) { - _groups.stream().filter(groupFilter).forEach(SpawnGroup::despawnAll); + for (SpawnGroup group : _groups) + { + if (groupFilter.test(group)) + { + group.despawnAll(); + } + } notifyEvent(script -> script.onSpawnDeactivate(this)); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/zone/ZoneType.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/zone/ZoneType.java index 31fd962f28..8e354d56d3 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/zone/ZoneType.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/zone/ZoneType.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -602,16 +601,15 @@ public abstract class ZoneType extends ListenersContainer public void oustAllPlayers() { - //@formatter:off - _characterList.values().stream() - .filter(Objects::nonNull) - .filter(WorldObject::isPlayer) - .map(WorldObject::getActingPlayer) - .filter(PlayerInstance::isOnline) - .forEach(player -> player.teleToLocation(TeleportWhereType.TOWN)); - //@formatter:off + for (Creature obj : _characterList.values()) + { + if ((obj != null) && obj.isPlayer() && obj.getActingPlayer().isOnline()) + { + obj.getActingPlayer().teleToLocation(TeleportWhereType.TOWN); + } + } } - + /** * @param loc */ diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java index 3af77f270b..ca4d015650 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestPledgeWaitingApplied.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.OptionalInt; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.instancemanager.ClanEntryManager; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -44,10 +42,10 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket return; } - final OptionalInt clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); - if (clanId.isPresent()) + final int clanId = ClanEntryManager.getInstance().getClanIdForPlayerApplication(player.getObjectId()); + if (clanId > 0) { - player.sendPacket(new ExPledgeWaitingListApplied(clanId.getAsInt(), player.getObjectId())); + player.sendPacket(new ExPledgeWaitingListApplied(clanId, player.getObjectId())); } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java index 0dd89633fe..e3acfe8816 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestStartPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -132,7 +130,19 @@ public class RequestStartPledgeWar implements IClientIncomingPacket final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); ClanTable.getInstance().storeClanWars(newClanWar); - clanDeclaringWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); - clanDeclaredWar.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).forEach(p -> p.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN)); + for (ClanMember member : clanDeclaringWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } + for (ClanMember member : clanDeclaredWar.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(UserInfoType.CLAN); + } + } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java index ea82f14b2d..9acb96f7f7 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestSurrenderPledgeWar.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; @@ -57,11 +55,14 @@ public class RequestSurrenderPledgeWar implements IClientIncomingPacket return; } - if (myClan.getMembers().stream().filter(Objects::nonNull).filter(ClanMember::isOnline).map(ClanMember::getPlayerInstance).anyMatch(p -> !p.isInCombat())) + for (ClanMember member : myClan.getMembers()) { - player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; + if ((member != null) && member.isOnline() && member.getPlayerInstance().isInCombat()) + { + player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } } final Clan targetClan = ClanTable.getInstance().getClanByName(_pledgeName); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java index d816e0d741..15e342db65 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdena.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; import java.util.List; -import java.util.Objects; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.CommandChannel; @@ -144,11 +143,14 @@ public class RequestDivideAdena implements IClientIncomingPacket private void cancelDistribution(AdenaDistributionRequest request) { - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance player : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (player != null) + { + player.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + player.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + player.removeRequest(AdenaDistributionRequest.class); + } + } } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java index 3bb98b6517..75eebae776 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/adenadistribution/RequestDivideAdenaCancel.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets.adenadistribution; -import java.util.Objects; - import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.request.AdenaDistributionRequest; @@ -52,12 +50,15 @@ public class RequestDivideAdenaCancel implements IClientIncomingPacket if (_cancel) { final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class); - request.getPlayers().stream().filter(Objects::nonNull).forEach(p -> + for (PlayerInstance p : request.getPlayers()) { - p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); - p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); - p.removeRequest(AdenaDistributionRequest.class); - }); + if (p != null) + { + p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED); + p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET); + p.removeRequest(AdenaDistributionRequest.class); + } + } } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index 2cfdd6c827..d23f5d6ac1 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -50,13 +50,20 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); - if ((reward == null) || reward.isEmpty()) + final Collection rewards = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((rewards == null) || rewards.isEmpty()) { return; } - reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); + for (DailyMissionDataHolder holder : rewards) + { + if (holder.isDisplayable(player)) + { + holder.requestReward(player); + } + } + player.sendPacket(new ExConnectedTimeAndGettableReward(player)); player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java index 1fb40296f5..e914801fd7 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAbnormalStatusUpdateFromTarget.java @@ -16,9 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.Creature; @@ -28,19 +27,18 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class ExAbnormalStatusUpdateFromTarget implements IClientOutgoingPacket { private final Creature _creature; - private final List _effects; + private final List _effects = new ArrayList<>(); public ExAbnormalStatusUpdateFromTarget(Creature creature) { - //@formatter:off _creature = creature; - _effects = creature.getEffectList().getEffects() - .stream() - .filter(Objects::nonNull) - .filter(BuffInfo::isInUse) - .filter(b -> !b.getSkill().isToggle()) - .collect(Collectors.toList()); - //@formatter:on + for (BuffInfo info : creature.getEffectList().getEffects()) + { + if ((info != null) && info.isInUse() && !info.getSkill().isToggle()) + { + _effects.add(info); + } + } } @Override diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java index 0acfbc737e..0419d8b11e 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/ExAlchemySkillList.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.serverpackets; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -37,7 +36,13 @@ public class ExAlchemySkillList implements IClientOutgoingPacket public ExAlchemySkillList(PlayerInstance player) { - _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); + for (Skill s : player.getAllSkills()) + { + if (SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) + { + _skills.add(s); + } + } _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); }