From 5737d9353ecac12ab102082c48ee38df7931e6b1 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 2 Jul 2022 21:13:42 +0000 Subject: [PATCH] Prevent NPE from missing symbol seal data. --- .../gameserver/data/xml/SymbolSealData.java | 11 ++++++++++- .../org/l2jmobius/gameserver/model/actor/Player.java | 12 ++++++++++-- .../gameserver/data/xml/SymbolSealData.java | 11 ++++++++++- .../org/l2jmobius/gameserver/model/actor/Player.java | 12 ++++++++++-- .../gameserver/data/xml/SymbolSealData.java | 11 ++++++++++- .../org/l2jmobius/gameserver/model/actor/Player.java | 12 ++++++++++-- .../gameserver/data/xml/SymbolSealData.java | 11 ++++++++++- .../org/l2jmobius/gameserver/model/actor/Player.java | 12 ++++++++++-- .../gameserver/data/xml/SymbolSealData.java | 11 ++++++++++- .../org/l2jmobius/gameserver/model/actor/Player.java | 12 ++++++++++-- 10 files changed, 100 insertions(+), 15 deletions(-) diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java index e5ff36465a..370a19096d 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java @@ -80,7 +80,16 @@ public class SymbolSealData implements IXmlReader public Skill getSkill(int classId, int symbolId) { - return _data.get(classId).get(symbolId).getSkill(); + final List data = _data.get(classId); + if (data != null) + { + final SymbolSealHolder symbol = data.get(symbolId); + if (symbol != null) + { + return symbol.getSkill(); + } + } + return null; } public static SymbolSealData getInstance() diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java index c972b1654b..f979594a9e 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -6863,7 +6863,11 @@ public class Player extends Playable { for (int i = 0; i < 3; i++) { - removeSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + removeSkill(skill); + } } } } @@ -6897,7 +6901,11 @@ public class Player extends Playable } for (int i = 0; i < usedSlots; i++) { - addSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + addSkill(skill); + } } } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java index e5ff36465a..370a19096d 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java @@ -80,7 +80,16 @@ public class SymbolSealData implements IXmlReader public Skill getSkill(int classId, int symbolId) { - return _data.get(classId).get(symbolId).getSkill(); + final List data = _data.get(classId); + if (data != null) + { + final SymbolSealHolder symbol = data.get(symbolId); + if (symbol != null) + { + return symbol.getSkill(); + } + } + return null; } public static SymbolSealData getInstance() diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java index 8b64693ec7..acc139b4eb 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -6963,7 +6963,11 @@ public class Player extends Playable { for (int i = 0; i < 3; i++) { - removeSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + removeSkill(skill); + } } } } @@ -6997,7 +7001,11 @@ public class Player extends Playable } for (int i = 0; i < usedSlots; i++) { - addSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + addSkill(skill); + } } } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java index e5ff36465a..370a19096d 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java @@ -80,7 +80,16 @@ public class SymbolSealData implements IXmlReader public Skill getSkill(int classId, int symbolId) { - return _data.get(classId).get(symbolId).getSkill(); + final List data = _data.get(classId); + if (data != null) + { + final SymbolSealHolder symbol = data.get(symbolId); + if (symbol != null) + { + return symbol.getSkill(); + } + } + return null; } public static SymbolSealData getInstance() diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java index 1c45e390cc..559a89ae25 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -6980,7 +6980,11 @@ public class Player extends Playable { for (int i = 0; i < 3; i++) { - removeSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + removeSkill(skill); + } } } } @@ -7014,7 +7018,11 @@ public class Player extends Playable } for (int i = 0; i < usedSlots; i++) { - addSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + addSkill(skill); + } } } } diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java index e5ff36465a..370a19096d 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java @@ -80,7 +80,16 @@ public class SymbolSealData implements IXmlReader public Skill getSkill(int classId, int symbolId) { - return _data.get(classId).get(symbolId).getSkill(); + final List data = _data.get(classId); + if (data != null) + { + final SymbolSealHolder symbol = data.get(symbolId); + if (symbol != null) + { + return symbol.getSkill(); + } + } + return null; } public static SymbolSealData getInstance() diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index de61ac0874..9fc1334f42 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7017,7 +7017,11 @@ public class Player extends Playable { for (int i = 0; i < 3; i++) { - removeSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + removeSkill(skill); + } } } } @@ -7051,7 +7055,11 @@ public class Player extends Playable } for (int i = 0; i < usedSlots; i++) { - addSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + addSkill(skill); + } } } } diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java index e5ff36465a..370a19096d 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/SymbolSealData.java @@ -80,7 +80,16 @@ public class SymbolSealData implements IXmlReader public Skill getSkill(int classId, int symbolId) { - return _data.get(classId).get(symbolId).getSkill(); + final List data = _data.get(classId); + if (data != null) + { + final SymbolSealHolder symbol = data.get(symbolId); + if (symbol != null) + { + return symbol.getSkill(); + } + } + return null; } public static SymbolSealData getInstance() diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index 9ca9b269c7..77acb9a819 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7045,7 +7045,11 @@ public class Player extends Playable { for (int i = 0; i < 3; i++) { - removeSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + removeSkill(skill); + } } } } @@ -7079,7 +7083,11 @@ public class Player extends Playable } for (int i = 0; i < usedSlots; i++) { - addSkill(SymbolSealData.getInstance().getSkill(classId, i)); + final Skill skill = SymbolSealData.getInstance().getSkill(classId, i); + if (skill != null) + { + addSkill(skill); + } } } }