|
@@ -26,26 +26,25 @@ import java.util.logging.Logger;
|
|
|
import com.l2jserver.Config;
|
|
|
import com.l2jserver.L2DatabaseFactory;
|
|
|
|
|
|
-
|
|
|
public class NpcBufferTable
|
|
|
{
|
|
|
- protected static Logger _log = Logger.getLogger(NpcBufferTable.class.getName());
|
|
|
+ private static Logger _log = Logger.getLogger(NpcBufferTable.class.getName());
|
|
|
|
|
|
- private TIntObjectHashMap<NpcBufferSkills> _buffers = new TIntObjectHashMap<NpcBufferSkills>();
|
|
|
+ private final TIntObjectHashMap<NpcBufferSkills> _buffers = new TIntObjectHashMap<NpcBufferSkills>();
|
|
|
|
|
|
private static class NpcBufferSkills
|
|
|
{
|
|
|
- private TIntIntHashMap _skillId = new TIntIntHashMap();
|
|
|
- private TIntIntHashMap _skillLevels = new TIntIntHashMap();
|
|
|
- private TIntIntHashMap _skillFeeIds = new TIntIntHashMap();
|
|
|
- private TIntIntHashMap _skillFeeAmounts = new TIntIntHashMap();
|
|
|
+ private final TIntIntHashMap _skillId = new TIntIntHashMap();
|
|
|
+ private final TIntIntHashMap _skillLevels = new TIntIntHashMap();
|
|
|
+ private final TIntIntHashMap _skillFeeIds = new TIntIntHashMap();
|
|
|
+ private final TIntIntHashMap _skillFeeAmounts = new TIntIntHashMap();
|
|
|
|
|
|
public NpcBufferSkills(int npcId)
|
|
|
{
|
|
|
+ //
|
|
|
}
|
|
|
|
|
|
- public void addSkill(int skillId, int skillLevel, int skillFeeId, int skillFeeAmount,
|
|
|
- int buffGroup)
|
|
|
+ public void addSkill(int skillId, int skillLevel, int skillFeeId, int skillFeeAmount, int buffGroup)
|
|
|
{
|
|
|
_skillId.put(buffGroup, skillId);
|
|
|
_skillLevels.put(buffGroup, skillLevel);
|
|
@@ -55,16 +54,17 @@ public class NpcBufferTable
|
|
|
|
|
|
public int[] getSkillGroupInfo(int buffGroup)
|
|
|
{
|
|
|
- Integer skillId = _skillId.get(buffGroup);
|
|
|
- Integer skillLevel = _skillLevels.get(buffGroup);
|
|
|
- Integer skillFeeId = _skillFeeIds.get(buffGroup);
|
|
|
- Integer skillFeeAmount = _skillFeeAmounts.get(buffGroup);
|
|
|
-
|
|
|
- if (skillId == null || skillLevel == null || skillFeeId == null
|
|
|
- || skillFeeAmount == null)
|
|
|
- return null;
|
|
|
-
|
|
|
- return new int[] { skillId, skillLevel, skillFeeId, skillFeeAmount };
|
|
|
+ if (_skillId.containsKey(buffGroup) && _skillLevels.containsKey(buffGroup) && _skillFeeIds.containsKey(buffGroup) && _skillFeeAmounts.containsKey(buffGroup))
|
|
|
+ {
|
|
|
+ return new int[]
|
|
|
+ {
|
|
|
+ _skillId.get(buffGroup),
|
|
|
+ _skillLevels.get(buffGroup),
|
|
|
+ _skillFeeIds.get(buffGroup),
|
|
|
+ _skillFeeAmounts.get(buffGroup)
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -72,7 +72,6 @@ public class NpcBufferTable
|
|
|
{
|
|
|
Connection con = null;
|
|
|
int skillCount = 0;
|
|
|
-
|
|
|
try
|
|
|
{
|
|
|
try
|
|
@@ -97,20 +96,26 @@ public class NpcBufferTable
|
|
|
if (npcId != lastNpcId)
|
|
|
{
|
|
|
if (lastNpcId != 0)
|
|
|
+ {
|
|
|
_buffers.put(lastNpcId, skills);
|
|
|
+ }
|
|
|
|
|
|
skills = new NpcBufferSkills(npcId);
|
|
|
skills.addSkill(skillId, skillLevel, skillFeeId, skillFeeAmount, buffGroup);
|
|
|
}
|
|
|
else
|
|
|
+ {
|
|
|
skills.addSkill(skillId, skillLevel, skillFeeId, skillFeeAmount, buffGroup);
|
|
|
+ }
|
|
|
|
|
|
lastNpcId = npcId;
|
|
|
skillCount++;
|
|
|
}
|
|
|
|
|
|
if (lastNpcId != 0)
|
|
|
+ {
|
|
|
_buffers.put(lastNpcId, skills);
|
|
|
+ }
|
|
|
rset.close();
|
|
|
statement.close();
|
|
|
}
|
|
@@ -141,20 +146,25 @@ public class NpcBufferTable
|
|
|
if (npcId != lastNpcId)
|
|
|
{
|
|
|
if (lastNpcId != 0)
|
|
|
+ {
|
|
|
_buffers.put(lastNpcId, skills);
|
|
|
+ }
|
|
|
|
|
|
skills = new NpcBufferSkills(npcId);
|
|
|
skills.addSkill(skillId, skillLevel, skillFeeId, skillFeeAmount, buffGroup);
|
|
|
}
|
|
|
else
|
|
|
+ {
|
|
|
skills.addSkill(skillId, skillLevel, skillFeeId, skillFeeAmount, buffGroup);
|
|
|
-
|
|
|
+ }
|
|
|
lastNpcId = npcId;
|
|
|
skillCount++;
|
|
|
}
|
|
|
|
|
|
if (lastNpcId != 0)
|
|
|
+ {
|
|
|
_buffers.put(lastNpcId, skills);
|
|
|
+ }
|
|
|
rset.close();
|
|
|
statement.close();
|
|
|
}
|
|
@@ -168,23 +178,18 @@ public class NpcBufferTable
|
|
|
{
|
|
|
L2DatabaseFactory.close(con);
|
|
|
}
|
|
|
-
|
|
|
_log.info("NpcBufferSkillIdsTable: Loaded " + _buffers.size() + " buffers and " + skillCount + " skills.");
|
|
|
}
|
|
|
|
|
|
- public static NpcBufferTable getInstance()
|
|
|
+ public int[] getSkillInfo(int npcId, int buffGroup)
|
|
|
{
|
|
|
- return SingletonHolder._instance;
|
|
|
+ final NpcBufferSkills skills = _buffers.get(npcId);
|
|
|
+ return (skills == null) ? null : skills.getSkillGroupInfo(buffGroup);
|
|
|
}
|
|
|
|
|
|
- public int[] getSkillInfo(int npcId, int buffGroup)
|
|
|
+ public static NpcBufferTable getInstance()
|
|
|
{
|
|
|
- NpcBufferSkills skills = _buffers.get(npcId);
|
|
|
-
|
|
|
- if (skills == null)
|
|
|
- return null;
|
|
|
-
|
|
|
- return skills.getSkillGroupInfo(buffGroup);
|
|
|
+ return SingletonHolder._instance;
|
|
|
}
|
|
|
|
|
|
@SuppressWarnings("synthetic-access")
|