diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java index 3befae44c53fe44d3bbb1e038e9626a3608dc29c..761860db67a440766d28fbd9c2efa77cfe5a237d 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java @@ -22,8 +22,8 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; -import javolution.util.FastList; import quests.Q10286_ReunionWithSirra.Q10286_ReunionWithSirra; import ai.npc.AbstractNpcAI; @@ -66,9 +66,9 @@ public final class IceQueensCastleNormalBattle extends AbstractNpcAI { protected class IQCNBWorld extends InstanceWorld { - ArrayList<L2PcInstance> playersInside = new ArrayList<>(); - ArrayList<L2Npc> knightStatues = new ArrayList<>(); - List<L2Attackable> spawnedMobs = new FastList<>(); + List<L2PcInstance> playersInside = new ArrayList<>(); + List<L2Npc> knightStatues = new ArrayList<>(); + List<L2Attackable> spawnedMobs = new CopyOnWriteArrayList<>(); L2NpcInstance controller = null; L2GrandBossInstance freya = null; L2QuestGuardInstance supp_Jinia = null; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java index 472969e70f658ee9fe9808fd807714ef290304f2..b28409523f48ed7d7064da1f233329b438d0dc1d 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java @@ -18,10 +18,9 @@ */ package instances.Pailaka; +import java.util.ArrayList; import java.util.List; -import javolution.util.FastList; - import com.l2jserver.gameserver.ThreadPoolManager; import com.l2jserver.gameserver.ai.CtrlIntention; import com.l2jserver.gameserver.datatables.SkillData; @@ -346,13 +345,13 @@ public final class PailakaDevilsLegacy extends Quest // To be sure, reduce again ((L2Attackable) npc).reduceHate(player, 9999); // Spawn followers - _followerslist = new FastList<>(); + _followerslist = new ArrayList<>(); for (int[] SPAWN : FOLLOWERS_SPAWNS) { - L2Npc _follower = addSpawn(FOLLOWERS, SPAWN[0], SPAWN[1], SPAWN[2], SPAWN[3], false, 0, true, player.getInstanceId()); - if (_follower != null) + L2Npc follower = addSpawn(FOLLOWERS, SPAWN[0], SPAWN[1], SPAWN[2], SPAWN[3], false, 0, true, player.getInstanceId()); + if (follower != null) { - _followerslist.add(_follower); + _followerslist.add(follower); } } return null; @@ -545,7 +544,7 @@ public final class PailakaDevilsLegacy extends Quest } break; case LEMATAN: - if ((_followerslist != null) && !_followerslist.isEmpty()) + if (_followerslist != null) { for (L2Npc _follower : _followerslist) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java index 5477583a653e8a989450b0857b60bc087ce512ce..832abc20f585c4cd7747a2a8deeaad6d2b9eb3d2 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java @@ -19,6 +19,7 @@ package instances.SeedOfDestruction; import java.io.File; +import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; @@ -29,9 +30,6 @@ import java.util.logging.Level; import javax.xml.parsers.DocumentBuilderFactory; -import javolution.util.FastList; -import javolution.util.FastMap; - import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; @@ -81,7 +79,7 @@ public final class Stage1 extends Quest { protected class SOD1World extends InstanceWorld { - public Map<L2Npc, Boolean> npcList = new FastMap<>(); + public Map<L2Npc, Boolean> npcList = new HashMap<>(); public int deviceSpawnedMobCount = 0; public Lock lock = new ReentrantLock(); } @@ -106,7 +104,7 @@ public final class Stage1 extends Quest private final Map<Integer, L2Territory> _spawnZoneList = new HashMap<>(); private final Map<Integer, List<SODSpawn>> _spawnList = new HashMap<>(); - private final List<Integer> _mustKillMobsId = new FastList<>(); + private final List<Integer> _mustKillMobsId = new ArrayList<>(); // teleports private static final Location ENTER_TELEPORT_1 = new Location(-242759, 219981, -9986); @@ -293,7 +291,7 @@ public final class Stage1 extends Quest int flag = Integer.parseInt(attrs.getNamedItem("flag").getNodeValue()); if (!_spawnList.containsKey(flag)) { - _spawnList.put(flag, new FastList<SODSpawn>()); + _spawnList.put(flag, new ArrayList<SODSpawn>()); } for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling()) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/HallOfSuffering.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/HallOfSuffering.java index 394834f273968c4825f0ed94d7a5d0c919e0ffb3..ae51fcd9e6fa71dcbb54402bb167b3f5424c5b76 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/HallOfSuffering.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfInfinity/HallOfSuffering.java @@ -19,10 +19,9 @@ package instances.SeedOfInfinity; import java.util.Calendar; +import java.util.HashMap; import java.util.Map; -import javolution.util.FastMap; - import com.l2jserver.gameserver.ai.CtrlEvent; import com.l2jserver.gameserver.cache.HtmCache; import com.l2jserver.gameserver.datatables.SkillData; @@ -55,7 +54,7 @@ public final class HallOfSuffering extends Quest { protected class HSWorld extends InstanceWorld { - public Map<L2Npc, Boolean> npcList = new FastMap<>(); + public Map<L2Npc, Boolean> npcList = new HashMap<>(); public L2Npc klodekus = null; public L2Npc klanikus = null; public boolean isBossesAttacked = false; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java index e42e0cd913ff0041b73a907bf96d420019bcdd84..254ffefb7b6d2d78642bf075d81b3d314927266b 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java @@ -18,11 +18,10 @@ */ package mods.eventmodRabbits; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ScheduledFuture; -import javolution.util.FastList; - import com.l2jserver.Config; import com.l2jserver.gameserver.Announcements; import com.l2jserver.gameserver.ThreadPoolManager; @@ -126,7 +125,7 @@ public class eventmodRabbits extends Event } // Initialize list - _npclist = new FastList<>(); + _npclist = new ArrayList<>(); // Set Event active _isactive = true; @@ -185,15 +184,12 @@ public class eventmodRabbits extends Event _eventTask.cancel(true); _eventTask = null; } - // Despawn Npc's - if (!_npclist.isEmpty()) + // Despawn NPCs + for (L2Npc _npc : _npclist) { - for (L2Npc _npc : _npclist) + if (_npc != null) { - if (_npc != null) - { - _npc.deleteMe(); - } + _npc.deleteMe(); } } _npclist.clear(); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java index fa22aba444748e2111e1f1cd199b176871815ecf..5593910d132f26eb02cdc636dc31fd6fb956b664 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRace/eventmodRace.java @@ -18,11 +18,11 @@ */ package mods.eventmodRace; +import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; -import javolution.util.FastList; - import com.l2jserver.Config; import com.l2jserver.gameserver.Announcements; import com.l2jserver.gameserver.ThreadPoolManager; @@ -134,8 +134,8 @@ public class eventmodRace extends Event return false; } // Initialize list - _npclist = new FastList<>(); - _players = new FastList<>(); + _npclist = new ArrayList<>(); + _players = new CopyOnWriteArrayList<>(); // Set Event active _isactive = true; // Spawn Manager @@ -227,26 +227,20 @@ public class eventmodRace extends Event } // Untransform players // Teleport to event start point - if (!_players.isEmpty()) + for (L2PcInstance player : _players) { - for (L2PcInstance player : _players) + if ((player != null) && player.isOnline()) { - if ((player != null) && player.isOnline()) - { - player.untransform(); - player.teleToLocation(_npc.getX(), _npc.getY(), _npc.getZ(), true); - } + player.untransform(); + player.teleToLocation(_npc.getX(), _npc.getY(), _npc.getZ(), true); } } - // Despawn Npc's - if (!_npclist.isEmpty()) + // Despawn NPCs + for (L2Npc _npc : _npclist) { - for (L2Npc _npc : _npclist) + if (_npc != null) { - if (_npc != null) - { - _npc.deleteMe(); - } + _npc.deleteMe(); } } _npclist.clear(); @@ -378,25 +372,17 @@ public class eventmodRace extends Event private int isRacing(L2PcInstance player) { - if (_players.isEmpty()) - { - return 0; - } - if (_players.contains(player)) - { - return 1; - } - return 0; + return _players.contains(player) ? 1 : 0; } private L2Npc recordSpawn(int npcId, int x, int y, int z, int heading, boolean randomOffSet, long despawnDelay) { - L2Npc _tmp = addSpawn(npcId, x, y, z, heading, randomOffSet, despawnDelay); - if (_tmp != null) + final L2Npc npc = addSpawn(npcId, x, y, z, heading, randomOffSet, despawnDelay); + if (npc != null) { - _npclist.add(_tmp); + _npclist.add(npc); } - return _tmp; + return npc; } private void transformPlayer(L2PcInstance player) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java index 80285878fa35677809949b3a8ec59482fbca9a19..5d4d18b10e03d5059604fcd490f80c791bf50711 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java @@ -19,14 +19,15 @@ package quests.Q00350_EnhanceYourWeapon; import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.StringTokenizer; import java.util.logging.Level; import javax.xml.parsers.DocumentBuilderFactory; -import javolution.util.FastList; -import javolution.util.FastMap; - import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; @@ -130,9 +131,9 @@ public class Q00350_EnhanceYourWeapon extends Quest private static final int GREEN_SOUL_CRYSTAL0_ID = 4640; private static final int BLUE_SOUL_CRYSTAL0_ID = 4651; - private static final FastMap<Integer, SoulCrystal> _soulCrystals = new FastMap<>(); + private static final Map<Integer, SoulCrystal> SOUL_CRYSTALS = new HashMap<>(); // <npcid, <level, LevelingInfo>> - private static final FastMap<Integer, FastMap<Integer, LevelingInfo>> _npcLevelingInfos = new FastMap<>(); + private static final Map<Integer, Map<Integer, LevelingInfo>> NPC_LEVELING_INFO = new HashMap<>(); public Q00350_EnhanceYourWeapon(int questId, String name, String descr) { @@ -140,7 +141,7 @@ public class Q00350_EnhanceYourWeapon extends Quest addStartNpc(STARTING_NPCS); addTalkId(STARTING_NPCS); load(); - for (int npcId : _npcLevelingInfos.keySet()) + for (int npcId : NPC_LEVELING_INFO.keySet()) { addSkillSeeId(npcId); addKillId(npcId); @@ -178,7 +179,7 @@ public class Q00350_EnhanceYourWeapon extends Quest @Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { - if (npc.isAttackable() && _npcLevelingInfos.containsKey(npc.getId())) + if (npc.isAttackable() && NPC_LEVELING_INFO.containsKey(npc.getId())) { levelSoulCrystals((L2Attackable) npc, killer); } @@ -199,7 +200,7 @@ public class Q00350_EnhanceYourWeapon extends Quest { return null; } - if (!npc.isAttackable() || npc.isDead() || !_npcLevelingInfos.containsKey(npc.getId())) + if (!npc.isAttackable() || npc.isDead() || !NPC_LEVELING_INFO.containsKey(npc.getId())) { return null; } @@ -302,7 +303,7 @@ public class Q00350_EnhanceYourWeapon extends Quest for (L2ItemInstance item : inv) { int itemId = item.getId(); - if (!_soulCrystals.containsKey(itemId)) + if (!SOUL_CRYSTALS.containsKey(itemId)) { continue; } @@ -311,14 +312,14 @@ public class Q00350_EnhanceYourWeapon extends Quest { return null; } - ret = _soulCrystals.get(itemId); + ret = SOUL_CRYSTALS.get(itemId); } return ret; } private static boolean isPartyLevelingMonster(int npcId) { - for (LevelingInfo li : _npcLevelingInfos.get(npcId).values()) + for (LevelingInfo li : NPC_LEVELING_INFO.get(npcId).values()) { if (li.getAbsorbCrystalType() != AbsorbCrystalType.LAST_HIT) { @@ -330,19 +331,19 @@ public class Q00350_EnhanceYourWeapon extends Quest private static void levelCrystal(L2PcInstance player, SoulCrystal sc, L2Attackable mob) { - if ((sc == null) || !_npcLevelingInfos.containsKey(mob.getId())) + if ((sc == null) || !NPC_LEVELING_INFO.containsKey(mob.getId())) { return; } // If the crystal level is way too high for this mob, say that we can't increase it - if (!_npcLevelingInfos.get(mob.getId()).containsKey(sc.getLevel())) + if (!NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel())) { player.sendPacket(SystemMessageId.SOUL_CRYSTAL_ABSORBING_REFUSED); return; } - if (getRandom(100) <= _npcLevelingInfos.get(mob.getId()).get(sc.getLevel()).getChance()) + if (getRandom(100) <= NPC_LEVELING_INFO.get(mob.getId()).get(sc.getLevel()).getChance()) { exchangeCrystal(player, mob, sc.getItemId(), sc.getLeveledItemId(), false); } @@ -366,7 +367,7 @@ public class Q00350_EnhanceYourWeapon extends Quest return; } - FastMap<L2PcInstance, SoulCrystal> players = FastMap.newInstance(); + Map<L2PcInstance, SoulCrystal> players = new HashMap<>(); int maxSCLevel = 0; // TODO: what if mob support last_hit + party? @@ -387,7 +388,7 @@ public class Q00350_EnhanceYourWeapon extends Quest } players.put(pl, sc); - if ((maxSCLevel < sc.getLevel()) && _npcLevelingInfos.get(mob.getId()).containsKey(sc.getLevel())) + if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel())) { maxSCLevel = sc.getLevel(); } @@ -399,14 +400,14 @@ public class Q00350_EnhanceYourWeapon extends Quest if (sc != null) { players.put(killer, sc); - if ((maxSCLevel < sc.getLevel()) && _npcLevelingInfos.get(mob.getId()).containsKey(sc.getLevel())) + if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel())) { maxSCLevel = sc.getLevel(); } } } // Init some useful vars - LevelingInfo mainlvlInfo = _npcLevelingInfos.get(mob.getId()).get(maxSCLevel); + LevelingInfo mainlvlInfo = NPC_LEVELING_INFO.get(mob.getId()).get(maxSCLevel); if (mainlvlInfo == null) { @@ -464,7 +465,7 @@ public class Q00350_EnhanceYourWeapon extends Quest case PARTY_RANDOM: if (killer.getParty() != null) { - FastList<L2PcInstance> luckyParty = FastList.newInstance(); + List<L2PcInstance> luckyParty = new ArrayList<>(); luckyParty.addAll(killer.getParty().getMembers()); while ((getRandom(100) < 33) && !luckyParty.isEmpty()) { @@ -474,7 +475,6 @@ public class Q00350_EnhanceYourWeapon extends Quest levelCrystal(lucky, players.get(lucky), mob); } } - FastList.recycle(luckyParty); } else if (getRandom(100) < 33) { @@ -498,7 +498,6 @@ public class Q00350_EnhanceYourWeapon extends Quest levelCrystal(killer, players.get(killer), mob); break; } - FastMap.recycle(players); } /** @@ -556,7 +555,7 @@ public class Q00350_EnhanceYourWeapon extends Quest } int leveledItemId = Integer.parseInt(attrs.getNamedItem("leveledItemId").getNodeValue()); - _soulCrystals.put(itemId, new SoulCrystal(level, itemId, leveledItemId)); + SOUL_CRYSTALS.put(itemId, new SoulCrystal(level, itemId, leveledItemId)); } } } @@ -573,10 +572,9 @@ public class Q00350_EnhanceYourWeapon extends Quest _log.severe("[EnhanceYourWeapon] Missing npcId in NPC List, skipping"); continue; } - int npcId = Integer.parseInt(att.getNodeValue()); - - FastMap<Integer, LevelingInfo> temp = new FastMap<>(); + int npcId = Integer.parseInt(att.getNodeValue()); + Map<Integer, LevelingInfo> temp = new HashMap<>(); for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling()) { boolean isSkillNeeded = false; @@ -644,7 +642,7 @@ public class Q00350_EnhanceYourWeapon extends Quest _log.severe("[EnhanceYourWeapon] No leveling info for npcId: " + npcId + ", skipping"); continue; } - _npcLevelingInfos.put(npcId, temp); + NPC_LEVELING_INFO.put(npcId, temp); } } } @@ -655,8 +653,8 @@ public class Q00350_EnhanceYourWeapon extends Quest { _log.log(Level.WARNING, "[EnhanceYourWeapon] Could not parse levelUpCrystalData.xml file: " + e.getMessage(), e); } - _log.info("[EnhanceYourWeapon] Loaded " + _soulCrystals.size() + " Soul Crystal data."); - _log.info("[EnhanceYourWeapon] Loaded " + _npcLevelingInfos.size() + " npc Leveling info data."); + _log.info("[EnhanceYourWeapon] Loaded " + SOUL_CRYSTALS.size() + " Soul Crystal data."); + _log.info("[EnhanceYourWeapon] Loaded " + NPC_LEVELING_INFO.size() + " npc Leveling info data."); } public static void main(String[] args) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java index 902901086e36e20b1649ca332617cb1258026ecb..5f5e89ee88a43075368b2fc094e45c0ef8ea7e22 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java @@ -18,6 +18,11 @@ */ package quests.SagasScripts; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.l2jserver.Config; import com.l2jserver.gameserver.ai.CtrlIntention; import com.l2jserver.gameserver.instancemanager.QuestManager; @@ -34,8 +39,6 @@ import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.skills.Skill; import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse; import com.l2jserver.gameserver.network.serverpackets.NpcSay; -import com.l2jserver.util.L2FastList; -import com.l2jserver.util.L2FastMap; /** * Saga quests superclass. @@ -43,7 +46,7 @@ import com.l2jserver.util.L2FastMap; */ public class SagasSuperClass extends Quest { - private static L2FastList<Quest> _scripts = new L2FastList<>(); + private static List<Quest> _scripts = new ArrayList<>(); public int[] NPC = {}; public int[] Items = {}; public int[] Mob = {}; @@ -51,7 +54,7 @@ public class SagasSuperClass extends Quest public int[] prevclass = {}; public Location[] npcSpawnLocations = {}; public String[] Text = {}; - private static final L2FastMap<L2Npc, Integer> _spawnList = new L2FastMap<>(); + private static final Map<L2Npc, Integer> _spawnList = new HashMap<>(); // @formatter:off private static int[][] QuestClass = { @@ -562,7 +565,7 @@ public class SagasSuperClass extends Quest L2Party party = player.getParty(); if (party != null) { - L2FastList<QuestState> PartyQuestMembers = new L2FastList<>(); + List<QuestState> partyQuestMembers = new ArrayList<>(); for (L2PcInstance player1 : party.getMembers()) { QuestState st1 = findQuest(player1); @@ -570,13 +573,13 @@ public class SagasSuperClass extends Quest { if (st1.isCond(15)) { - PartyQuestMembers.add(st1); + partyQuestMembers.add(st1); } } } - if (PartyQuestMembers.size() > 0) + if (partyQuestMembers.size() > 0) { - QuestState st2 = PartyQuestMembers.get(getRandom(PartyQuestMembers.size())); + QuestState st2 = partyQuestMembers.get(getRandom(partyQuestMembers.size())); giveHalishaMark(st2); } } @@ -1002,24 +1005,15 @@ public class SagasSuperClass extends Quest @Override public boolean unload() { - // if sub classes aren't loaded, just unload superclass - if (_scripts.size() == 0) + for (Quest script : _scripts) { - return super.unload(); - } - - // unload all subclasses - for (int index = 0; index < _scripts.size(); index++) - { - if (_scripts.get(index) == null) + if (script == null) { continue; } - QuestManager.getInstance().removeQuest(_scripts.get(index)); + QuestManager.getInstance().removeQuest(script); } _scripts.clear(); - - // now unload superclass return super.unload(); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java index c47670ccf28f8cd1f76600339d47339f85225cc1..e91f999f0e4bb0ac82bdfe6aef5b4c968b986471 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java @@ -19,6 +19,8 @@ package quests.TerritoryWarScripts; import java.util.Calendar; +import java.util.HashMap; +import java.util.Map; import quests.Q00147_PathtoBecominganEliteMercenary.Q00147_PathtoBecominganEliteMercenary; import quests.Q00148_PathtoBecominganExaltedMercenary.Q00148_PathtoBecominganExaltedMercenary; @@ -41,7 +43,6 @@ import com.l2jserver.gameserver.model.skills.Skill; import com.l2jserver.gameserver.network.NpcStringId; import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage; import com.l2jserver.gameserver.util.Util; -import com.l2jserver.util.L2FastMap; /** * Territory War quests superclass. @@ -49,9 +50,9 @@ import com.l2jserver.util.L2FastMap; */ public class TerritoryWarSuperClass extends Quest { - private static L2FastMap<Integer, TerritoryWarSuperClass> _forTheSakeScripts = new L2FastMap<>(); - private static L2FastMap<Integer, TerritoryWarSuperClass> _protectTheScripts = new L2FastMap<>(); - private static L2FastMap<Integer, TerritoryWarSuperClass> _killTheScripts = new L2FastMap<>(); + private static Map<Integer, TerritoryWarSuperClass> _forTheSakeScripts = new HashMap<>(); + private static Map<Integer, TerritoryWarSuperClass> _protectTheScripts = new HashMap<>(); + private static Map<Integer, TerritoryWarSuperClass> _killTheScripts = new HashMap<>(); // "For the Sake of the Territory ..." quests variables public int CATAPULT_ID;