diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index 072e139727..e468c9e044 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -189,7 +198,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /** diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java index a1e52a7621..842177b987 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/impl/ArmorSetData.java @@ -51,6 +51,7 @@ public class ArmorSetData implements IXmlReader private ArmorSet[] _armorSets; private final Map _armorSetMap = new HashMap<>(); + private List[] _itemSets; private final Map> _armorSetItems = new HashMap<>(); protected ArmorSetData() @@ -59,6 +60,7 @@ public class ArmorSetData implements IXmlReader } @Override + @SuppressWarnings("unchecked") public void load() { parseDatapackDirectory("data/stats/armorsets", false); @@ -69,8 +71,15 @@ public class ArmorSetData implements IXmlReader _armorSets[armorSet.getKey()] = armorSet.getValue(); } + _itemSets = new ArrayList[Collections.max(_armorSetItems.keySet()) + 1]; + for (Entry> armorSet : _armorSetItems.entrySet()) + { + _itemSets[armorSet.getKey()] = armorSet.getValue(); + } + LOGGER.info(getClass().getSimpleName() + ": Loaded " + _armorSetMap.size() + " armor sets."); _armorSetMap.clear(); + _armorSetItems.clear(); } @Override @@ -191,7 +200,15 @@ public class ArmorSetData implements IXmlReader */ public List getSets(int itemId) { - return _armorSetItems.getOrDefault(itemId, Collections.emptyList()); + if (_itemSets.length >= itemId) + { + final List sets = _itemSets[itemId]; + if (sets != null) + { + return sets; + } + } + return Collections.emptyList(); } /**