Fixed probable PlayerStat SubClassHolder NPE.

This commit is contained in:
MobiusDevelopment 2022-02-15 22:18:18 +00:00
parent 3ac1a738ed
commit 72d6f38f82
23 changed files with 132 additions and 23 deletions

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -399,7 +400,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -401,7 +402,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -401,7 +402,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -400,7 +401,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -392,7 +393,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -392,7 +393,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -392,7 +393,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -390,7 +391,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -391,7 +391,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -391,7 +391,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -391,7 +391,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.actor.transform.TransformTemplate;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.model.stats.MoveType;
@ -416,7 +417,11 @@ public class PlayerStat extends PlayableStat
{
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.model.actor.transform.TransformTemplate;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.model.stats.MoveType;
@ -467,7 +468,11 @@ public class PlayerStat extends PlayableStat
{
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -396,7 +397,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -400,7 +401,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -400,7 +401,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -401,7 +402,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -401,7 +402,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -399,7 +400,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.events.EventDispatcher;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.item.type.WeaponType;
import org.l2jmobius.gameserver.model.skill.AbnormalType;
@ -400,7 +401,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -401,7 +401,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -401,7 +401,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}

View File

@ -401,7 +401,11 @@ public class PlayerStat extends PlayableStat
}
if (getActiveChar().isSubClassActive())
{
return getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getLevel();
final SubClassHolder holder = getActiveChar().getSubClasses().get(getActiveChar().getClassIndex());
if (holder != null)
{
return holder.getLevel();
}
}
return super.getLevel();
}