Proper naming for various data holding classes.

This commit is contained in:
MobiusDevelopment
2020-01-28 11:48:32 +00:00
parent 8ebd210ac3
commit 8dbfd09e0c
934 changed files with 22626 additions and 22626 deletions
@@ -19,7 +19,7 @@ package ai.areas.IvoryTower.AvantGarde;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.MultisellData; import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -124,11 +124,11 @@ public class AvantGarde extends AbstractNpcAI
*/ */
public static void showTransformSkillList(PlayerInstance player) public static void showTransformSkillList(PlayerInstance player)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableTransformSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableTransformSkills(player);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
final int minlevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, SkillTreesData.getInstance().getTransformSkillTree()); final int minlevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, SkillTreeData.getInstance().getTransformSkillTree());
if (minlevel > 0) if (minlevel > 0)
{ {
// No more skills to learn, come back when you level. // No more skills to learn, come back when you level.
@@ -22,7 +22,7 @@ import java.util.Map.Entry;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.enums.UserInfoType;
@@ -340,8 +340,8 @@ public class AwakeningMaster extends AbstractNpcAI
} }
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2); giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -21,7 +21,7 @@ import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
@@ -151,8 +151,8 @@ public class Hardin extends AbstractNpcAI
player.setBaseClass(player.getActiveClass()); player.setBaseClass(player.getActiveClass());
} }
// Adjustments // Adjustments
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -18,7 +18,7 @@ package ai.areas.TalkingIsland.MonkOfChaos;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.SubclassType; import org.l2jmobius.gameserver.enums.SubclassType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
@@ -92,7 +92,7 @@ public class MonkOfChaos extends AbstractNpcAI
if (player.isDualClassActive()) if (player.isDualClassActive())
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
@@ -104,7 +104,7 @@ public class MonkOfChaos extends AbstractNpcAI
} }
else else
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
@@ -146,7 +146,7 @@ public class MonkOfChaos extends AbstractNpcAI
} }
takeItems(player, 57, CANCEL_FEE); takeItems(player, 57, CANCEL_FEE);
for (SkillLearn skillLearn : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS)) for (SkillLearn skillLearn : SkillTreeData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
{ {
final Skill skill = player.getKnownSkill(skillLearn.getSkillId()); final Skill skill = player.getKnownSkill(skillLearn.getSkillId());
if (skill != null) if (skill != null)
@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.CategoryData; import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
@@ -616,7 +616,7 @@ public class Raina extends AbstractNpcAI
player.setActiveClass(classIndex); player.setActiveClass(classIndex);
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html")); player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html"));
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendSkillList(); player.sendSkillList();
giveItems(player, getCloakId(player), 1); giveItems(player, getCloakId(player), 1);
@@ -651,7 +651,7 @@ public class Raina extends AbstractNpcAI
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED));
player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_HAS_BEEN_ADDED); player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_HAS_BEEN_ADDED);
player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html")); player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html"));
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendSkillList(); player.sendSkillList();
giveItems(player, getPowerItemId(player), 1); giveItems(player, getPowerItemId(player), 1);
@@ -18,7 +18,7 @@ package ai.others.AlchemistManager;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@@ -74,7 +74,7 @@ public class AlchemistManager extends AbstractNpcAI
{ {
if (player.getRace() == Race.ERTHEIA) if (player.getRace() == Race.ERTHEIA)
{ {
final List<SkillLearn> alchemySkills = SkillTreesData.getInstance().getAvailableAlchemySkills(player); final List<SkillLearn> alchemySkills = SkillTreeData.getInstance().getAvailableAlchemySkills(player);
if (alchemySkills.isEmpty()) if (alchemySkills.isEmpty())
{ {
@@ -26,7 +26,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.CastleSide; import org.l2jmobius.gameserver.enums.CastleSide;
import org.l2jmobius.gameserver.instancemanager.CastleManorManager; import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
import org.l2jmobius.gameserver.instancemanager.FortManager; import org.l2jmobius.gameserver.instancemanager.FortManager;
@@ -987,7 +987,7 @@ public class CastleChamberlain extends AbstractNpcAI
else else
{ {
final String listName = "tel" + castle.getCastleFunction(Castle.FUNC_TELEPORT).getLvl(); final String listName = "tel" + castle.getCastleFunction(Castle.FUNC_TELEPORT).getLvl();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(npc.getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(npc.getId(), listName);
if (holder != null) if (holder != null)
{ {
holder.showTeleportList(player, npc, "Quest CastleChamberlain goto"); holder.showTeleportList(player, npc, "Quest CastleChamberlain goto");
@@ -1009,7 +1009,7 @@ public class CastleChamberlain extends AbstractNpcAI
final int funcLvl = (listId.length() >= 4) ? CommonUtil.parseInt(listId.substring(3), -1) : -1; final int funcLvl = (listId.length() >= 4) ? CommonUtil.parseInt(listId.substring(3), -1) : -1;
if (func.getLvl() == funcLvl) if (func.getLvl() == funcLvl)
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(npc.getId(), listId); final TeleportHolder holder = TeleporterData.getInstance().getHolder(npc.getId(), listId);
if (holder != null) if (holder != null)
{ {
holder.doTeleport(player, npc, CommonUtil.parseNextInt(st, -1)); holder.doTeleport(player, npc, CommonUtil.parseNextInt(st, -1));
@@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.data.xml.impl.ResidenceFunctionsData; import org.l2jmobius.gameserver.data.xml.impl.ResidenceFunctionsData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.ClanHallGrade; import org.l2jmobius.gameserver.enums.ClanHallGrade;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -186,7 +186,7 @@ public class ClanHallManager extends AbstractNpcAI
final int teleportLevel = clanHall.getFunctionLevel(ResidenceFunctionType.TELEPORT); final int teleportLevel = clanHall.getFunctionLevel(ResidenceFunctionType.TELEPORT);
if (teleportLevel > 0) if (teleportLevel > 0)
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(npc.getId(), "tel" + teleportLevel); final TeleportHolder holder = TeleporterData.getInstance().getHolder(npc.getId(), "tel" + teleportLevel);
if (holder != null) if (holder != null)
{ {
if (!st.hasMoreTokens()) if (!st.hasMoreTokens())
@@ -34,7 +34,7 @@ import org.l2jmobius.commons.util.IXmlReader;
import org.l2jmobius.gameserver.data.xml.impl.CategoryData; import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
@@ -423,8 +423,8 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
} }
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
{ {
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -854,8 +854,8 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
} }
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
{ {
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -20,7 +20,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@@ -97,7 +97,7 @@ public class HealerTrainer extends AbstractNpcAI
break; break;
} }
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableTransferSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableTransferSkills(player);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN); player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN);
@@ -136,7 +136,7 @@ public class HealerTrainer extends AbstractNpcAI
else else
{ {
boolean hasSkills = false; boolean hasSkills = false;
final Collection<SkillLearn> skills = SkillTreesData.getInstance().getTransferSkillTree(player.getClassId()).values(); final Collection<SkillLearn> skills = SkillTreeData.getInstance().getTransferSkillTree(player.getClassId()).values();
for (SkillLearn skillLearn : skills) for (SkillLearn skillLearn : skills)
{ {
final Skill skill = player.getKnownSkill(skillLearn.getSkillId()); final Skill skill = player.getKnownSkill(skillLearn.getSkillId());
@@ -18,7 +18,7 @@ package features.SkillTransfer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
import org.l2jmobius.gameserver.model.PlayerCondOverride; import org.l2jmobius.gameserver.model.PlayerCondOverride;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
@@ -111,7 +111,7 @@ public class SkillTransfer extends AbstractNpcAI
long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false); long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false);
for (Skill sk : player.getAllSkills()) for (Skill sk : player.getAllSkills())
{ {
for (SkillLearn s : SkillTreesData.getInstance().getTransferSkillTree(player.getClassId()).values()) for (SkillLearn s : SkillTreeData.getInstance().getTransferSkillTree(player.getClassId()).values())
{ {
if (s.getSkillId() == sk.getId()) if (s.getSkillId() == sk.getId())
{ {
@@ -24,7 +24,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -278,12 +278,12 @@ public class AdminBuffs implements IAdminCommandHandler
*/ */
private void switchSkills(PlayerInstance gmchar, boolean toAuraSkills) private void switchSkills(PlayerInstance gmchar, boolean toAuraSkills)
{ {
final Collection<Skill> skills = toAuraSkills ? SkillTreesData.getInstance().getGMSkillTree() : SkillTreesData.getInstance().getGMAuraSkillTree(); final Collection<Skill> skills = toAuraSkills ? SkillTreeData.getInstance().getGMSkillTree() : SkillTreeData.getInstance().getGMAuraSkillTree();
for (Skill skill : skills) for (Skill skill : skills)
{ {
gmchar.removeSkill(skill, false); // Don't Save GM skills to database gmchar.removeSkill(skill, false); // Don't Save GM skills to database
} }
SkillTreesData.getInstance().addSkills(gmchar, toAuraSkills); SkillTreeData.getInstance().addSkills(gmchar, toAuraSkills);
} }
@Override @Override
@@ -33,7 +33,7 @@ import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.data.sql.impl.CharNameTable; import org.l2jmobius.gameserver.data.sql.impl.CharNameTable;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
@@ -423,8 +423,8 @@ public class AdminEditChar implements IAdminCommandHandler
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName(); final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
{ {
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.data.sql.impl.CrestTable;
import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData; import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.data.xml.impl.BuyListData; import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
import org.l2jmobius.gameserver.data.xml.impl.CombinationItemsData; import org.l2jmobius.gameserver.data.xml.impl.CombinationItemsData;
import org.l2jmobius.gameserver.data.xml.impl.DoorData; import org.l2jmobius.gameserver.data.xml.impl.DoorData;
@@ -45,7 +45,7 @@ import org.l2jmobius.gameserver.data.xml.impl.PrimeShopData;
import org.l2jmobius.gameserver.data.xml.impl.SayuneData; import org.l2jmobius.gameserver.data.xml.impl.SayuneData;
import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData; import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.data.xml.impl.TransformData; import org.l2jmobius.gameserver.data.xml.impl.TransformData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
@@ -184,7 +184,7 @@ public class AdminReload implements IAdminCommandHandler
} }
case "teleport": case "teleport":
{ {
TeleportersData.getInstance().load(); TeleporterData.getInstance().load();
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Teleports."); AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Teleports.");
break; break;
} }
@@ -297,7 +297,7 @@ public class AdminReload implements IAdminCommandHandler
} }
case "sets": case "sets":
{ {
ArmorSetsData.getInstance().load(); ArmorSetData.getInstance().load();
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Armor sets data."); AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Armor sets data.");
break; break;
} }
@@ -23,7 +23,7 @@ import java.util.logging.Logger;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -324,7 +324,7 @@ public class AdminSkill implements IAdminCommandHandler
activeChar.sendPacket(sm); activeChar.sendPacket(sm);
} }
final Map<Integer, SkillLearn> skills = SkillTreesData.getInstance().getMaxPledgeSkills(clan, includeSquad); final Map<Integer, SkillLearn> skills = SkillTreeData.getInstance().getMaxPledgeSkills(clan, includeSquad);
for (SkillLearn s : skills.values()) for (SkillLearn s : skills.values())
{ {
clan.addNewSkill(SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel())); clan.addNewSkill(SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel()));
@@ -29,7 +29,7 @@ import java.util.regex.Pattern;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.datatables.SpawnTable; import org.l2jmobius.gameserver.datatables.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
@@ -284,7 +284,7 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
// Reload. // Reload.
SpawnsData.getInstance().init(); SpawnData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload(); ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
@@ -29,7 +29,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.cache.HtmCache; import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.enums.DropType; import org.l2jmobius.gameserver.enums.DropType;
import org.l2jmobius.gameserver.handler.CommunityBoardHandler; import org.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -300,7 +300,7 @@ public class DropSearchBoard implements IParseBoardHandler
case "_bbs_npc_trace": case "_bbs_npc_trace":
{ {
final int npcId = Integer.parseInt(params[1]); final int npcId = Integer.parseInt(params[1]);
final List<NpcSpawnTemplate> spawnList = SpawnsData.getInstance().getNpcSpawns(npc -> npc.getId() == npcId); final List<NpcSpawnTemplate> spawnList = SpawnData.getInstance().getNpcSpawns(npc -> npc.getId() == npcId);
if (spawnList.isEmpty()) if (spawnList.isEmpty())
{ {
player.sendMessage("Cannot find any spawn. Maybe dropped by a boss or instance monster."); player.sendMessage("Cannot find any spawn. Maybe dropped by a boss or instance monster.");
@@ -37,7 +37,7 @@ import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
import org.l2jmobius.gameserver.data.xml.impl.ExperienceData; import org.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import org.l2jmobius.gameserver.data.xml.impl.MultisellData; import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.handler.CommunityBoardHandler; import org.l2jmobius.gameserver.handler.CommunityBoardHandler;
import org.l2jmobius.gameserver.handler.IParseBoardHandler; import org.l2jmobius.gameserver.handler.IParseBoardHandler;
import org.l2jmobius.gameserver.instancemanager.PremiumManager; import org.l2jmobius.gameserver.instancemanager.PremiumManager;
@@ -285,7 +285,7 @@ public class HomeBoard implements IParseBoardHandler
player.setCurrentCp(player.getMaxCp()); player.setCurrentCp(player.getMaxCp());
if (Config.COMMUNITYBOARD_DELEVEL_REMOVE_ABILITIES) if (Config.COMMUNITYBOARD_DELEVEL_REMOVE_ABILITIES)
{ {
for (SkillLearn sk : SkillTreesData.getInstance().getAbilitySkillTree().values()) for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values())
{ {
final Skill skill = player.getKnownSkill(sk.getSkillId()); final Skill skill = player.getKnownSkill(sk.getSkillId());
if (skill != null) if (skill != null)
@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.data.sql.impl.CrestTable;
import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData; import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.data.xml.impl.BuyListData; import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
import org.l2jmobius.gameserver.data.xml.impl.DoorData; import org.l2jmobius.gameserver.data.xml.impl.DoorData;
import org.l2jmobius.gameserver.data.xml.impl.EnchantItemData; import org.l2jmobius.gameserver.data.xml.impl.EnchantItemData;
@@ -38,7 +38,7 @@ import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SayuneData; import org.l2jmobius.gameserver.data.xml.impl.SayuneData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.data.xml.impl.TransformData; import org.l2jmobius.gameserver.data.xml.impl.TransformData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager; import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager;
@@ -146,7 +146,7 @@ public class Reload implements ITelnetCommand
} }
case "teleport": case "teleport":
{ {
TeleportersData.getInstance().load(); TeleporterData.getInstance().load();
return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Teleports."); return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Teleports.");
} }
case "skill": case "skill":
@@ -238,7 +238,7 @@ public class Reload implements ITelnetCommand
} }
case "sets": case "sets":
{ {
ArmorSetsData.getInstance().load(); ArmorSetData.getInstance().load();
return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Armor sets data."); return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Armor sets data.");
} }
case "script": case "script":
@@ -39,13 +39,13 @@ import org.l2jmobius.gameserver.data.sql.impl.CharNameTable;
import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable; import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.sql.impl.CrestTable; import org.l2jmobius.gameserver.data.sql.impl.CrestTable;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData; import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData;
import org.l2jmobius.gameserver.data.xml.impl.ActionData; import org.l2jmobius.gameserver.data.xml.impl.ActionData;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.AlchemyData; import org.l2jmobius.gameserver.data.xml.impl.AlchemyData;
import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.data.xml.impl.BeautyShopData; import org.l2jmobius.gameserver.data.xml.impl.BeautyShopData;
import org.l2jmobius.gameserver.data.xml.impl.BuyListData; import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
import org.l2jmobius.gameserver.data.xml.impl.CategoryData; import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
@@ -90,10 +90,10 @@ import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData;
import org.l2jmobius.gameserver.data.xml.impl.ShuttleData; import org.l2jmobius.gameserver.data.xml.impl.ShuttleData;
import org.l2jmobius.gameserver.data.xml.impl.SiegeScheduleData; import org.l2jmobius.gameserver.data.xml.impl.SiegeScheduleData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.data.xml.impl.StaticObjectData; import org.l2jmobius.gameserver.data.xml.impl.StaticObjectData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.data.xml.impl.TransformData; import org.l2jmobius.gameserver.data.xml.impl.TransformData;
import org.l2jmobius.gameserver.data.xml.impl.VariationData; import org.l2jmobius.gameserver.data.xml.impl.VariationData;
import org.l2jmobius.gameserver.datatables.BotReportTable; import org.l2jmobius.gameserver.datatables.BotReportTable;
@@ -242,7 +242,7 @@ public class GameServer
SkillConditionHandler.getInstance().executeScript(); SkillConditionHandler.getInstance().executeScript();
EffectHandler.getInstance().executeScript(); EffectHandler.getInstance().executeScript();
EnchantSkillGroupsData.getInstance(); EnchantSkillGroupsData.getInstance();
SkillTreesData.getInstance(); SkillTreeData.getInstance();
SkillData.getInstance(); SkillData.getInstance();
PetSkillData.getInstance(); PetSkillData.getInstance();
@@ -259,7 +259,7 @@ public class GameServer
BuyListData.getInstance(); BuyListData.getInstance();
MultisellData.getInstance(); MultisellData.getInstance();
RecipeData.getInstance(); RecipeData.getInstance();
ArmorSetsData.getInstance(); ArmorSetData.getInstance();
FishingData.getInstance(); FishingData.getInstance();
HennaData.getInstance(); HennaData.getInstance();
PrimeShopData.getInstance(); PrimeShopData.getInstance();
@@ -312,7 +312,7 @@ public class GameServer
FakePlayerData.getInstance(); FakePlayerData.getInstance();
FakePlayerChatManager.getInstance(); FakePlayerChatManager.getInstance();
ExtendDropData.getInstance(); ExtendDropData.getInstance();
SpawnsData.getInstance(); SpawnData.getInstance();
WalkingManager.getInstance(); WalkingManager.getInstance();
StaticObjectData.getInstance(); StaticObjectData.getInstance();
ItemAuctionManager.getInstance(); ItemAuctionManager.getInstance();
@@ -331,7 +331,7 @@ public class GameServer
printSection("Cache"); printSection("Cache");
HtmCache.getInstance(); HtmCache.getInstance();
CrestTable.getInstance(); CrestTable.getInstance();
TeleportersData.getInstance(); TeleporterData.getInstance();
MatchingRoomManager.getInstance(); MatchingRoomManager.getInstance();
PetitionManager.getInstance(); PetitionManager.getInstance();
CursedWeaponsManager.getInstance(); CursedWeaponsManager.getInstance();
@@ -367,7 +367,7 @@ public class GameServer
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Failed to execute script list!", e); LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Failed to execute script list!", e);
} }
SpawnsData.getInstance().init(); SpawnData.getInstance().init();
DBSpawnManager.getInstance(); DBSpawnManager.getInstance();
printSection("Event Engine"); printSection("Event Engine");
@@ -421,7 +421,7 @@ public class GameServer
if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS) if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS)
{ {
OfflineTradersTable.getInstance().restoreOfflineTraders(); OfflineTraderTable.getInstance().restoreOfflineTraders();
} }
if (Config.SERVER_RESTART_SCHEDULE_ENABLED) if (Config.SERVER_RESTART_SCHEDULE_ENABLED)
@@ -24,7 +24,7 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.database.DatabaseBackup; import org.l2jmobius.commons.database.DatabaseBackup;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.datatables.BotReportTable; import org.l2jmobius.gameserver.datatables.BotReportTable;
import org.l2jmobius.gameserver.instancemanager.CastleManorManager; import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager; import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
@@ -124,7 +124,7 @@ public class Shutdown extends Thread
{ {
if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS && !Config.STORE_OFFLINE_TRADE_IN_REALTIME) if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS && !Config.STORE_OFFLINE_TRADE_IN_REALTIME)
{ {
OfflineTradersTable.getInstance().storeOffliners(); OfflineTraderTable.getInstance().storeOffliners();
LOGGER.info("Offline Traders Table: Offline shops stored(" + tc.getEstimatedTimeAndRestartCounter() + "ms)."); LOGGER.info("Offline Traders Table: Offline shops stored(" + tc.getEstimatedTimeAndRestartCounter() + "ms).");
} }
} }
@@ -36,9 +36,9 @@ import org.l2jmobius.gameserver.model.holders.SellBuffHolder;
import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.GameClient;
public class OfflineTradersTable public class OfflineTraderTable
{ {
private static final Logger LOGGER = Logger.getLogger(OfflineTradersTable.class.getName()); private static final Logger LOGGER = Logger.getLogger(OfflineTraderTable.class.getName());
// SQL DEFINITIONS // SQL DEFINITIONS
private static final String SAVE_OFFLINE_STATUS = "INSERT INTO character_offline_trade (`charId`,`time`,`type`,`title`) VALUES (?,?,?,?)"; private static final String SAVE_OFFLINE_STATUS = "INSERT INTO character_offline_trade (`charId`,`time`,`type`,`title`) VALUES (?,?,?,?)";
@@ -50,7 +50,7 @@ public class OfflineTradersTable
private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM character_offline_trade"; private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM character_offline_trade";
private static final String LOAD_OFFLINE_ITEMS = "SELECT * FROM character_offline_trade_items WHERE `charId`=?"; private static final String LOAD_OFFLINE_ITEMS = "SELECT * FROM character_offline_trade_items WHERE `charId`=?";
protected OfflineTradersTable() protected OfflineTraderTable()
{ {
} }
@@ -475,13 +475,13 @@ public class OfflineTradersTable
* Gets the single instance of OfflineTradersTable. * Gets the single instance of OfflineTradersTable.
* @return single instance of OfflineTradersTable * @return single instance of OfflineTradersTable
*/ */
public static OfflineTradersTable getInstance() public static OfflineTraderTable getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final OfflineTradersTable INSTANCE = new OfflineTradersTable(); protected static final OfflineTraderTable INSTANCE = new OfflineTraderTable();
} }
} }
@@ -26,7 +26,7 @@ import org.l2jmobius.gameserver.model.skills.Skill;
/** /**
* @author Nyaran * @author Nyaran
*/ */
public class SummonEffectsTable public class SummonEffectTable
{ {
/** Servitors **/ /** Servitors **/
// Map tree // Map tree
@@ -80,13 +80,13 @@ public class SummonEffectsTable
} }
} }
public static SummonEffectsTable getInstance() public static SummonEffectTable getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final SummonEffectsTable INSTANCE = new SummonEffectsTable(); protected static final SummonEffectTable INSTANCE = new SummonEffectTable();
} }
} }
@@ -40,14 +40,14 @@ import org.l2jmobius.gameserver.model.stats.BaseStat;
* Loads armor set bonuses. * Loads armor set bonuses.
* @author godson, Luno, UnAfraid * @author godson, Luno, UnAfraid
*/ */
public class ArmorSetsData implements IXmlReader public class ArmorSetData implements IXmlReader
{ {
private static final Logger LOGGER = Logger.getLogger(ArmorSetsData.class.getName()); private static final Logger LOGGER = Logger.getLogger(ArmorSetData.class.getName());
private final Map<Integer, ArmorSet> _armorSets = new ConcurrentHashMap<>(); private final Map<Integer, ArmorSet> _armorSets = new ConcurrentHashMap<>();
private final Map<Integer, List<ArmorSet>> _armorSetItems = new ConcurrentHashMap<>(); private final Map<Integer, List<ArmorSet>> _armorSetItems = new ConcurrentHashMap<>();
protected ArmorSetsData() protected ArmorSetData()
{ {
load(); load();
} }
@@ -174,13 +174,13 @@ public class ArmorSetsData implements IXmlReader
* Gets the single instance of ArmorSetsData * Gets the single instance of ArmorSetsData
* @return single instance of ArmorSetsData * @return single instance of ArmorSetsData
*/ */
public static ArmorSetsData getInstance() public static ArmorSetData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final ArmorSetsData INSTANCE = new ArmorSetsData(); protected static final ArmorSetData INSTANCE = new ArmorSetData();
} }
} }
@@ -225,7 +225,7 @@ public class SkillData implements IXmlReader
{ {
load(); load();
// Reload Skill Tree as well. // Reload Skill Tree as well.
SkillTreesData.getInstance().load(); SkillTreeData.getInstance().load();
} }
@Override @Override
@@ -79,9 +79,9 @@ import org.l2jmobius.gameserver.model.skills.Skill;
* For XML schema please refer to skillTrees.xsd in datapack in xsd folder and for parameters documentation refer to documentation.txt in skillTrees folder.<br> * For XML schema please refer to skillTrees.xsd in datapack in xsd folder and for parameters documentation refer to documentation.txt in skillTrees folder.<br>
* @author Zoey76 * @author Zoey76
*/ */
public class SkillTreesData implements IXmlReader public class SkillTreeData implements IXmlReader
{ {
private static final Logger LOGGER = Logger.getLogger(SkillTreesData.class.getName()); private static final Logger LOGGER = Logger.getLogger(SkillTreeData.class.getName());
// ClassId, Map of Skill Hash Code, SkillLearn // ClassId, Map of Skill Hash Code, SkillLearn
private static final Map<ClassId, Map<Long, SkillLearn>> _classSkillTrees = new ConcurrentHashMap<>(); private static final Map<ClassId, Map<Long, SkillLearn>> _classSkillTrees = new ConcurrentHashMap<>();
@@ -121,7 +121,7 @@ public class SkillTreesData implements IXmlReader
/** /**
* Instantiates a new skill trees data. * Instantiates a new skill trees data.
*/ */
protected SkillTreesData() protected SkillTreeData()
{ {
load(); load();
} }
@@ -1807,7 +1807,7 @@ public class SkillTreesData implements IXmlReader
* Gets the single instance of SkillTreesData. * Gets the single instance of SkillTreesData.
* @return the only instance of this class * @return the only instance of this class
*/ */
public static SkillTreesData getInstance() public static SkillTreeData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
@@ -1817,6 +1817,6 @@ public class SkillTreesData implements IXmlReader
*/ */
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final SkillTreesData INSTANCE = new SkillTreesData(); protected static final SkillTreeData INSTANCE = new SkillTreeData();
} }
} }
@@ -51,13 +51,13 @@ import org.l2jmobius.gameserver.model.zone.type.SpawnTerritory;
/** /**
* @author UnAfraid * @author UnAfraid
*/ */
public class SpawnsData implements IXmlReader public class SpawnData implements IXmlReader
{ {
protected static final Logger LOGGER = Logger.getLogger(SpawnsData.class.getName()); protected static final Logger LOGGER = Logger.getLogger(SpawnData.class.getName());
private final Collection<SpawnTemplate> _spawns = ConcurrentHashMap.newKeySet(); private final Collection<SpawnTemplate> _spawns = ConcurrentHashMap.newKeySet();
protected SpawnsData() protected SpawnData()
{ {
load(); load();
} }
@@ -351,13 +351,13 @@ public class SpawnsData implements IXmlReader
* Gets the single instance of SpawnsData. * Gets the single instance of SpawnsData.
* @return single instance of SpawnsData * @return single instance of SpawnsData
*/ */
public static SpawnsData getInstance() public static SpawnData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final SpawnsData INSTANCE = new SpawnsData(); protected static final SpawnData INSTANCE = new SpawnData();
} }
} }
@@ -34,14 +34,14 @@ import org.l2jmobius.gameserver.model.teleporter.TeleportHolder;
/** /**
* @author UnAfraid * @author UnAfraid
*/ */
public class TeleportersData implements IXmlReader public class TeleporterData implements IXmlReader
{ {
// Logger instance // Logger instance
private static final Logger LOGGER = Logger.getLogger(TeleportersData.class.getName()); private static final Logger LOGGER = Logger.getLogger(TeleporterData.class.getName());
// Teleporter data // Teleporter data
private final Map<Integer, Map<String, TeleportHolder>> _teleporters = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, TeleportHolder>> _teleporters = new ConcurrentHashMap<>();
protected TeleportersData() protected TeleporterData()
{ {
load(); load();
} }
@@ -127,13 +127,13 @@ public class TeleportersData implements IXmlReader
* Gets the single instance of TeleportersData. * Gets the single instance of TeleportersData.
* @return single instance of TeleportersData * @return single instance of TeleportersData
*/ */
public static TeleportersData getInstance() public static TeleporterData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final TeleportersData INSTANCE = new TeleportersData(); protected static final TeleporterData INSTANCE = new TeleporterData();
} }
} }
@@ -34,7 +34,7 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.datatables.SpawnTable; import org.l2jmobius.gameserver.datatables.SpawnTable;
import org.l2jmobius.gameserver.enums.RaidBossStatus; import org.l2jmobius.gameserver.enums.RaidBossStatus;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
@@ -94,7 +94,7 @@ public class DBSpawnManager
spawn.setAmount(1); spawn.setAmount(1);
spawn.setHeading(rset.getInt("heading")); spawn.setHeading(rset.getInt("heading"));
final List<NpcSpawnTemplate> spawns = SpawnsData.getInstance().getNpcSpawns(npc -> (npc.getId() == template.getId()) && npc.hasDBSave()); final List<NpcSpawnTemplate> spawns = SpawnData.getInstance().getNpcSpawns(npc -> (npc.getId() == template.getId()) && npc.hasDBSave());
if (spawns.isEmpty()) if (spawns.isEmpty())
{ {
LOGGER.warning(getClass().getSimpleName() + ": Couldn't find spawn declaration for npc: " + template.getId() + " - " + template.getName()); LOGGER.warning(getClass().getSimpleName() + ": Couldn't find spawn declaration for npc: " + template.getId() + " - " + template.getName());
@@ -42,7 +42,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.util.IXmlReader; import org.l2jmobius.commons.util.IXmlReader;
import org.l2jmobius.gameserver.data.xml.impl.DoorData; import org.l2jmobius.gameserver.data.xml.impl.DoorData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.enums.InstanceReenterType; import org.l2jmobius.gameserver.enums.InstanceReenterType;
import org.l2jmobius.gameserver.enums.InstanceRemoveBuffType; import org.l2jmobius.gameserver.enums.InstanceRemoveBuffType;
import org.l2jmobius.gameserver.enums.InstanceTeleportType; import org.l2jmobius.gameserver.enums.InstanceTeleportType;
@@ -231,7 +231,7 @@ public class InstanceManager implements IXmlReader
case "spawnlist": case "spawnlist":
{ {
final List<SpawnTemplate> spawns = new ArrayList<>(); final List<SpawnTemplate> spawns = new ArrayList<>();
SpawnsData.getInstance().parseSpawn(innerNode, file, spawns); SpawnData.getInstance().parseSpawn(innerNode, file, spawns);
template.addSpawns(spawns); template.addSpawns(spawns);
break; break;
} }
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.model.actor.instance;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.l2jmobius.gameserver.data.xml.impl.DoorData; import org.l2jmobius.gameserver.data.xml.impl.DoorData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.enums.TeleportType; import org.l2jmobius.gameserver.enums.TeleportType;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -92,7 +92,7 @@ public class DoormanInstance extends NpcInstance
{ {
if (isOwnerClan(player)) if (isOwnerClan(player))
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), TeleportType.OTHER.name()); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), TeleportType.OTHER.name());
if (holder != null) if (holder != null)
{ {
final int locId = Integer.parseInt(command.substring(5).trim()); final int locId = Integer.parseInt(command.substring(5).trim());
@@ -18,7 +18,7 @@ package org.l2jmobius.gameserver.model.actor.instance;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
@@ -67,11 +67,11 @@ public class FishermanInstance extends MerchantInstance
public static void showFishSkillList(PlayerInstance player) public static void showFishSkillList(PlayerInstance player)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableFishingSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableFishingSkills(player);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
final int minlLevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, SkillTreesData.getInstance().getFishingSkillTree()); final int minlLevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, SkillTreeData.getInstance().getFishingSkillTree());
if (minlLevel > 0) if (minlLevel > 0)
{ {
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1);
@@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.clan.ClanPrivilege; import org.l2jmobius.gameserver.model.clan.ClanPrivilege;
@@ -932,7 +932,7 @@ public class FortManagerInstance extends MerchantInstance
final int funcLvl = (val.length() >= 4) ? CommonUtil.parseInt(val.substring(3), -1) : -1; final int funcLvl = (val.length() >= 4) ? CommonUtil.parseInt(val.substring(3), -1) : -1;
if (func.getLvl() == funcLvl) if (func.getLvl() == funcLvl)
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), val); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), val);
if (holder != null) if (holder != null)
{ {
holder.doTeleport(player, this, CommonUtil.parseNextInt(st, -1)); holder.doTeleport(player, this, CommonUtil.parseNextInt(st, -1));
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.model.actor.instance;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@@ -63,11 +63,11 @@ public class NpcInstance extends Npc
final int npcId = npc.getTemplate().getId(); final int npcId = npc.getTemplate().getId();
if (npcId == 32611) // Tolonis (Officer) if (npcId == 32611) // Tolonis (Officer)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableCollectSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableCollectSkills(player);
if (skills.isEmpty()) // No more skills to learn, come back when you level. if (skills.isEmpty()) // No more skills to learn, come back when you level.
{ {
final int minLevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, SkillTreesData.getInstance().getCollectSkillTree()); final int minLevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, SkillTreeData.getInstance().getCollectSkillTree());
if (minLevel > 0) if (minLevel > 0)
{ {
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1);
@@ -87,11 +87,11 @@ public class NpcInstance extends Npc
} }
// Normal skills, No LearnedByFS, no AutoGet skills. // Normal skills, No LearnedByFS, no AutoGet skills.
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableSkills(player, classId, false, false); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableSkills(player, classId, false, false);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
final Map<Long, SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(classId); final Map<Long, SkillLearn> skillTree = SkillTreeData.getInstance().getCompleteClassSkillTree(classId);
final int minLevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, skillTree); final int minLevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, skillTree);
if (minLevel > 0) if (minLevel > 0)
{ {
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1);
@@ -35,8 +35,8 @@ import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable; import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable.SummonEffect; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable.SummonEffect;
import org.l2jmobius.gameserver.data.xml.impl.ExperienceData; import org.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import org.l2jmobius.gameserver.data.xml.impl.PetDataTable; import org.l2jmobius.gameserver.data.xml.impl.PetDataTable;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
@@ -900,14 +900,14 @@ public class PetInstance extends Summon
public void stopSkillEffects(boolean removed, int skillId) public void stopSkillEffects(boolean removed, int skillId)
{ {
super.stopSkillEffects(removed, skillId); super.stopSkillEffects(removed, skillId);
final Collection<SummonEffect> effects = SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()); final Collection<SummonEffect> effects = SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId());
if ((effects != null) && !effects.isEmpty()) if ((effects != null) && !effects.isEmpty())
{ {
for (SummonEffect effect : effects) for (SummonEffect effect : effects)
{ {
if (effect.getSkill().getId() == skillId) if (effect.getSkill().getId() == skillId)
{ {
SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()).remove(effect); SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId()).remove(effect);
} }
} }
} }
@@ -985,7 +985,7 @@ public class PetInstance extends Summon
} }
// Clear list for overwrite // Clear list for overwrite
SummonEffectsTable.getInstance().getPetEffects().getOrDefault(getControlObjectId(), Collections.emptyList()).clear(); SummonEffectTable.getInstance().getPetEffects().getOrDefault(getControlObjectId(), Collections.emptyList()).clear();
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps1 = con.prepareStatement(DELETE_SKILL_SAVE); PreparedStatement ps1 = con.prepareStatement(DELETE_SKILL_SAVE);
@@ -1048,7 +1048,7 @@ public class PetInstance extends Summon
ps2.setInt(6, ++buffIndex); ps2.setInt(6, ++buffIndex);
ps2.addBatch(); ps2.addBatch();
SummonEffectsTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, info.getTime())); SummonEffectTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, info.getTime()));
} }
ps2.executeBatch(); ps2.executeBatch();
} }
@@ -1066,7 +1066,7 @@ public class PetInstance extends Summon
PreparedStatement ps1 = con.prepareStatement(RESTORE_SKILL_SAVE); PreparedStatement ps1 = con.prepareStatement(RESTORE_SKILL_SAVE);
PreparedStatement ps2 = con.prepareStatement(DELETE_SKILL_SAVE)) PreparedStatement ps2 = con.prepareStatement(DELETE_SKILL_SAVE))
{ {
if (!SummonEffectsTable.getInstance().getPetEffects().containsKey(getControlObjectId())) if (!SummonEffectTable.getInstance().getPetEffects().containsKey(getControlObjectId()))
{ {
ps1.setInt(1, _controlObjectId); ps1.setInt(1, _controlObjectId);
try (ResultSet rset = ps1.executeQuery()) try (ResultSet rset = ps1.executeQuery())
@@ -1083,7 +1083,7 @@ public class PetInstance extends Summon
if (skill.hasEffects(EffectScope.GENERAL)) if (skill.hasEffects(EffectScope.GENERAL))
{ {
SummonEffectsTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, effectCurTime)); SummonEffectTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, effectCurTime));
} }
} }
} }
@@ -1098,9 +1098,9 @@ public class PetInstance extends Summon
} }
finally finally
{ {
if (SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()) != null) if (SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId()) != null)
{ {
for (SummonEffect se : SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId())) for (SummonEffect se : SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId()))
{ {
if (se != null) if (se != null)
{ {
@@ -75,7 +75,7 @@ import org.l2jmobius.gameserver.data.xml.impl.PlayerXpPercentLostData;
import org.l2jmobius.gameserver.data.xml.impl.RecipeData; import org.l2jmobius.gameserver.data.xml.impl.RecipeData;
import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData; import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.enums.AdminTeleportType; import org.l2jmobius.gameserver.enums.AdminTeleportType;
import org.l2jmobius.gameserver.enums.BroochJewel; import org.l2jmobius.gameserver.enums.BroochJewel;
@@ -2610,7 +2610,7 @@ public class PlayerInstance extends Playable
{ {
int skillCounter = 0; int skillCounter = 0;
// Get available skills // Get available skills
final Collection<Skill> skills = SkillTreesData.getInstance().getAllAvailableSkills(this, getTemplate().getClassId(), includedByFs, includeAutoGet); final Collection<Skill> skills = SkillTreeData.getInstance().getAllAvailableSkills(this, getTemplate().getClassId(), includedByFs, includeAutoGet);
final List<Skill> skillsForStore = new ArrayList<>(); final List<Skill> skillsForStore = new ArrayList<>();
for (Skill skill : skills) for (Skill skill : skills)
@@ -2655,7 +2655,7 @@ public class PlayerInstance extends Playable
public void giveAvailableAutoGetSkills() public void giveAvailableAutoGetSkills()
{ {
// Get available skills // Get available skills
final List<SkillLearn> autoGetSkills = SkillTreesData.getInstance().getAvailableAutoGetSkills(this); final List<SkillLearn> autoGetSkills = SkillTreeData.getInstance().getAvailableAutoGetSkills(this);
final SkillData st = SkillData.getInstance(); final SkillData st = SkillData.getInstance();
Skill skill; Skill skill;
for (SkillLearn s : autoGetSkills) for (SkillLearn s : autoGetSkills)
@@ -7603,7 +7603,7 @@ public class PlayerInstance extends Playable
// Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature // Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature
addSkill(skill); addSkill(skill);
if (Config.SKILL_CHECK_ENABLE && (!canOverrideCond(PlayerCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM) && !SkillTreesData.getInstance().isSkillAllowed(this, skill)) if (Config.SKILL_CHECK_ENABLE && (!canOverrideCond(PlayerCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM) && !SkillTreeData.getInstance().isSkillAllowed(this, skill))
{ {
Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST); Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST);
if (Config.SKILL_CHECK_REMOVE) if (Config.SKILL_CHECK_REMOVE)
@@ -9260,14 +9260,14 @@ public class PlayerInstance extends Playable
{ {
if (hero && (_baseClass == _activeClass)) if (hero && (_baseClass == _activeClass))
{ {
for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree()) for (Skill skill : SkillTreeData.getInstance().getHeroSkillTree())
{ {
addSkill(skill, false); // Don't persist hero skills into database addSkill(skill, false); // Don't persist hero skills into database
} }
} }
else else
{ {
for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree()) for (Skill skill : SkillTreeData.getInstance().getHeroSkillTree())
{ {
removeSkill(skill, false, true); // Just remove skills from non-hero players removeSkill(skill, false, true); // Just remove skills from non-hero players
} }
@@ -9434,11 +9434,11 @@ public class PlayerInstance extends Playable
{ {
if (value) if (value)
{ {
SkillTreesData.getInstance().getNobleSkillAutoGetTree().forEach(skill -> addSkill(skill, false)); SkillTreeData.getInstance().getNobleSkillAutoGetTree().forEach(skill -> addSkill(skill, false));
} }
else else
{ {
SkillTreesData.getInstance().getNobleSkillTree().forEach(skill -> removeSkill(skill, false, true)); SkillTreeData.getInstance().getNobleSkillTree().forEach(skill -> removeSkill(skill, false, true));
} }
_noble = value; _noble = value;
sendSkillList(); sendSkillList();
@@ -9581,7 +9581,7 @@ public class PlayerInstance extends Playable
getSubClasses().put(newClass.getClassIndex(), newClass); getSubClasses().put(newClass.getClassIndex(), newClass);
final ClassId subTemplate = ClassId.getClassId(classId); final ClassId subTemplate = ClassId.getClassId(classId);
final Map<Long, SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(subTemplate); final Map<Long, SkillLearn> skillTree = SkillTreeData.getInstance().getCompleteClassSkillTree(subTemplate);
final Map<Integer, Skill> prevSkillList = new HashMap<>(); final Map<Integer, Skill> prevSkillList = new HashMap<>();
for (SkillLearn skillInfo : skillTree.values()) for (SkillLearn skillInfo : skillTree.values())
{ {
@@ -9590,7 +9590,7 @@ public class PlayerInstance extends Playable
final Skill prevSkill = prevSkillList.get(skillInfo.getSkillId()); final Skill prevSkill = prevSkillList.get(skillInfo.getSkillId());
final Skill newSkill = SkillData.getInstance().getSkill(skillInfo.getSkillId(), skillInfo.getSkillLevel()); final Skill newSkill = SkillData.getInstance().getSkill(skillInfo.getSkillId(), skillInfo.getSkillLevel());
if (((prevSkill != null) && (prevSkill.getLevel() > newSkill.getLevel())) || SkillTreesData.getInstance().isRemoveSkill(subTemplate, skillInfo.getSkillId())) if (((prevSkill != null) && (prevSkill.getLevel() > newSkill.getLevel())) || SkillTreeData.getInstance().isRemoveSkill(subTemplate, skillInfo.getSkillId()))
{ {
continue; continue;
} }
@@ -11755,7 +11755,7 @@ public class PlayerInstance extends Playable
return currentSkills.stream() return currentSkills.stream()
.filter(Objects::nonNull) .filter(Objects::nonNull)
.filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list.
.filter(s -> !SkillTreesData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel()))
.filter(s -> s.isDisplayInList()) .filter(s -> s.isDisplayInList())
.collect(Collectors.toList()); .collect(Collectors.toList());
//@formatter:on //@formatter:on
@@ -12794,7 +12794,7 @@ public class PlayerInstance extends Playable
SkillLearn learn; SkillLearn learn;
for (Entry<Integer, Skill> e : getSkills().entrySet()) for (Entry<Integer, Skill> e : getSkills().entrySet())
{ {
learn = SkillTreesData.getInstance().getClassSkill(e.getKey(), e.getValue().getLevel() % 100, getClassId()); learn = SkillTreeData.getInstance().getClassSkill(e.getKey(), e.getValue().getLevel() % 100, getClassId());
if (learn != null) if (learn != null)
{ {
final int lvlDiff = e.getKey() == CommonSkill.EXPERTISE.getId() ? 0 : 9; final int lvlDiff = e.getKey() == CommonSkill.EXPERTISE.getId() ? 0 : 9;
@@ -12809,7 +12809,7 @@ public class PlayerInstance extends Playable
private void deacreaseSkillLevel(Skill skill, int lvlDiff) private void deacreaseSkillLevel(Skill skill, int lvlDiff)
{ {
int nextLevel = -1; int nextLevel = -1;
final Map<Long, SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(getClassId()); final Map<Long, SkillLearn> skillTree = SkillTreeData.getInstance().getCompleteClassSkillTree(getClassId());
for (SkillLearn sl : skillTree.values()) for (SkillLearn sl : skillTree.values())
{ {
if ((sl.getSkillId() == skill.getId()) && (nextLevel < sl.getSkillLevel()) && (getLevel() >= (sl.getGetLevel() - lvlDiff))) if ((sl.getSkillId() == skill.getId()) && (nextLevel < sl.getSkillLevel()) && (getLevel() >= (sl.getGetLevel() - lvlDiff)))
@@ -33,8 +33,8 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable; import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable.SummonEffect; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable.SummonEffect;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
@@ -235,7 +235,7 @@ public class ServitorInstance extends Summon implements Runnable
public void stopSkillEffects(boolean removed, int skillId) public void stopSkillEffects(boolean removed, int skillId)
{ {
super.stopSkillEffects(removed, skillId); super.stopSkillEffects(removed, skillId);
final Map<Integer, Collection<SummonEffect>> servitorEffects = SummonEffectsTable.getInstance().getServitorEffects(getOwner()); final Map<Integer, Collection<SummonEffect>> servitorEffects = SummonEffectTable.getInstance().getServitorEffects(getOwner());
if (servitorEffects != null) if (servitorEffects != null)
{ {
final Collection<SummonEffect> effects = servitorEffects.get(_referenceSkill); final Collection<SummonEffect> effects = servitorEffects.get(_referenceSkill);
@@ -288,9 +288,9 @@ public class ServitorInstance extends Summon implements Runnable
} }
// Clear list for overwrite // Clear list for overwrite
if (SummonEffectsTable.getInstance().getServitorEffectsOwner().getOrDefault(getOwner().getObjectId(), Collections.emptyMap()).containsKey(getOwner().getClassIndex())) if (SummonEffectTable.getInstance().getServitorEffectsOwner().getOrDefault(getOwner().getObjectId(), Collections.emptyMap()).containsKey(getOwner().getClassIndex()))
{ {
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).getOrDefault(getReferenceSkill(), Collections.emptyList()).clear(); SummonEffectTable.getInstance().getServitorEffects(getOwner()).getOrDefault(getReferenceSkill(), Collections.emptyList()).clear();
} }
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
@@ -361,20 +361,20 @@ public class ServitorInstance extends Summon implements Runnable
ps2.addBatch(); ps2.addBatch();
// XXX: Rework me! // XXX: Rework me!
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (!SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet()); SummonEffectTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet());
} }
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, info.getTime())); SummonEffectTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, info.getTime()));
} }
ps2.executeBatch(); ps2.executeBatch();
} }
@@ -396,7 +396,7 @@ public class ServitorInstance extends Summon implements Runnable
try (Connection con = DatabaseFactory.getConnection()) try (Connection con = DatabaseFactory.getConnection())
{ {
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) || !SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) || !SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) || !SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) || !SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
try (PreparedStatement statement = con.prepareStatement(RESTORE_SKILL_SAVE)) try (PreparedStatement statement = con.prepareStatement(RESTORE_SKILL_SAVE))
{ {
@@ -418,20 +418,20 @@ public class ServitorInstance extends Summon implements Runnable
// XXX: Rework me! // XXX: Rework me!
if (skill.hasEffects(EffectScope.GENERAL)) if (skill.hasEffects(EffectScope.GENERAL))
{ {
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (!SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet()); SummonEffectTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet());
} }
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, effectCurTime)); SummonEffectTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, effectCurTime));
} }
} }
} }
@@ -452,9 +452,9 @@ public class ServitorInstance extends Summon implements Runnable
} }
finally finally
{ {
if (SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) && SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) && SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) && SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) && SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
for (SummonEffect se : SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill())) for (SummonEffect se : SummonEffectTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()))
{ {
if (se != null) if (se != null)
{ {
@@ -22,7 +22,7 @@ import java.util.Map;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.enums.TeleportType; import org.l2jmobius.gameserver.enums.TeleportType;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
@@ -95,7 +95,7 @@ public class TeleporterInstance extends Npc
case "showTeleports": case "showTeleports":
{ {
final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.NORMAL.name(); final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.NORMAL.name();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), listName);
if (holder == null) if (holder == null)
{ {
LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for list with name " + listName + " at NPC " + getId() + "!"); LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for list with name " + listName + " at NPC " + getId() + "!");
@@ -107,7 +107,7 @@ public class TeleporterInstance extends Npc
case "showTeleportsHunting": case "showTeleportsHunting":
{ {
final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.HUNTING.name(); final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.HUNTING.name();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), listName);
if (holder == null) if (holder == null)
{ {
LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for hunting list with name " + listName + " at NPC " + getId() + "!"); LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for hunting list with name " + listName + " at NPC " + getId() + "!");
@@ -126,7 +126,7 @@ public class TeleporterInstance extends Npc
} }
final String listName = st.nextToken(); final String listName = st.nextToken();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), listName);
if (holder == null) if (holder == null)
{ {
LOGGER.warning("Player " + player.getObjectId() + " requested unknown teleport list: " + listName + " for npc: " + getId() + "!"); LOGGER.warning("Player " + player.getObjectId() + " requested unknown teleport list: " + listName + " for npc: " + getId() + "!");
@@ -23,7 +23,7 @@ import java.util.regex.PatternSyntaxException;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager; import org.l2jmobius.gameserver.instancemanager.FortManager;
@@ -588,7 +588,7 @@ public class VillageMasterInstance extends NpcInstance
return; return;
} }
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailablePledgeSkills(player.getClan()); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailablePledgeSkills(player.getClan());
if (skills.isEmpty()) if (skills.isEmpty())
{ {
@@ -21,7 +21,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.ExperienceData; import org.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import org.l2jmobius.gameserver.data.xml.impl.PetDataTable; import org.l2jmobius.gameserver.data.xml.impl.PetDataTable;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.PetInstance; import org.l2jmobius.gameserver.model.actor.instance.PetInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -88,7 +88,7 @@ public class PlayableStat extends CreatureStat
if ((getLevel() > oldLevel) && getActiveChar().isPlayer()) if ((getLevel() > oldLevel) && getActiveChar().isPlayer())
{ {
final PlayerInstance player = getActiveChar().getActingPlayer(); final PlayerInstance player = getActiveChar().getActingPlayer();
if (SkillTreesData.getInstance().hasAvailableSkills(player, player.getClassId())) if (SkillTreeData.getInstance().hasAvailableSkills(player, player.getClassId()))
{ {
getActiveChar().sendPacket(ExNewSkillToLearnByLevelUp.STATIC_PACKET); getActiveChar().sendPacket(ExNewSkillToLearnByLevelUp.STATIC_PACKET);
} }
@@ -20,7 +20,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.InventoryBlockType;
import org.l2jmobius.gameserver.enums.Sex; import org.l2jmobius.gameserver.enums.Sex;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -278,7 +278,7 @@ public class Transform implements IIdentifiable
.forEach(player::addTransformSkill); .forEach(player::addTransformSkill);
// Add collection skills. // Add collection skills.
SkillTreesData.getInstance().getCollectSkillTree().values() SkillTreeData.getInstance().getCollectSkillTree().values()
.stream() .stream()
.map(s -> player.getKnownSkill(s.getSkillId())) .map(s -> player.getKnownSkill(s.getSkillId()))
.filter(Objects::nonNull) .filter(Objects::nonNull)
@@ -41,7 +41,7 @@ import org.l2jmobius.gameserver.data.sql.impl.CharNameTable;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.sql.impl.CrestTable; import org.l2jmobius.gameserver.data.sql.impl.CrestTable;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.ClanRewardType; import org.l2jmobius.gameserver.enums.ClanRewardType;
import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.enums.UserInfoType;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
@@ -1456,7 +1456,7 @@ public class Clan implements IIdentifiable, INamable
final int playerSocialClass = player.getPledgeClass() + 1; final int playerSocialClass = player.getPledgeClass() + 1;
for (Skill skill : _skills.values()) for (Skill skill : _skills.values())
{ {
final SkillLearn skillLearn = SkillTreesData.getInstance().getPledgeSkill(skill.getId(), skill.getLevel()); final SkillLearn skillLearn = SkillTreeData.getInstance().getPledgeSkill(skill.getId(), skill.getLevel());
if ((skillLearn == null) || (skillLearn.getSocialClass() == null) || (playerSocialClass >= skillLearn.getSocialClass().ordinal())) if ((skillLearn == null) || (skillLearn.getSocialClass() == null) || (playerSocialClass >= skillLearn.getSocialClass().ordinal()))
{ {
player.addSkill(skill, false); // Skill is not saved to player DB player.addSkill(skill, false); // Skill is not saved to player DB
@@ -1466,7 +1466,7 @@ public class Clan implements IIdentifiable, INamable
{ {
for (Skill skill : _subPledgeSkills.values()) for (Skill skill : _subPledgeSkills.values())
{ {
final SkillLearn skillLearn = SkillTreesData.getInstance().getSubPledgeSkill(skill.getId(), skill.getLevel()); final SkillLearn skillLearn = SkillTreeData.getInstance().getSubPledgeSkill(skill.getId(), skill.getLevel());
if ((skillLearn == null) || (skillLearn.getSocialClass() == null) || (playerSocialClass >= skillLearn.getSocialClass().ordinal())) if ((skillLearn == null) || (skillLearn.getSocialClass() == null) || (playerSocialClass >= skillLearn.getSocialClass().ordinal()))
{ {
player.addSkill(skill, false); // Skill is not saved to player DB player.addSkill(skill, false); // Skill is not saved to player DB
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.model.holders;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder; import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
@@ -36,7 +36,7 @@ public class PlayerSkillHolder implements ISkillsHolder
for (Skill skill : player.getSkills().values()) for (Skill skill : player.getSkills().values())
{ {
// Adding only skills that can be learned by the player. // Adding only skills that can be learned by the player.
if (SkillTreesData.getInstance().isSkillAllowed(player, skill)) if (SkillTreeData.getInstance().isSkillAllowed(player, skill))
{ {
addSkill(skill); addSkill(skill);
} }
@@ -38,7 +38,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.enums.ItemLocation; import org.l2jmobius.gameserver.enums.ItemLocation;
import org.l2jmobius.gameserver.enums.ItemSkillType; import org.l2jmobius.gameserver.enums.ItemSkillType;
@@ -618,7 +618,7 @@ public abstract class Inventory extends ItemContainer
private static boolean verifyAndApply(PlayerInstance player, ItemInstance item, Function<ItemInstance, Integer> idProvider) private static boolean verifyAndApply(PlayerInstance player, ItemInstance item, Function<ItemInstance, Integer> idProvider)
{ {
boolean update = false; boolean update = false;
final List<ArmorSet> armorSets = ArmorSetsData.getInstance().getSets(idProvider.apply(item)); final List<ArmorSet> armorSets = ArmorSetData.getInstance().getSets(idProvider.apply(item));
for (ArmorSet armorSet : armorSets) for (ArmorSet armorSet : armorSets)
{ {
if (applySkills(player, item, armorSet, idProvider)) if (applySkills(player, item, armorSet, idProvider))
@@ -632,7 +632,7 @@ public abstract class Inventory extends ItemContainer
private static boolean verifyAndRemove(PlayerInstance player, ItemInstance item, Function<ItemInstance, Integer> idProvider) private static boolean verifyAndRemove(PlayerInstance player, ItemInstance item, Function<ItemInstance, Integer> idProvider)
{ {
boolean update = false; boolean update = false;
final List<ArmorSet> armorSets = ArmorSetsData.getInstance().getSets(idProvider.apply(item)); final List<ArmorSet> armorSets = ArmorSetData.getInstance().getSets(idProvider.apply(item));
for (ArmorSet armorSet : armorSets) for (ArmorSet armorSet : armorSets)
{ {
// Remove all skills that doesn't matches the conditions // Remove all skills that doesn't matches the conditions
@@ -2066,7 +2066,7 @@ public abstract class Inventory extends ItemContainer
int maxSetEnchant = 0; int maxSetEnchant = 0;
for (ItemInstance item : getPaperdollItems()) for (ItemInstance item : getPaperdollItems())
{ {
for (ArmorSet set : ArmorSetsData.getInstance().getSets(item.getId())) for (ArmorSet set : ArmorSetData.getInstance().getSets(item.getId()))
{ {
final int enchantEffect = set.getLowestSetEnchant(player); final int enchantEffect = set.getLowestSetEnchant(player);
if (enchantEffect > maxSetEnchant) if (enchantEffect > maxSetEnchant)
@@ -29,7 +29,7 @@ import java.util.logging.Logger;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.base.SocialClass; import org.l2jmobius.gameserver.model.base.SocialClass;
@@ -64,7 +64,7 @@ public abstract class AbstractResidence extends ListenersContainer implements IN
protected void initResidentialSkills() protected void initResidentialSkills()
{ {
_residentialSkills = SkillTreesData.getInstance().getAvailableResidentialSkills(getResidenceId()); _residentialSkills = SkillTreeData.getInstance().getAvailableResidentialSkills(getResidenceId());
} }
public int getResidenceId() public int getResidenceId()
@@ -34,7 +34,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.xml.impl.EnchantSkillGroupsData; import org.l2jmobius.gameserver.data.xml.impl.EnchantSkillGroupsData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.enums.BasicProperty; import org.l2jmobius.gameserver.enums.BasicProperty;
import org.l2jmobius.gameserver.enums.NextActionType; import org.l2jmobius.gameserver.enums.NextActionType;
@@ -1025,12 +1025,12 @@ public class Skill implements IIdentifiable
public boolean isHeroSkill() public boolean isHeroSkill()
{ {
return SkillTreesData.getInstance().isHeroSkill(_id, _level); return SkillTreeData.getInstance().isHeroSkill(_id, _level);
} }
public boolean isGMSkill() public boolean isGMSkill()
{ {
return SkillTreesData.getInstance().isGMSkill(_id, _level); return SkillTreeData.getInstance().isGMSkill(_id, _level);
} }
public boolean is7Signs() public boolean is7Signs()
@@ -1574,7 +1574,7 @@ public class Skill implements IIdentifiable
public boolean isClanSkill() public boolean isClanSkill()
{ {
return SkillTreesData.getInstance().isClanSkill(_id, _level); return SkillTreeData.getInstance().isClanSkill(_id, _level);
} }
public boolean isExcludedFromCheck() public boolean isExcludedFromCheck()
@@ -20,7 +20,7 @@ import java.util.HashSet;
import java.util.OptionalDouble; import java.util.OptionalDouble;
import java.util.Set; import java.util.Set;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.model.ArmorSet; import org.l2jmobius.gameserver.model.ArmorSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -51,7 +51,7 @@ public class BaseStatFinalizer implements IStatFunction
// Armor sets calculation // Armor sets calculation
for (ItemInstance item : player.getInventory().getPaperdollItems()) for (ItemInstance item : player.getInventory().getPaperdollItems())
{ {
for (ArmorSet set : ArmorSetsData.getInstance().getSets(item.getId())) for (ArmorSet set : ArmorSetData.getInstance().getSets(item.getId()))
{ {
if ((set.getPiecesCount(player, ItemInstance::getId) >= set.getMinimumPieces()) && appliedSets.add(set)) if ((set.getPiecesCount(player, ItemInstance::getId) >= set.getMinimumPieces()) && appliedSets.add(set))
{ {
@@ -27,7 +27,7 @@ import org.l2jmobius.gameserver.data.xml.impl.InitialEquipmentData;
import org.l2jmobius.gameserver.data.xml.impl.InitialShortcutData; import org.l2jmobius.gameserver.data.xml.impl.InitialShortcutData;
import org.l2jmobius.gameserver.data.xml.impl.PlayerTemplateData; import org.l2jmobius.gameserver.data.xml.impl.PlayerTemplateData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
@@ -319,7 +319,7 @@ public class CharacterCreate implements IClientIncomingPacket
} }
} }
for (SkillLearn skill : SkillTreesData.getInstance().getAvailableSkills(newChar, newChar.getClassId(), false, true)) for (SkillLearn skill : SkillTreeData.getInstance().getAvailableSkills(newChar, newChar.getClassId(), false, true))
{ {
newChar.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); newChar.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -22,11 +22,11 @@ import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.LoginServerThread; import org.l2jmobius.gameserver.LoginServerThread;
import org.l2jmobius.gameserver.cache.HtmCache; import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.data.sql.impl.AnnouncementsTable; import org.l2jmobius.gameserver.data.sql.impl.AnnouncementsTable;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.BeautyShopData; import org.l2jmobius.gameserver.data.xml.impl.BeautyShopData;
import org.l2jmobius.gameserver.data.xml.impl.ClanHallData; import org.l2jmobius.gameserver.data.xml.impl.ClanHallData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
@@ -221,12 +221,12 @@ public class EnterWorld implements IClientIncomingPacket
if (Config.GM_GIVE_SPECIAL_SKILLS) if (Config.GM_GIVE_SPECIAL_SKILLS)
{ {
SkillTreesData.getInstance().addSkills(player, false); SkillTreeData.getInstance().addSkills(player, false);
} }
if (Config.GM_GIVE_SPECIAL_AURA_SKILLS) if (Config.GM_GIVE_SPECIAL_AURA_SKILLS)
{ {
SkillTreesData.getInstance().addSkills(player, true); SkillTreeData.getInstance().addSkills(player, true);
} }
} }
@@ -604,7 +604,7 @@ public class EnterWorld implements IClientIncomingPacket
if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.STORE_OFFLINE_TRADE_IN_REALTIME) if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.STORE_OFFLINE_TRADE_IN_REALTIME)
{ {
OfflineTradersTable.onTransaction(player, true, false); OfflineTraderTable.onTransaction(player, true, false);
} }
// Check if expoff is enabled. // Check if expoff is enabled.
@@ -21,7 +21,7 @@ import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
@@ -141,7 +141,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
} }
} }
final SkillLearn s = SkillTreesData.getInstance().getSkillLearn(_skillType, _id, _level, player); final SkillLearn s = SkillTreeData.getInstance().getSkillLearn(_skillType, _id, _level, player);
if (s == null) if (s == null)
{ {
return; return;
@@ -296,7 +296,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
giveSkill(player, trainer, skill); giveSkill(player, trainer, skill);
} }
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableTransferSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableTransferSkills(player);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN); player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN);
@@ -389,7 +389,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
player.sendPacket(new AcquireSkillDone()); player.sendPacket(new AcquireSkillDone());
player.sendPacket(new ExAlchemySkillList(player)); player.sendPacket(new ExAlchemySkillList(player));
final List<SkillLearn> alchemySkills = SkillTreesData.getInstance().getAvailableAlchemySkills(player); final List<SkillLearn> alchemySkills = SkillTreeData.getInstance().getAvailableAlchemySkills(player);
if (alchemySkills.isEmpty()) if (alchemySkills.isEmpty())
{ {
@@ -444,7 +444,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
giveSkill(player, trainer, skill); giveSkill(player, trainer, skill);
} }
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
@@ -497,7 +497,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
giveSkill(player, trainer, skill); giveSkill(player, trainer, skill);
} }
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
@@ -518,7 +518,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
public static void showSubUnitSkillList(PlayerInstance player) public static void showSubUnitSkillList(PlayerInstance player)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableSubPledgeSkills(player.getClan()); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableSubPledgeSkills(player.getClan());
if (skills.isEmpty()) if (skills.isEmpty())
{ {
@@ -532,7 +532,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
public static void showSubSkillList(PlayerInstance player) public static void showSubSkillList(PlayerInstance player)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableSubClassSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableSubClassSkills(player);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.SUBCLASS)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.SUBCLASS));
@@ -545,7 +545,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket
public static void showDualSkillList(PlayerInstance player) public static void showDualSkillList(PlayerInstance player)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableDualClassSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableDualClassSkills(player);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.DUALCLASS)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.DUALCLASS));
@@ -18,7 +18,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
@@ -78,7 +78,7 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket
return; return;
} }
final SkillLearn s = SkillTreesData.getInstance().getSkillLearn(_skillType, _id, _level, player); final SkillLearn s = SkillTreeData.getInstance().getSkillLearn(_skillType, _id, _level, player);
if (s == null) if (s == null)
{ {
return; return;
@@ -23,7 +23,7 @@ import java.util.Set;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.enums.PrivateStoreType;
import org.l2jmobius.gameserver.model.ItemRequest; import org.l2jmobius.gameserver.model.ItemRequest;
import org.l2jmobius.gameserver.model.TradeList; import org.l2jmobius.gameserver.model.TradeList;
@@ -164,7 +164,7 @@ public class RequestPrivateStoreBuy implements IClientIncomingPacket
// Update offline trade record, if realtime saving is enabled // Update offline trade record, if realtime saving is enabled
if (Config.OFFLINE_TRADE_ENABLE && Config.STORE_OFFLINE_TRADE_IN_REALTIME && ((storePlayer.getClient() == null) || storePlayer.getClient().isDetached())) if (Config.OFFLINE_TRADE_ENABLE && Config.STORE_OFFLINE_TRADE_IN_REALTIME && ((storePlayer.getClient() == null) || storePlayer.getClient().isDetached()))
{ {
OfflineTradersTable.onTransaction(storePlayer, storeList.getItemCount() == 0, false); OfflineTraderTable.onTransaction(storePlayer, storeList.getItemCount() == 0, false);
} }
if (storeList.getItemCount() == 0) if (storeList.getItemCount() == 0)
@@ -20,7 +20,7 @@ import static org.l2jmobius.gameserver.model.actor.Npc.INTERACTION_DISTANCE;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.enums.PrivateStoreType;
import org.l2jmobius.gameserver.model.ItemRequest; import org.l2jmobius.gameserver.model.ItemRequest;
import org.l2jmobius.gameserver.model.TradeList; import org.l2jmobius.gameserver.model.TradeList;
@@ -144,7 +144,7 @@ public class RequestPrivateStoreSell implements IClientIncomingPacket
// Update offline trade record, if realtime saving is enabled // Update offline trade record, if realtime saving is enabled
if (Config.OFFLINE_TRADE_ENABLE && Config.STORE_OFFLINE_TRADE_IN_REALTIME && ((storePlayer.getClient() == null) || storePlayer.getClient().isDetached())) if (Config.OFFLINE_TRADE_ENABLE && Config.STORE_OFFLINE_TRADE_IN_REALTIME && ((storePlayer.getClient() == null) || storePlayer.getClient().isDetached()))
{ {
OfflineTradersTable.onTransaction(storePlayer, storeList.getItemCount() == 0, false); OfflineTraderTable.onTransaction(storePlayer, storeList.getItemCount() == 0, false);
} }
if (storeList.getItemCount() == 0) if (storeList.getItemCount() == 0)
@@ -25,7 +25,7 @@ import java.util.Map;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.ceremonyofchaos.CeremonyOfChaosEvent; import org.l2jmobius.gameserver.model.ceremonyofchaos.CeremonyOfChaosEvent;
@@ -112,7 +112,7 @@ public class RequestAcquireAbilityList implements IClientIncomingPacket
final List<SkillLearn> skillsToLearn = new ArrayList<>(_skills.size()); final List<SkillLearn> skillsToLearn = new ArrayList<>(_skills.size());
for (SkillHolder holder : _skills.values()) for (SkillHolder holder : _skills.values())
{ {
final SkillLearn learn = SkillTreesData.getInstance().getAbilitySkill(holder.getSkillId(), holder.getSkillLevel()); final SkillLearn learn = SkillTreeData.getInstance().getAbilitySkill(holder.getSkillId(), holder.getSkillLevel());
if (learn == null) if (learn == null)
{ {
LOGGER.warning("SkillLearn " + holder.getSkillId() + " (" + holder.getSkillLevel() + ") not found!"); LOGGER.warning("SkillLearn " + holder.getSkillId() + " (" + holder.getSkillLevel() + ") not found!");
@@ -18,7 +18,7 @@ package org.l2jmobius.gameserver.network.clientpackets.ability;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.enums.PrivateStoreType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -91,7 +91,7 @@ public class RequestResetAbilityPoint implements IClientIncomingPacket
if (player.reduceAdena("AbilityPointsReset", Config.ABILITY_POINTS_RESET_ADENA, player, true)) if (player.reduceAdena("AbilityPointsReset", Config.ABILITY_POINTS_RESET_ADENA, player, true))
{ {
for (SkillLearn sk : SkillTreesData.getInstance().getAbilitySkillTree().values()) for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values())
{ {
final Skill skill = player.getKnownSkill(sk.getSkillId()); final Skill skill = player.getKnownSkill(sk.getSkillId());
if (skill != null) if (skill != null)
@@ -21,7 +21,7 @@ import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -41,8 +41,8 @@ public class AcquireSkillList implements IClientOutgoingPacket
if (!player.isSubclassLocked()) // Changing class. if (!player.isSubclassLocked()) // Changing class.
{ {
_player = player; _player = player;
_learnable = SkillTreesData.getInstance().getAvailableSkills(player, player.getClassId(), false, false); _learnable = SkillTreeData.getInstance().getAvailableSkills(player, player.getClassId(), false, false);
_learnable.addAll(SkillTreesData.getInstance().getNextAvailableSkills(player, player.getClassId(), false, false)); _learnable.addAll(SkillTreeData.getInstance().getNextAvailableSkills(player, player.getClassId(), false, false));
} }
} }
@@ -22,7 +22,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.CommonSkill; import org.l2jmobius.gameserver.model.skills.CommonSkill;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
@@ -37,7 +37,7 @@ public class ExAlchemySkillList implements IClientOutgoingPacket
public ExAlchemySkillList(PlayerInstance player) public ExAlchemySkillList(PlayerInstance player)
{ {
_skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreesData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList())); _skills.addAll(player.getAllSkills().stream().filter(s -> SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel())).collect(Collectors.toList()));
_skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1)); _skills.add(SkillData.getInstance().getSkill(CommonSkill.ALCHEMY_CUBE.getId(), 1));
} }
@@ -22,7 +22,7 @@ import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData; import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
@@ -44,7 +44,7 @@ public class ExAcquireAPSkillList implements IClientOutgoingPacket
_abilityPoints = player.getAbilityPoints(); _abilityPoints = player.getAbilityPoints();
_usedAbilityPoints = player.getAbilityPointsUsed(); _usedAbilityPoints = player.getAbilityPointsUsed();
_price = AbilityPointsData.getInstance().getPrice(_abilityPoints); _price = AbilityPointsData.getInstance().getPrice(_abilityPoints);
for (SkillLearn sk : SkillTreesData.getInstance().getAbilitySkillTree().values()) for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values())
{ {
final Skill knownSkill = player.getKnownSkill(sk.getSkillId()); final Skill knownSkill = player.getKnownSkill(sk.getSkillId());
if (knownSkill != null) if (knownSkill != null)
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.util;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.instancemanager.PlayerCountManager; import org.l2jmobius.gameserver.instancemanager.PlayerCountManager;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -144,7 +144,7 @@ public class OfflineTradeUtil
// Store trade on exit, if realtime saving is enabled. // Store trade on exit, if realtime saving is enabled.
if (Config.STORE_OFFLINE_TRADE_IN_REALTIME) if (Config.STORE_OFFLINE_TRADE_IN_REALTIME)
{ {
OfflineTradersTable.onTransaction(player, false, true); OfflineTraderTable.onTransaction(player, false, true);
} }
player.storeMe(); player.storeMe();
@@ -19,7 +19,7 @@ package ai.areas.IvoryTower.AvantGarde;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.MultisellData; import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -124,11 +124,11 @@ public class AvantGarde extends AbstractNpcAI
*/ */
public static void showTransformSkillList(PlayerInstance player) public static void showTransformSkillList(PlayerInstance player)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableTransformSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableTransformSkills(player);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
final int minlevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, SkillTreesData.getInstance().getTransformSkillTree()); final int minlevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, SkillTreeData.getInstance().getTransformSkillTree());
if (minlevel > 0) if (minlevel > 0)
{ {
// No more skills to learn, come back when you level. // No more skills to learn, come back when you level.
@@ -22,7 +22,7 @@ import java.util.Map.Entry;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.enums.UserInfoType;
@@ -340,8 +340,8 @@ public class AwakeningMaster extends AbstractNpcAI
} }
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2); giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -21,7 +21,7 @@ import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
@@ -151,8 +151,8 @@ public class Hardin extends AbstractNpcAI
player.setBaseClass(player.getActiveClass()); player.setBaseClass(player.getActiveClass());
} }
// Adjustments // Adjustments
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -18,7 +18,7 @@ package ai.areas.TalkingIsland.MonkOfChaos;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.SubclassType; import org.l2jmobius.gameserver.enums.SubclassType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
@@ -92,7 +92,7 @@ public class MonkOfChaos extends AbstractNpcAI
if (player.isDualClassActive()) if (player.isDualClassActive())
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS));
@@ -104,7 +104,7 @@ public class MonkOfChaos extends AbstractNpcAI
} }
else else
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS);
if (!skills.isEmpty()) if (!skills.isEmpty())
{ {
player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION)); player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION));
@@ -146,7 +146,7 @@ public class MonkOfChaos extends AbstractNpcAI
} }
takeItems(player, 57, CANCEL_FEE); takeItems(player, 57, CANCEL_FEE);
for (SkillLearn skillLearn : SkillTreesData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS)) for (SkillLearn skillLearn : SkillTreeData.getInstance().getAllRevelationSkills(player, player.isDualClassActive() ? SubclassType.DUALCLASS : SubclassType.BASECLASS))
{ {
final Skill skill = player.getKnownSkill(skillLearn.getSkillId()); final Skill skill = player.getKnownSkill(skillLearn.getSkillId());
if (skill != null) if (skill != null)
@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.CategoryData; import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
@@ -616,7 +616,7 @@ public class Raina extends AbstractNpcAI
player.setActiveClass(classIndex); player.setActiveClass(classIndex);
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html")); player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html"));
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendSkillList(); player.sendSkillList();
giveItems(player, getCloakId(player), 1); giveItems(player, getCloakId(player), 1);
@@ -651,7 +651,7 @@ public class Raina extends AbstractNpcAI
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED));
player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_HAS_BEEN_ADDED); player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_HAS_BEEN_ADDED);
player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html")); player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html"));
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendSkillList(); player.sendSkillList();
giveItems(player, getPowerItemId(player), 1); giveItems(player, getPowerItemId(player), 1);
@@ -18,7 +18,7 @@ package ai.others.AlchemistManager;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@@ -74,7 +74,7 @@ public class AlchemistManager extends AbstractNpcAI
{ {
if (player.getRace() == Race.ERTHEIA) if (player.getRace() == Race.ERTHEIA)
{ {
final List<SkillLearn> alchemySkills = SkillTreesData.getInstance().getAvailableAlchemySkills(player); final List<SkillLearn> alchemySkills = SkillTreeData.getInstance().getAvailableAlchemySkills(player);
if (alchemySkills.isEmpty()) if (alchemySkills.isEmpty())
{ {
@@ -26,7 +26,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.CastleSide; import org.l2jmobius.gameserver.enums.CastleSide;
import org.l2jmobius.gameserver.instancemanager.CastleManorManager; import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
import org.l2jmobius.gameserver.instancemanager.FortManager; import org.l2jmobius.gameserver.instancemanager.FortManager;
@@ -987,7 +987,7 @@ public class CastleChamberlain extends AbstractNpcAI
else else
{ {
final String listName = "tel" + castle.getCastleFunction(Castle.FUNC_TELEPORT).getLvl(); final String listName = "tel" + castle.getCastleFunction(Castle.FUNC_TELEPORT).getLvl();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(npc.getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(npc.getId(), listName);
if (holder != null) if (holder != null)
{ {
holder.showTeleportList(player, npc, "Quest CastleChamberlain goto"); holder.showTeleportList(player, npc, "Quest CastleChamberlain goto");
@@ -1009,7 +1009,7 @@ public class CastleChamberlain extends AbstractNpcAI
final int funcLvl = (listId.length() >= 4) ? CommonUtil.parseInt(listId.substring(3), -1) : -1; final int funcLvl = (listId.length() >= 4) ? CommonUtil.parseInt(listId.substring(3), -1) : -1;
if (func.getLvl() == funcLvl) if (func.getLvl() == funcLvl)
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(npc.getId(), listId); final TeleportHolder holder = TeleporterData.getInstance().getHolder(npc.getId(), listId);
if (holder != null) if (holder != null)
{ {
holder.doTeleport(player, npc, CommonUtil.parseNextInt(st, -1)); holder.doTeleport(player, npc, CommonUtil.parseNextInt(st, -1));
@@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.data.xml.impl.ResidenceFunctionsData; import org.l2jmobius.gameserver.data.xml.impl.ResidenceFunctionsData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.ClanHallGrade; import org.l2jmobius.gameserver.enums.ClanHallGrade;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -186,7 +186,7 @@ public class ClanHallManager extends AbstractNpcAI
final int teleportLevel = clanHall.getFunctionLevel(ResidenceFunctionType.TELEPORT); final int teleportLevel = clanHall.getFunctionLevel(ResidenceFunctionType.TELEPORT);
if (teleportLevel > 0) if (teleportLevel > 0)
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(npc.getId(), "tel" + teleportLevel); final TeleportHolder holder = TeleporterData.getInstance().getHolder(npc.getId(), "tel" + teleportLevel);
if (holder != null) if (holder != null)
{ {
if (!st.hasMoreTokens()) if (!st.hasMoreTokens())
@@ -34,7 +34,7 @@ import org.l2jmobius.commons.util.IXmlReader;
import org.l2jmobius.gameserver.data.xml.impl.CategoryData; import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
@@ -423,8 +423,8 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
} }
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
{ {
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -854,8 +854,8 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
} }
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
{ {
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -20,7 +20,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@@ -97,7 +97,7 @@ public class HealerTrainer extends AbstractNpcAI
break; break;
} }
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableTransferSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableTransferSkills(player);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN); player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN);
@@ -136,7 +136,7 @@ public class HealerTrainer extends AbstractNpcAI
else else
{ {
boolean hasSkills = false; boolean hasSkills = false;
final Collection<SkillLearn> skills = SkillTreesData.getInstance().getTransferSkillTree(player.getClassId()).values(); final Collection<SkillLearn> skills = SkillTreeData.getInstance().getTransferSkillTree(player.getClassId()).values();
for (SkillLearn skillLearn : skills) for (SkillLearn skillLearn : skills)
{ {
final Skill skill = player.getKnownSkill(skillLearn.getSkillId()); final Skill skill = player.getKnownSkill(skillLearn.getSkillId());
@@ -18,7 +18,7 @@ package features.SkillTransfer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
import org.l2jmobius.gameserver.model.PlayerCondOverride; import org.l2jmobius.gameserver.model.PlayerCondOverride;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
@@ -111,7 +111,7 @@ public class SkillTransfer extends AbstractNpcAI
long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false); long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false);
for (Skill sk : player.getAllSkills()) for (Skill sk : player.getAllSkills())
{ {
for (SkillLearn s : SkillTreesData.getInstance().getTransferSkillTree(player.getClassId()).values()) for (SkillLearn s : SkillTreeData.getInstance().getTransferSkillTree(player.getClassId()).values())
{ {
if (s.getSkillId() == sk.getId()) if (s.getSkillId() == sk.getId())
{ {
@@ -24,7 +24,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -278,12 +278,12 @@ public class AdminBuffs implements IAdminCommandHandler
*/ */
private void switchSkills(PlayerInstance gmchar, boolean toAuraSkills) private void switchSkills(PlayerInstance gmchar, boolean toAuraSkills)
{ {
final Collection<Skill> skills = toAuraSkills ? SkillTreesData.getInstance().getGMSkillTree() : SkillTreesData.getInstance().getGMAuraSkillTree(); final Collection<Skill> skills = toAuraSkills ? SkillTreeData.getInstance().getGMSkillTree() : SkillTreeData.getInstance().getGMAuraSkillTree();
for (Skill skill : skills) for (Skill skill : skills)
{ {
gmchar.removeSkill(skill, false); // Don't Save GM skills to database gmchar.removeSkill(skill, false); // Don't Save GM skills to database
} }
SkillTreesData.getInstance().addSkills(gmchar, toAuraSkills); SkillTreeData.getInstance().addSkills(gmchar, toAuraSkills);
} }
@Override @Override
@@ -33,7 +33,7 @@ import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.data.sql.impl.CharNameTable; import org.l2jmobius.gameserver.data.sql.impl.CharNameTable;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
@@ -423,8 +423,8 @@ public class AdminEditChar implements IAdminCommandHandler
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName(); final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
{ {
SkillTreesData.getInstance().cleanSkillUponAwakening(player); SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{ {
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
} }
@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.data.sql.impl.CrestTable;
import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData; import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.data.xml.impl.AttendanceRewardData; import org.l2jmobius.gameserver.data.xml.impl.AttendanceRewardData;
import org.l2jmobius.gameserver.data.xml.impl.BuyListData; import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
import org.l2jmobius.gameserver.data.xml.impl.CombinationItemsData; import org.l2jmobius.gameserver.data.xml.impl.CombinationItemsData;
@@ -46,7 +46,7 @@ import org.l2jmobius.gameserver.data.xml.impl.PrimeShopData;
import org.l2jmobius.gameserver.data.xml.impl.SayuneData; import org.l2jmobius.gameserver.data.xml.impl.SayuneData;
import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData; import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.data.xml.impl.TransformData; import org.l2jmobius.gameserver.data.xml.impl.TransformData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
@@ -185,7 +185,7 @@ public class AdminReload implements IAdminCommandHandler
} }
case "teleport": case "teleport":
{ {
TeleportersData.getInstance().load(); TeleporterData.getInstance().load();
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Teleports."); AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Teleports.");
break; break;
} }
@@ -298,7 +298,7 @@ public class AdminReload implements IAdminCommandHandler
} }
case "sets": case "sets":
{ {
ArmorSetsData.getInstance().load(); ArmorSetData.getInstance().load();
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Armor sets data."); AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Armor sets data.");
break; break;
} }
@@ -23,7 +23,7 @@ import java.util.logging.Logger;
import org.l2jmobius.gameserver.data.xml.impl.ClassListData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -324,7 +324,7 @@ public class AdminSkill implements IAdminCommandHandler
activeChar.sendPacket(sm); activeChar.sendPacket(sm);
} }
final Map<Integer, SkillLearn> skills = SkillTreesData.getInstance().getMaxPledgeSkills(clan, includeSquad); final Map<Integer, SkillLearn> skills = SkillTreeData.getInstance().getMaxPledgeSkills(clan, includeSquad);
for (SkillLearn s : skills.values()) for (SkillLearn s : skills.values())
{ {
clan.addNewSkill(SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel())); clan.addNewSkill(SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel()));
@@ -29,7 +29,7 @@ import java.util.regex.Pattern;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.datatables.SpawnTable; import org.l2jmobius.gameserver.datatables.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
@@ -284,7 +284,7 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
// Reload. // Reload.
SpawnsData.getInstance().init(); SpawnData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload(); ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
@@ -29,7 +29,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.cache.HtmCache; import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.enums.DropType; import org.l2jmobius.gameserver.enums.DropType;
import org.l2jmobius.gameserver.handler.CommunityBoardHandler; import org.l2jmobius.gameserver.handler.CommunityBoardHandler;
@@ -300,7 +300,7 @@ public class DropSearchBoard implements IParseBoardHandler
case "_bbs_npc_trace": case "_bbs_npc_trace":
{ {
final int npcId = Integer.parseInt(params[1]); final int npcId = Integer.parseInt(params[1]);
final List<NpcSpawnTemplate> spawnList = SpawnsData.getInstance().getNpcSpawns(npc -> npc.getId() == npcId); final List<NpcSpawnTemplate> spawnList = SpawnData.getInstance().getNpcSpawns(npc -> npc.getId() == npcId);
if (spawnList.isEmpty()) if (spawnList.isEmpty())
{ {
player.sendMessage("Cannot find any spawn. Maybe dropped by a boss or instance monster."); player.sendMessage("Cannot find any spawn. Maybe dropped by a boss or instance monster.");
@@ -37,7 +37,7 @@ import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
import org.l2jmobius.gameserver.data.xml.impl.ExperienceData; import org.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import org.l2jmobius.gameserver.data.xml.impl.MultisellData; import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.handler.CommunityBoardHandler; import org.l2jmobius.gameserver.handler.CommunityBoardHandler;
import org.l2jmobius.gameserver.handler.IParseBoardHandler; import org.l2jmobius.gameserver.handler.IParseBoardHandler;
import org.l2jmobius.gameserver.instancemanager.PremiumManager; import org.l2jmobius.gameserver.instancemanager.PremiumManager;
@@ -285,7 +285,7 @@ public class HomeBoard implements IParseBoardHandler
player.setCurrentCp(player.getMaxCp()); player.setCurrentCp(player.getMaxCp());
if (Config.COMMUNITYBOARD_DELEVEL_REMOVE_ABILITIES) if (Config.COMMUNITYBOARD_DELEVEL_REMOVE_ABILITIES)
{ {
for (SkillLearn sk : SkillTreesData.getInstance().getAbilitySkillTree().values()) for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values())
{ {
final Skill skill = player.getKnownSkill(sk.getSkillId()); final Skill skill = player.getKnownSkill(sk.getSkillId());
if (skill != null) if (skill != null)
@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.data.sql.impl.CrestTable;
import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData; import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.data.xml.impl.BuyListData; import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
import org.l2jmobius.gameserver.data.xml.impl.DoorData; import org.l2jmobius.gameserver.data.xml.impl.DoorData;
import org.l2jmobius.gameserver.data.xml.impl.EnchantItemData; import org.l2jmobius.gameserver.data.xml.impl.EnchantItemData;
@@ -38,7 +38,7 @@ import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SayuneData; import org.l2jmobius.gameserver.data.xml.impl.SayuneData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.data.xml.impl.TransformData; import org.l2jmobius.gameserver.data.xml.impl.TransformData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager; import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager;
@@ -146,7 +146,7 @@ public class Reload implements ITelnetCommand
} }
case "teleport": case "teleport":
{ {
TeleportersData.getInstance().load(); TeleporterData.getInstance().load();
return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Teleports."); return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Teleports.");
} }
case "skill": case "skill":
@@ -238,7 +238,7 @@ public class Reload implements ITelnetCommand
} }
case "sets": case "sets":
{ {
ArmorSetsData.getInstance().load(); ArmorSetData.getInstance().load();
return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Armor sets data."); return AdminData.getInstance().broadcastMessageToGMs("Telnet Admin: Reloaded Armor sets data.");
} }
case "script": case "script":
@@ -39,13 +39,13 @@ import org.l2jmobius.gameserver.data.sql.impl.CharNameTable;
import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable; import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.sql.impl.CrestTable; import org.l2jmobius.gameserver.data.sql.impl.CrestTable;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData; import org.l2jmobius.gameserver.data.xml.impl.AbilityPointsData;
import org.l2jmobius.gameserver.data.xml.impl.ActionData; import org.l2jmobius.gameserver.data.xml.impl.ActionData;
import org.l2jmobius.gameserver.data.xml.impl.AdminData; import org.l2jmobius.gameserver.data.xml.impl.AdminData;
import org.l2jmobius.gameserver.data.xml.impl.AlchemyData; import org.l2jmobius.gameserver.data.xml.impl.AlchemyData;
import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData; import org.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import org.l2jmobius.gameserver.data.xml.impl.ArmorSetsData; import org.l2jmobius.gameserver.data.xml.impl.ArmorSetData;
import org.l2jmobius.gameserver.data.xml.impl.AttendanceRewardData; import org.l2jmobius.gameserver.data.xml.impl.AttendanceRewardData;
import org.l2jmobius.gameserver.data.xml.impl.BeautyShopData; import org.l2jmobius.gameserver.data.xml.impl.BeautyShopData;
import org.l2jmobius.gameserver.data.xml.impl.BuyListData; import org.l2jmobius.gameserver.data.xml.impl.BuyListData;
@@ -93,10 +93,10 @@ import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData;
import org.l2jmobius.gameserver.data.xml.impl.ShuttleData; import org.l2jmobius.gameserver.data.xml.impl.ShuttleData;
import org.l2jmobius.gameserver.data.xml.impl.SiegeScheduleData; import org.l2jmobius.gameserver.data.xml.impl.SiegeScheduleData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.data.xml.impl.StaticObjectData; import org.l2jmobius.gameserver.data.xml.impl.StaticObjectData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.data.xml.impl.TransformData; import org.l2jmobius.gameserver.data.xml.impl.TransformData;
import org.l2jmobius.gameserver.data.xml.impl.VariationData; import org.l2jmobius.gameserver.data.xml.impl.VariationData;
import org.l2jmobius.gameserver.datatables.BotReportTable; import org.l2jmobius.gameserver.datatables.BotReportTable;
@@ -248,7 +248,7 @@ public class GameServer
SkillConditionHandler.getInstance().executeScript(); SkillConditionHandler.getInstance().executeScript();
EffectHandler.getInstance().executeScript(); EffectHandler.getInstance().executeScript();
EnchantSkillGroupsData.getInstance(); EnchantSkillGroupsData.getInstance();
SkillTreesData.getInstance(); SkillTreeData.getInstance();
SkillData.getInstance(); SkillData.getInstance();
PetSkillData.getInstance(); PetSkillData.getInstance();
@@ -266,7 +266,7 @@ public class GameServer
BuyListData.getInstance(); BuyListData.getInstance();
MultisellData.getInstance(); MultisellData.getInstance();
RecipeData.getInstance(); RecipeData.getInstance();
ArmorSetsData.getInstance(); ArmorSetData.getInstance();
FishingData.getInstance(); FishingData.getInstance();
HennaData.getInstance(); HennaData.getInstance();
PrimeShopData.getInstance(); PrimeShopData.getInstance();
@@ -320,7 +320,7 @@ public class GameServer
FakePlayerData.getInstance(); FakePlayerData.getInstance();
FakePlayerChatManager.getInstance(); FakePlayerChatManager.getInstance();
ExtendDropData.getInstance(); ExtendDropData.getInstance();
SpawnsData.getInstance(); SpawnData.getInstance();
WalkingManager.getInstance(); WalkingManager.getInstance();
StaticObjectData.getInstance(); StaticObjectData.getInstance();
ItemAuctionManager.getInstance(); ItemAuctionManager.getInstance();
@@ -339,7 +339,7 @@ public class GameServer
printSection("Cache"); printSection("Cache");
HtmCache.getInstance(); HtmCache.getInstance();
CrestTable.getInstance(); CrestTable.getInstance();
TeleportersData.getInstance(); TeleporterData.getInstance();
MatchingRoomManager.getInstance(); MatchingRoomManager.getInstance();
PetitionManager.getInstance(); PetitionManager.getInstance();
CursedWeaponsManager.getInstance(); CursedWeaponsManager.getInstance();
@@ -375,7 +375,7 @@ public class GameServer
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Failed to execute script list!", e); LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Failed to execute script list!", e);
} }
SpawnsData.getInstance().init(); SpawnData.getInstance().init();
DBSpawnManager.getInstance(); DBSpawnManager.getInstance();
printSection("Event Engine"); printSection("Event Engine");
@@ -429,7 +429,7 @@ public class GameServer
if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS) if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS)
{ {
OfflineTradersTable.getInstance().restoreOfflineTraders(); OfflineTraderTable.getInstance().restoreOfflineTraders();
} }
if (Config.SERVER_RESTART_SCHEDULE_ENABLED) if (Config.SERVER_RESTART_SCHEDULE_ENABLED)
@@ -24,7 +24,7 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.database.DatabaseBackup; import org.l2jmobius.commons.database.DatabaseBackup;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.sql.impl.OfflineTradersTable; import org.l2jmobius.gameserver.data.sql.impl.OfflineTraderTable;
import org.l2jmobius.gameserver.datatables.BotReportTable; import org.l2jmobius.gameserver.datatables.BotReportTable;
import org.l2jmobius.gameserver.instancemanager.CastleManorManager; import org.l2jmobius.gameserver.instancemanager.CastleManorManager;
import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager; import org.l2jmobius.gameserver.instancemanager.CeremonyOfChaosManager;
@@ -124,7 +124,7 @@ public class Shutdown extends Thread
{ {
if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS && !Config.STORE_OFFLINE_TRADE_IN_REALTIME) if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS && !Config.STORE_OFFLINE_TRADE_IN_REALTIME)
{ {
OfflineTradersTable.getInstance().storeOffliners(); OfflineTraderTable.getInstance().storeOffliners();
LOGGER.info("Offline Traders Table: Offline shops stored(" + tc.getEstimatedTimeAndRestartCounter() + "ms)."); LOGGER.info("Offline Traders Table: Offline shops stored(" + tc.getEstimatedTimeAndRestartCounter() + "ms).");
} }
} }
@@ -36,9 +36,9 @@ import org.l2jmobius.gameserver.model.holders.SellBuffHolder;
import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.GameClient;
public class OfflineTradersTable public class OfflineTraderTable
{ {
private static final Logger LOGGER = Logger.getLogger(OfflineTradersTable.class.getName()); private static final Logger LOGGER = Logger.getLogger(OfflineTraderTable.class.getName());
// SQL DEFINITIONS // SQL DEFINITIONS
private static final String SAVE_OFFLINE_STATUS = "INSERT INTO character_offline_trade (`charId`,`time`,`type`,`title`) VALUES (?,?,?,?)"; private static final String SAVE_OFFLINE_STATUS = "INSERT INTO character_offline_trade (`charId`,`time`,`type`,`title`) VALUES (?,?,?,?)";
@@ -50,7 +50,7 @@ public class OfflineTradersTable
private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM character_offline_trade"; private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM character_offline_trade";
private static final String LOAD_OFFLINE_ITEMS = "SELECT * FROM character_offline_trade_items WHERE `charId`=?"; private static final String LOAD_OFFLINE_ITEMS = "SELECT * FROM character_offline_trade_items WHERE `charId`=?";
protected OfflineTradersTable() protected OfflineTraderTable()
{ {
} }
@@ -475,13 +475,13 @@ public class OfflineTradersTable
* Gets the single instance of OfflineTradersTable. * Gets the single instance of OfflineTradersTable.
* @return single instance of OfflineTradersTable * @return single instance of OfflineTradersTable
*/ */
public static OfflineTradersTable getInstance() public static OfflineTraderTable getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final OfflineTradersTable INSTANCE = new OfflineTradersTable(); protected static final OfflineTraderTable INSTANCE = new OfflineTraderTable();
} }
} }
@@ -26,7 +26,7 @@ import org.l2jmobius.gameserver.model.skills.Skill;
/** /**
* @author Nyaran * @author Nyaran
*/ */
public class SummonEffectsTable public class SummonEffectTable
{ {
/** Servitors **/ /** Servitors **/
// Map tree // Map tree
@@ -80,13 +80,13 @@ public class SummonEffectsTable
} }
} }
public static SummonEffectsTable getInstance() public static SummonEffectTable getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final SummonEffectsTable INSTANCE = new SummonEffectsTable(); protected static final SummonEffectTable INSTANCE = new SummonEffectTable();
} }
} }
@@ -40,14 +40,14 @@ import org.l2jmobius.gameserver.model.stats.BaseStat;
* Loads armor set bonuses. * Loads armor set bonuses.
* @author godson, Luno, UnAfraid * @author godson, Luno, UnAfraid
*/ */
public class ArmorSetsData implements IXmlReader public class ArmorSetData implements IXmlReader
{ {
private static final Logger LOGGER = Logger.getLogger(ArmorSetsData.class.getName()); private static final Logger LOGGER = Logger.getLogger(ArmorSetData.class.getName());
private final Map<Integer, ArmorSet> _armorSets = new ConcurrentHashMap<>(); private final Map<Integer, ArmorSet> _armorSets = new ConcurrentHashMap<>();
private final Map<Integer, List<ArmorSet>> _armorSetItems = new ConcurrentHashMap<>(); private final Map<Integer, List<ArmorSet>> _armorSetItems = new ConcurrentHashMap<>();
protected ArmorSetsData() protected ArmorSetData()
{ {
load(); load();
} }
@@ -174,13 +174,13 @@ public class ArmorSetsData implements IXmlReader
* Gets the single instance of ArmorSetsData * Gets the single instance of ArmorSetsData
* @return single instance of ArmorSetsData * @return single instance of ArmorSetsData
*/ */
public static ArmorSetsData getInstance() public static ArmorSetData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final ArmorSetsData INSTANCE = new ArmorSetsData(); protected static final ArmorSetData INSTANCE = new ArmorSetData();
} }
} }
@@ -225,7 +225,7 @@ public class SkillData implements IXmlReader
{ {
load(); load();
// Reload Skill Tree as well. // Reload Skill Tree as well.
SkillTreesData.getInstance().load(); SkillTreeData.getInstance().load();
} }
@Override @Override
@@ -79,9 +79,9 @@ import org.l2jmobius.gameserver.model.skills.Skill;
* For XML schema please refer to skillTrees.xsd in datapack in xsd folder and for parameters documentation refer to documentation.txt in skillTrees folder.<br> * For XML schema please refer to skillTrees.xsd in datapack in xsd folder and for parameters documentation refer to documentation.txt in skillTrees folder.<br>
* @author Zoey76 * @author Zoey76
*/ */
public class SkillTreesData implements IXmlReader public class SkillTreeData implements IXmlReader
{ {
private static final Logger LOGGER = Logger.getLogger(SkillTreesData.class.getName()); private static final Logger LOGGER = Logger.getLogger(SkillTreeData.class.getName());
// ClassId, Map of Skill Hash Code, SkillLearn // ClassId, Map of Skill Hash Code, SkillLearn
private static final Map<ClassId, Map<Long, SkillLearn>> _classSkillTrees = new ConcurrentHashMap<>(); private static final Map<ClassId, Map<Long, SkillLearn>> _classSkillTrees = new ConcurrentHashMap<>();
@@ -121,7 +121,7 @@ public class SkillTreesData implements IXmlReader
/** /**
* Instantiates a new skill trees data. * Instantiates a new skill trees data.
*/ */
protected SkillTreesData() protected SkillTreeData()
{ {
load(); load();
} }
@@ -1807,7 +1807,7 @@ public class SkillTreesData implements IXmlReader
* Gets the single instance of SkillTreesData. * Gets the single instance of SkillTreesData.
* @return the only instance of this class * @return the only instance of this class
*/ */
public static SkillTreesData getInstance() public static SkillTreeData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
@@ -1817,6 +1817,6 @@ public class SkillTreesData implements IXmlReader
*/ */
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final SkillTreesData INSTANCE = new SkillTreesData(); protected static final SkillTreeData INSTANCE = new SkillTreeData();
} }
} }
@@ -51,13 +51,13 @@ import org.l2jmobius.gameserver.model.zone.type.SpawnTerritory;
/** /**
* @author UnAfraid * @author UnAfraid
*/ */
public class SpawnsData implements IXmlReader public class SpawnData implements IXmlReader
{ {
protected static final Logger LOGGER = Logger.getLogger(SpawnsData.class.getName()); protected static final Logger LOGGER = Logger.getLogger(SpawnData.class.getName());
private final Collection<SpawnTemplate> _spawns = ConcurrentHashMap.newKeySet(); private final Collection<SpawnTemplate> _spawns = ConcurrentHashMap.newKeySet();
protected SpawnsData() protected SpawnData()
{ {
load(); load();
} }
@@ -351,13 +351,13 @@ public class SpawnsData implements IXmlReader
* Gets the single instance of SpawnsData. * Gets the single instance of SpawnsData.
* @return single instance of SpawnsData * @return single instance of SpawnsData
*/ */
public static SpawnsData getInstance() public static SpawnData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final SpawnsData INSTANCE = new SpawnsData(); protected static final SpawnData INSTANCE = new SpawnData();
} }
} }
@@ -34,14 +34,14 @@ import org.l2jmobius.gameserver.model.teleporter.TeleportHolder;
/** /**
* @author UnAfraid * @author UnAfraid
*/ */
public class TeleportersData implements IXmlReader public class TeleporterData implements IXmlReader
{ {
// Logger instance // Logger instance
private static final Logger LOGGER = Logger.getLogger(TeleportersData.class.getName()); private static final Logger LOGGER = Logger.getLogger(TeleporterData.class.getName());
// Teleporter data // Teleporter data
private final Map<Integer, Map<String, TeleportHolder>> _teleporters = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, TeleportHolder>> _teleporters = new ConcurrentHashMap<>();
protected TeleportersData() protected TeleporterData()
{ {
load(); load();
} }
@@ -127,13 +127,13 @@ public class TeleportersData implements IXmlReader
* Gets the single instance of TeleportersData. * Gets the single instance of TeleportersData.
* @return single instance of TeleportersData * @return single instance of TeleportersData
*/ */
public static TeleportersData getInstance() public static TeleporterData getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder private static class SingletonHolder
{ {
protected static final TeleportersData INSTANCE = new TeleportersData(); protected static final TeleporterData INSTANCE = new TeleporterData();
} }
} }
@@ -34,7 +34,7 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.datatables.SpawnTable; import org.l2jmobius.gameserver.datatables.SpawnTable;
import org.l2jmobius.gameserver.enums.RaidBossStatus; import org.l2jmobius.gameserver.enums.RaidBossStatus;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
@@ -94,7 +94,7 @@ public class DBSpawnManager
spawn.setAmount(1); spawn.setAmount(1);
spawn.setHeading(rset.getInt("heading")); spawn.setHeading(rset.getInt("heading"));
final List<NpcSpawnTemplate> spawns = SpawnsData.getInstance().getNpcSpawns(npc -> (npc.getId() == template.getId()) && npc.hasDBSave()); final List<NpcSpawnTemplate> spawns = SpawnData.getInstance().getNpcSpawns(npc -> (npc.getId() == template.getId()) && npc.hasDBSave());
if (spawns.isEmpty()) if (spawns.isEmpty())
{ {
LOGGER.warning(getClass().getSimpleName() + ": Couldn't find spawn declaration for npc: " + template.getId() + " - " + template.getName()); LOGGER.warning(getClass().getSimpleName() + ": Couldn't find spawn declaration for npc: " + template.getId() + " - " + template.getName());
@@ -42,7 +42,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.util.IXmlReader; import org.l2jmobius.commons.util.IXmlReader;
import org.l2jmobius.gameserver.data.xml.impl.DoorData; import org.l2jmobius.gameserver.data.xml.impl.DoorData;
import org.l2jmobius.gameserver.data.xml.impl.SpawnsData; import org.l2jmobius.gameserver.data.xml.impl.SpawnData;
import org.l2jmobius.gameserver.enums.InstanceReenterType; import org.l2jmobius.gameserver.enums.InstanceReenterType;
import org.l2jmobius.gameserver.enums.InstanceRemoveBuffType; import org.l2jmobius.gameserver.enums.InstanceRemoveBuffType;
import org.l2jmobius.gameserver.enums.InstanceTeleportType; import org.l2jmobius.gameserver.enums.InstanceTeleportType;
@@ -231,7 +231,7 @@ public class InstanceManager implements IXmlReader
case "spawnlist": case "spawnlist":
{ {
final List<SpawnTemplate> spawns = new ArrayList<>(); final List<SpawnTemplate> spawns = new ArrayList<>();
SpawnsData.getInstance().parseSpawn(innerNode, file, spawns); SpawnData.getInstance().parseSpawn(innerNode, file, spawns);
template.addSpawns(spawns); template.addSpawns(spawns);
break; break;
} }
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.model.actor.instance;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.l2jmobius.gameserver.data.xml.impl.DoorData; import org.l2jmobius.gameserver.data.xml.impl.DoorData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.enums.TeleportType; import org.l2jmobius.gameserver.enums.TeleportType;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -92,7 +92,7 @@ public class DoormanInstance extends NpcInstance
{ {
if (isOwnerClan(player)) if (isOwnerClan(player))
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), TeleportType.OTHER.name()); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), TeleportType.OTHER.name());
if (holder != null) if (holder != null)
{ {
final int locId = Integer.parseInt(command.substring(5).trim()); final int locId = Integer.parseInt(command.substring(5).trim());
@@ -18,7 +18,7 @@ package org.l2jmobius.gameserver.model.actor.instance;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
@@ -67,11 +67,11 @@ public class FishermanInstance extends MerchantInstance
public static void showFishSkillList(PlayerInstance player) public static void showFishSkillList(PlayerInstance player)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableFishingSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableFishingSkills(player);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
final int minlLevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, SkillTreesData.getInstance().getFishingSkillTree()); final int minlLevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, SkillTreeData.getInstance().getFishingSkillTree());
if (minlLevel > 0) if (minlLevel > 0)
{ {
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1);
@@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.clan.ClanPrivilege; import org.l2jmobius.gameserver.model.clan.ClanPrivilege;
@@ -932,7 +932,7 @@ public class FortManagerInstance extends MerchantInstance
final int funcLvl = (val.length() >= 4) ? CommonUtil.parseInt(val.substring(3), -1) : -1; final int funcLvl = (val.length() >= 4) ? CommonUtil.parseInt(val.substring(3), -1) : -1;
if (func.getLvl() == funcLvl) if (func.getLvl() == funcLvl)
{ {
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), val); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), val);
if (holder != null) if (holder != null)
{ {
holder.doTeleport(player, this, CommonUtil.parseNextInt(st, -1)); holder.doTeleport(player, this, CommonUtil.parseNextInt(st, -1));
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.model.actor.instance;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.SkillLearn;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
@@ -63,11 +63,11 @@ public class NpcInstance extends Npc
final int npcId = npc.getTemplate().getId(); final int npcId = npc.getTemplate().getId();
if (npcId == 32611) // Tolonis (Officer) if (npcId == 32611) // Tolonis (Officer)
{ {
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableCollectSkills(player); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableCollectSkills(player);
if (skills.isEmpty()) // No more skills to learn, come back when you level. if (skills.isEmpty()) // No more skills to learn, come back when you level.
{ {
final int minLevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, SkillTreesData.getInstance().getCollectSkillTree()); final int minLevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, SkillTreeData.getInstance().getCollectSkillTree());
if (minLevel > 0) if (minLevel > 0)
{ {
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1);
@@ -87,11 +87,11 @@ public class NpcInstance extends Npc
} }
// Normal skills, No LearnedByFS, no AutoGet skills. // Normal skills, No LearnedByFS, no AutoGet skills.
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailableSkills(player, classId, false, false); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableSkills(player, classId, false, false);
if (skills.isEmpty()) if (skills.isEmpty())
{ {
final Map<Long, SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(classId); final Map<Long, SkillLearn> skillTree = SkillTreeData.getInstance().getCompleteClassSkillTree(classId);
final int minLevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, skillTree); final int minLevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, skillTree);
if (minLevel > 0) if (minLevel > 0)
{ {
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1); final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ANY_FURTHER_SKILLS_TO_LEARN_COME_BACK_WHEN_YOU_HAVE_REACHED_LEVEL_S1);
@@ -35,8 +35,8 @@ import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable; import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable.SummonEffect; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable.SummonEffect;
import org.l2jmobius.gameserver.data.xml.impl.ExperienceData; import org.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import org.l2jmobius.gameserver.data.xml.impl.PetDataTable; import org.l2jmobius.gameserver.data.xml.impl.PetDataTable;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
@@ -900,14 +900,14 @@ public class PetInstance extends Summon
public void stopSkillEffects(boolean removed, int skillId) public void stopSkillEffects(boolean removed, int skillId)
{ {
super.stopSkillEffects(removed, skillId); super.stopSkillEffects(removed, skillId);
final Collection<SummonEffect> effects = SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()); final Collection<SummonEffect> effects = SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId());
if ((effects != null) && !effects.isEmpty()) if ((effects != null) && !effects.isEmpty())
{ {
for (SummonEffect effect : effects) for (SummonEffect effect : effects)
{ {
if (effect.getSkill().getId() == skillId) if (effect.getSkill().getId() == skillId)
{ {
SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()).remove(effect); SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId()).remove(effect);
} }
} }
} }
@@ -985,7 +985,7 @@ public class PetInstance extends Summon
} }
// Clear list for overwrite // Clear list for overwrite
SummonEffectsTable.getInstance().getPetEffects().getOrDefault(getControlObjectId(), Collections.emptyList()).clear(); SummonEffectTable.getInstance().getPetEffects().getOrDefault(getControlObjectId(), Collections.emptyList()).clear();
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps1 = con.prepareStatement(DELETE_SKILL_SAVE); PreparedStatement ps1 = con.prepareStatement(DELETE_SKILL_SAVE);
@@ -1048,7 +1048,7 @@ public class PetInstance extends Summon
ps2.setInt(6, ++buffIndex); ps2.setInt(6, ++buffIndex);
ps2.addBatch(); ps2.addBatch();
SummonEffectsTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, info.getTime())); SummonEffectTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, info.getTime()));
} }
ps2.executeBatch(); ps2.executeBatch();
} }
@@ -1066,7 +1066,7 @@ public class PetInstance extends Summon
PreparedStatement ps1 = con.prepareStatement(RESTORE_SKILL_SAVE); PreparedStatement ps1 = con.prepareStatement(RESTORE_SKILL_SAVE);
PreparedStatement ps2 = con.prepareStatement(DELETE_SKILL_SAVE)) PreparedStatement ps2 = con.prepareStatement(DELETE_SKILL_SAVE))
{ {
if (!SummonEffectsTable.getInstance().getPetEffects().containsKey(getControlObjectId())) if (!SummonEffectTable.getInstance().getPetEffects().containsKey(getControlObjectId()))
{ {
ps1.setInt(1, _controlObjectId); ps1.setInt(1, _controlObjectId);
try (ResultSet rset = ps1.executeQuery()) try (ResultSet rset = ps1.executeQuery())
@@ -1083,7 +1083,7 @@ public class PetInstance extends Summon
if (skill.hasEffects(EffectScope.GENERAL)) if (skill.hasEffects(EffectScope.GENERAL))
{ {
SummonEffectsTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, effectCurTime)); SummonEffectTable.getInstance().getPetEffects().computeIfAbsent(getControlObjectId(), k -> ConcurrentHashMap.newKeySet()).add(new SummonEffect(skill, effectCurTime));
} }
} }
} }
@@ -1098,9 +1098,9 @@ public class PetInstance extends Summon
} }
finally finally
{ {
if (SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()) != null) if (SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId()) != null)
{ {
for (SummonEffect se : SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId())) for (SummonEffect se : SummonEffectTable.getInstance().getPetEffects().get(getControlObjectId()))
{ {
if (se != null) if (se != null)
{ {
@@ -76,7 +76,7 @@ import org.l2jmobius.gameserver.data.xml.impl.PlayerXpPercentLostData;
import org.l2jmobius.gameserver.data.xml.impl.RecipeData; import org.l2jmobius.gameserver.data.xml.impl.RecipeData;
import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData; import org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.ItemTable;
import org.l2jmobius.gameserver.enums.AdminTeleportType; import org.l2jmobius.gameserver.enums.AdminTeleportType;
import org.l2jmobius.gameserver.enums.BroochJewel; import org.l2jmobius.gameserver.enums.BroochJewel;
@@ -2616,7 +2616,7 @@ public class PlayerInstance extends Playable
{ {
int skillCounter = 0; int skillCounter = 0;
// Get available skills // Get available skills
final Collection<Skill> skills = SkillTreesData.getInstance().getAllAvailableSkills(this, getTemplate().getClassId(), includedByFs, includeAutoGet); final Collection<Skill> skills = SkillTreeData.getInstance().getAllAvailableSkills(this, getTemplate().getClassId(), includedByFs, includeAutoGet);
final List<Skill> skillsForStore = new ArrayList<>(); final List<Skill> skillsForStore = new ArrayList<>();
for (Skill skill : skills) for (Skill skill : skills)
@@ -2661,7 +2661,7 @@ public class PlayerInstance extends Playable
public void giveAvailableAutoGetSkills() public void giveAvailableAutoGetSkills()
{ {
// Get available skills // Get available skills
final List<SkillLearn> autoGetSkills = SkillTreesData.getInstance().getAvailableAutoGetSkills(this); final List<SkillLearn> autoGetSkills = SkillTreeData.getInstance().getAvailableAutoGetSkills(this);
final SkillData st = SkillData.getInstance(); final SkillData st = SkillData.getInstance();
Skill skill; Skill skill;
for (SkillLearn s : autoGetSkills) for (SkillLearn s : autoGetSkills)
@@ -7610,7 +7610,7 @@ public class PlayerInstance extends Playable
// Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature // Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature
addSkill(skill); addSkill(skill);
if (Config.SKILL_CHECK_ENABLE && (!canOverrideCond(PlayerCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM) && !SkillTreesData.getInstance().isSkillAllowed(this, skill)) if (Config.SKILL_CHECK_ENABLE && (!canOverrideCond(PlayerCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM) && !SkillTreeData.getInstance().isSkillAllowed(this, skill))
{ {
Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST); Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST);
if (Config.SKILL_CHECK_REMOVE) if (Config.SKILL_CHECK_REMOVE)
@@ -9267,14 +9267,14 @@ public class PlayerInstance extends Playable
{ {
if (hero && (_baseClass == _activeClass)) if (hero && (_baseClass == _activeClass))
{ {
for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree()) for (Skill skill : SkillTreeData.getInstance().getHeroSkillTree())
{ {
addSkill(skill, false); // Don't persist hero skills into database addSkill(skill, false); // Don't persist hero skills into database
} }
} }
else else
{ {
for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree()) for (Skill skill : SkillTreeData.getInstance().getHeroSkillTree())
{ {
removeSkill(skill, false, true); // Just remove skills from non-hero players removeSkill(skill, false, true); // Just remove skills from non-hero players
} }
@@ -9441,11 +9441,11 @@ public class PlayerInstance extends Playable
{ {
if (level != 0) if (level != 0)
{ {
SkillTreesData.getInstance().getNobleSkillAutoGetTree().forEach(skill -> addSkill(skill, false)); SkillTreeData.getInstance().getNobleSkillAutoGetTree().forEach(skill -> addSkill(skill, false));
} }
else else
{ {
SkillTreesData.getInstance().getNobleSkillTree().forEach(skill -> removeSkill(skill, false, true)); SkillTreeData.getInstance().getNobleSkillTree().forEach(skill -> removeSkill(skill, false, true));
} }
_nobleLevel = level; _nobleLevel = level;
sendSkillList(); sendSkillList();
@@ -9588,7 +9588,7 @@ public class PlayerInstance extends Playable
getSubClasses().put(newClass.getClassIndex(), newClass); getSubClasses().put(newClass.getClassIndex(), newClass);
final ClassId subTemplate = ClassId.getClassId(classId); final ClassId subTemplate = ClassId.getClassId(classId);
final Map<Long, SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(subTemplate); final Map<Long, SkillLearn> skillTree = SkillTreeData.getInstance().getCompleteClassSkillTree(subTemplate);
final Map<Integer, Skill> prevSkillList = new HashMap<>(); final Map<Integer, Skill> prevSkillList = new HashMap<>();
for (SkillLearn skillInfo : skillTree.values()) for (SkillLearn skillInfo : skillTree.values())
{ {
@@ -9597,7 +9597,7 @@ public class PlayerInstance extends Playable
final Skill prevSkill = prevSkillList.get(skillInfo.getSkillId()); final Skill prevSkill = prevSkillList.get(skillInfo.getSkillId());
final Skill newSkill = SkillData.getInstance().getSkill(skillInfo.getSkillId(), skillInfo.getSkillLevel()); final Skill newSkill = SkillData.getInstance().getSkill(skillInfo.getSkillId(), skillInfo.getSkillLevel());
if (((prevSkill != null) && (prevSkill.getLevel() > newSkill.getLevel())) || SkillTreesData.getInstance().isRemoveSkill(subTemplate, skillInfo.getSkillId())) if (((prevSkill != null) && (prevSkill.getLevel() > newSkill.getLevel())) || SkillTreeData.getInstance().isRemoveSkill(subTemplate, skillInfo.getSkillId()))
{ {
continue; continue;
} }
@@ -11762,7 +11762,7 @@ public class PlayerInstance extends Playable
return currentSkills.stream() return currentSkills.stream()
.filter(Objects::nonNull) .filter(Objects::nonNull)
.filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list. .filter(s -> !s.isBlockActionUseSkill()) // Skills that are blocked from player use are not shown in skill list.
.filter(s -> !SkillTreesData.getInstance().isAlchemySkill(s.getId(), s.getLevel())) .filter(s -> !SkillTreeData.getInstance().isAlchemySkill(s.getId(), s.getLevel()))
.filter(s -> s.isDisplayInList()) .filter(s -> s.isDisplayInList())
.collect(Collectors.toList()); .collect(Collectors.toList());
//@formatter:on //@formatter:on
@@ -12801,7 +12801,7 @@ public class PlayerInstance extends Playable
SkillLearn learn; SkillLearn learn;
for (Entry<Integer, Skill> e : getSkills().entrySet()) for (Entry<Integer, Skill> e : getSkills().entrySet())
{ {
learn = SkillTreesData.getInstance().getClassSkill(e.getKey(), e.getValue().getLevel() % 100, getClassId()); learn = SkillTreeData.getInstance().getClassSkill(e.getKey(), e.getValue().getLevel() % 100, getClassId());
if (learn != null) if (learn != null)
{ {
final int lvlDiff = e.getKey() == CommonSkill.EXPERTISE.getId() ? 0 : 9; final int lvlDiff = e.getKey() == CommonSkill.EXPERTISE.getId() ? 0 : 9;
@@ -12816,7 +12816,7 @@ public class PlayerInstance extends Playable
private void deacreaseSkillLevel(Skill skill, int lvlDiff) private void deacreaseSkillLevel(Skill skill, int lvlDiff)
{ {
int nextLevel = -1; int nextLevel = -1;
final Map<Long, SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(getClassId()); final Map<Long, SkillLearn> skillTree = SkillTreeData.getInstance().getCompleteClassSkillTree(getClassId());
for (SkillLearn sl : skillTree.values()) for (SkillLearn sl : skillTree.values())
{ {
if ((sl.getSkillId() == skill.getId()) && (nextLevel < sl.getSkillLevel()) && (getLevel() >= (sl.getGetLevel() - lvlDiff))) if ((sl.getSkillId() == skill.getId()) && (nextLevel < sl.getSkillLevel()) && (getLevel() >= (sl.getGetLevel() - lvlDiff)))
@@ -33,8 +33,8 @@ import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable; import org.l2jmobius.gameserver.data.sql.impl.CharSummonTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable;
import org.l2jmobius.gameserver.data.sql.impl.SummonEffectsTable.SummonEffect; import org.l2jmobius.gameserver.data.sql.impl.SummonEffectTable.SummonEffect;
import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.AttributeType; import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
@@ -235,7 +235,7 @@ public class ServitorInstance extends Summon implements Runnable
public void stopSkillEffects(boolean removed, int skillId) public void stopSkillEffects(boolean removed, int skillId)
{ {
super.stopSkillEffects(removed, skillId); super.stopSkillEffects(removed, skillId);
final Map<Integer, Collection<SummonEffect>> servitorEffects = SummonEffectsTable.getInstance().getServitorEffects(getOwner()); final Map<Integer, Collection<SummonEffect>> servitorEffects = SummonEffectTable.getInstance().getServitorEffects(getOwner());
if (servitorEffects != null) if (servitorEffects != null)
{ {
final Collection<SummonEffect> effects = servitorEffects.get(_referenceSkill); final Collection<SummonEffect> effects = servitorEffects.get(_referenceSkill);
@@ -288,9 +288,9 @@ public class ServitorInstance extends Summon implements Runnable
} }
// Clear list for overwrite // Clear list for overwrite
if (SummonEffectsTable.getInstance().getServitorEffectsOwner().getOrDefault(getOwner().getObjectId(), Collections.emptyMap()).containsKey(getOwner().getClassIndex())) if (SummonEffectTable.getInstance().getServitorEffectsOwner().getOrDefault(getOwner().getObjectId(), Collections.emptyMap()).containsKey(getOwner().getClassIndex()))
{ {
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).getOrDefault(getReferenceSkill(), Collections.emptyList()).clear(); SummonEffectTable.getInstance().getServitorEffects(getOwner()).getOrDefault(getReferenceSkill(), Collections.emptyList()).clear();
} }
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
@@ -361,20 +361,20 @@ public class ServitorInstance extends Summon implements Runnable
ps2.addBatch(); ps2.addBatch();
// XXX: Rework me! // XXX: Rework me!
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (!SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet()); SummonEffectTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet());
} }
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, info.getTime())); SummonEffectTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, info.getTime()));
} }
ps2.executeBatch(); ps2.executeBatch();
} }
@@ -396,7 +396,7 @@ public class ServitorInstance extends Summon implements Runnable
try (Connection con = DatabaseFactory.getConnection()) try (Connection con = DatabaseFactory.getConnection())
{ {
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) || !SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) || !SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) || !SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) || !SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
try (PreparedStatement statement = con.prepareStatement(RESTORE_SKILL_SAVE)) try (PreparedStatement statement = con.prepareStatement(RESTORE_SKILL_SAVE))
{ {
@@ -418,20 +418,20 @@ public class ServitorInstance extends Summon implements Runnable
// XXX: Rework me! // XXX: Rework me!
if (skill.hasEffects(EffectScope.GENERAL)) if (skill.hasEffects(EffectScope.GENERAL))
{ {
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().put(getOwner().getObjectId(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex())) if (!SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()))
{ {
SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>()); SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).put(getOwner().getClassIndex(), new HashMap<>());
} }
if (!SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (!SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet()); SummonEffectTable.getInstance().getServitorEffects(getOwner()).put(getReferenceSkill(), ConcurrentHashMap.newKeySet());
} }
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, effectCurTime)); SummonEffectTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).add(new SummonEffect(skill, effectCurTime));
} }
} }
} }
@@ -452,9 +452,9 @@ public class ServitorInstance extends Summon implements Runnable
} }
finally finally
{ {
if (SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) && SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) && SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill())) if (SummonEffectTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) && SummonEffectTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) && SummonEffectTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
{ {
for (SummonEffect se : SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill())) for (SummonEffect se : SummonEffectTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()))
{ {
if (se != null) if (se != null)
{ {
@@ -22,7 +22,7 @@ import java.util.Map;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.gameserver.data.xml.impl.TeleportersData; import org.l2jmobius.gameserver.data.xml.impl.TeleporterData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.enums.TeleportType; import org.l2jmobius.gameserver.enums.TeleportType;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
@@ -95,7 +95,7 @@ public class TeleporterInstance extends Npc
case "showTeleports": case "showTeleports":
{ {
final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.NORMAL.name(); final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.NORMAL.name();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), listName);
if (holder == null) if (holder == null)
{ {
LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for list with name " + listName + " at NPC " + getId() + "!"); LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for list with name " + listName + " at NPC " + getId() + "!");
@@ -107,7 +107,7 @@ public class TeleporterInstance extends Npc
case "showTeleportsHunting": case "showTeleportsHunting":
{ {
final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.HUNTING.name(); final String listName = (st.hasMoreTokens()) ? st.nextToken() : TeleportType.HUNTING.name();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), listName);
if (holder == null) if (holder == null)
{ {
LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for hunting list with name " + listName + " at NPC " + getId() + "!"); LOGGER.warning("Player " + player.getObjectId() + " requested show teleports for hunting list with name " + listName + " at NPC " + getId() + "!");
@@ -126,7 +126,7 @@ public class TeleporterInstance extends Npc
} }
final String listName = st.nextToken(); final String listName = st.nextToken();
final TeleportHolder holder = TeleportersData.getInstance().getHolder(getId(), listName); final TeleportHolder holder = TeleporterData.getInstance().getHolder(getId(), listName);
if (holder == null) if (holder == null)
{ {
LOGGER.warning("Player " + player.getObjectId() + " requested unknown teleport list: " + listName + " for npc: " + getId() + "!"); LOGGER.warning("Player " + player.getObjectId() + " requested unknown teleport list: " + listName + " for npc: " + getId() + "!");
@@ -23,7 +23,7 @@ import java.util.regex.PatternSyntaxException;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InstanceType; import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager; import org.l2jmobius.gameserver.instancemanager.FortManager;
@@ -588,7 +588,7 @@ public class VillageMasterInstance extends NpcInstance
return; return;
} }
final List<SkillLearn> skills = SkillTreesData.getInstance().getAvailablePledgeSkills(player.getClan()); final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailablePledgeSkills(player.getClan());
if (skills.isEmpty()) if (skills.isEmpty())
{ {
@@ -21,7 +21,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.ExperienceData; import org.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import org.l2jmobius.gameserver.data.xml.impl.PetDataTable; import org.l2jmobius.gameserver.data.xml.impl.PetDataTable;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.model.actor.Playable; import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.PetInstance; import org.l2jmobius.gameserver.model.actor.instance.PetInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -88,7 +88,7 @@ public class PlayableStat extends CreatureStat
if ((getLevel() > oldLevel) && getActiveChar().isPlayer()) if ((getLevel() > oldLevel) && getActiveChar().isPlayer())
{ {
final PlayerInstance player = getActiveChar().getActingPlayer(); final PlayerInstance player = getActiveChar().getActingPlayer();
if (SkillTreesData.getInstance().hasAvailableSkills(player, player.getClassId())) if (SkillTreeData.getInstance().hasAvailableSkills(player, player.getClassId()))
{ {
getActiveChar().sendPacket(ExNewSkillToLearnByLevelUp.STATIC_PACKET); getActiveChar().sendPacket(ExNewSkillToLearnByLevelUp.STATIC_PACKET);
} }
@@ -20,7 +20,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreeData;
import org.l2jmobius.gameserver.enums.InventoryBlockType; import org.l2jmobius.gameserver.enums.InventoryBlockType;
import org.l2jmobius.gameserver.enums.Sex; import org.l2jmobius.gameserver.enums.Sex;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -278,7 +278,7 @@ public class Transform implements IIdentifiable
.forEach(player::addTransformSkill); .forEach(player::addTransformSkill);
// Add collection skills. // Add collection skills.
SkillTreesData.getInstance().getCollectSkillTree().values() SkillTreeData.getInstance().getCollectSkillTree().values()
.stream() .stream()
.map(s -> player.getKnownSkill(s.getSkillId())) .map(s -> player.getKnownSkill(s.getSkillId()))
.filter(Objects::nonNull) .filter(Objects::nonNull)

Some files were not shown because too many files have changed in this diff Show More