From a99111eff5318d1af25269962d24d88eaccbb5e2 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 1 Apr 2022 23:17:33 +0000 Subject: [PATCH] Make sure ExperienceData getExpForLevel returns a value. --- .../gameserver/data/xml/ExperienceData.java | 15 ++++++++++++++- .../gameserver/data/xml/ExperienceData.java | 15 ++++++++++++++- .../gameserver/data/xml/ExperienceData.java | 15 ++++++++++++++- .../gameserver/data/xml/ExperienceData.java | 15 ++++++++++++++- 4 files changed, 56 insertions(+), 4 deletions(-) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java index cf7166da0b..0dc56b2c38 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java @@ -97,7 +97,20 @@ public class ExperienceData public long getExpForLevel(int level) { - return _expTable.get(level); + if (level <= 0) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return 0; + } + + final Long exp = _expTable.get(level); + if (exp == null) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return _expTable.get((int) MAX_LEVEL); + } + + return exp.longValue(); } public byte getMaxLevel() diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java index cf7166da0b..0dc56b2c38 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java @@ -97,7 +97,20 @@ public class ExperienceData public long getExpForLevel(int level) { - return _expTable.get(level); + if (level <= 0) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return 0; + } + + final Long exp = _expTable.get(level); + if (exp == null) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return _expTable.get((int) MAX_LEVEL); + } + + return exp.longValue(); } public byte getMaxLevel() diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java index ed694d33b7..19090a84e2 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java @@ -79,7 +79,20 @@ public class ExperienceData implements IXmlReader */ public long getExpForLevel(int level) { - return _expTable.get(level); + if (level <= 0) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return 0; + } + + final Long exp = _expTable.get(level); + if (exp == null) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return _expTable.get((int) MAX_LEVEL); + } + + return exp.longValue(); } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java index ed694d33b7..19090a84e2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/ExperienceData.java @@ -79,7 +79,20 @@ public class ExperienceData implements IXmlReader */ public long getExpForLevel(int level) { - return _expTable.get(level); + if (level <= 0) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return 0; + } + + final Long exp = _expTable.get(level); + if (exp == null) + { + LOGGER.warning(getClass().getSimpleName() + ": Requested exp for level " + level); + return _expTable.get((int) MAX_LEVEL); + } + + return exp.longValue(); } /**