Updated StatsSet to match newer branches.

This commit is contained in:
MobiusDevelopment
2019-08-23 11:44:27 +00:00
parent 2bd3168bb2
commit aef227ea6c
111 changed files with 2271 additions and 1199 deletions
@@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
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;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
@@ -46,7 +47,6 @@ import org.l2jmobius.gameserver.network.serverpackets.Earthquake;
import org.l2jmobius.gameserver.network.serverpackets.GameServerPacket; import org.l2jmobius.gameserver.network.serverpackets.GameServerPacket;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound; import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera; import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
/** /**
@@ -259,12 +259,12 @@ public class Antharas extends Quest
} }
else if (status == FIGHTING) else if (status == FIGHTING)
{ {
final int loc_x = info.getInteger("loc_x"); final int loc_x = info.getInt("loc_x");
final int loc_y = info.getInteger("loc_y"); final int loc_y = info.getInt("loc_y");
final int loc_z = info.getInteger("loc_z"); final int loc_z = info.getInt("loc_z");
final int heading = info.getInteger("heading"); final int heading = info.getInt("heading");
final int hp = info.getInteger("currentHP"); final int hp = info.getInt("currentHP");
final int mp = info.getInteger("currentMP"); final int mp = info.getInt("currentMP");
_antharas = (GrandBossInstance) addSpawn(ANTHARASOLDID, loc_x, loc_y, loc_z, heading, false, 0); _antharas = (GrandBossInstance) addSpawn(ANTHARASOLDID, loc_x, loc_y, loc_z, heading, false, 0);
GrandBossManager.getInstance().addBoss(_antharas); GrandBossManager.getInstance().addBoss(_antharas);
_antharas.setCurrentHpMp(hp, mp); _antharas.setCurrentHpMp(hp, mp);
@@ -312,12 +312,12 @@ public class Antharas extends Quest
if ((antharasId != 0) && (status == FIGHTING)) if ((antharasId != 0) && (status == FIGHTING))
{ {
final StatsSet info = GrandBossManager.getInstance().getStatsSet(antharasId); final StatsSet info = GrandBossManager.getInstance().getStatsSet(antharasId);
final int loc_x = info.getInteger("loc_x"); final int loc_x = info.getInt("loc_x");
final int loc_y = info.getInteger("loc_y"); final int loc_y = info.getInt("loc_y");
final int loc_z = info.getInteger("loc_z"); final int loc_z = info.getInt("loc_z");
final int heading = info.getInteger("heading"); final int heading = info.getInt("heading");
final int hp = info.getInteger("currentHP"); final int hp = info.getInt("currentHP");
final int mp = info.getInteger("currentMP"); final int mp = info.getInt("currentMP");
_antharas = (GrandBossInstance) addSpawn(antharasId, loc_x, loc_y, loc_z, heading, false, 0); _antharas = (GrandBossInstance) addSpawn(antharasId, loc_x, loc_y, loc_z, heading, false, 0);
GrandBossManager.getInstance().addBoss(_antharas); GrandBossManager.getInstance().addBoss(_antharas);
_antharas.setCurrentHpMp(hp, mp); _antharas.setCurrentHpMp(hp, mp);
@@ -33,6 +33,7 @@ import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
@@ -48,7 +49,6 @@ import org.l2jmobius.gameserver.network.serverpackets.Earthquake;
import org.l2jmobius.gameserver.network.serverpackets.MoveToPawn; import org.l2jmobius.gameserver.network.serverpackets.MoveToPawn;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound; import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -139,12 +139,12 @@ public class Baium extends Quest
} }
else if (status == AWAKE) else if (status == AWAKE)
{ {
final int loc_x = info.getInteger("loc_x"); final int loc_x = info.getInt("loc_x");
final int loc_y = info.getInteger("loc_y"); final int loc_y = info.getInt("loc_y");
final int loc_z = info.getInteger("loc_z"); final int loc_z = info.getInt("loc_z");
final int heading = info.getInteger("heading"); final int heading = info.getInt("heading");
final int hp = info.getInteger("currentHP"); final int hp = info.getInt("currentHP");
final int mp = info.getInteger("currentMP"); final int mp = info.getInt("currentMP");
final GrandBossInstance baium = (GrandBossInstance) addSpawn(LIVE_BAIUM, loc_x, loc_y, loc_z, heading, false, 0); final GrandBossInstance baium = (GrandBossInstance) addSpawn(LIVE_BAIUM, loc_x, loc_y, loc_z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB) if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{ {
@@ -26,6 +26,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
@@ -34,7 +35,6 @@ import org.l2jmobius.gameserver.model.entity.Announcements;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.network.serverpackets.CreatureSay; import org.l2jmobius.gameserver.network.serverpackets.CreatureSay;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound; import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* Core AI * Core AI
@@ -28,6 +28,7 @@ import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.CommandChannel; import org.l2jmobius.gameserver.model.CommandChannel;
import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
@@ -47,7 +48,6 @@ import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera; import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* Frintezza AI * Frintezza AI
@@ -21,13 +21,13 @@ import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.Announcements; import org.l2jmobius.gameserver.model.entity.Announcements;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound; import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* @author Shyla * @author Shyla
@@ -94,8 +94,8 @@ public class Orfen extends Quest
final int loc_y = 17368; final int loc_y = 17368;
final int loc_z = -5412; final int loc_z = -5412;
final int heading = 0; final int heading = 0;
final int hp = info.getInteger("currentHP"); final int hp = info.getInt("currentHP");
final int mp = info.getInteger("currentMP"); final int mp = info.getInt("currentMP");
_orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0); _orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB) if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{ {
@@ -24,6 +24,7 @@ import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
@@ -34,7 +35,6 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.zone.type.BossZone; import org.l2jmobius.gameserver.model.zone.type.BossZone;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound; import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.templates.StatsSet;
public class QueenAnt extends Quest public class QueenAnt extends Quest
{ {
@@ -121,8 +121,8 @@ public class QueenAnt extends Quest
/* /*
* int loc_x = info.getInteger("loc_x"); int loc_y = info.getInteger("loc_y"); int loc_z = info.getInteger("loc_z"); int heading = info.getInteger("heading"); * int loc_x = info.getInteger("loc_x"); int loc_y = info.getInteger("loc_y"); int loc_z = info.getInteger("loc_z"); int heading = info.getInteger("heading");
*/ */
final int hp = info.getInteger("currentHP"); final int hp = info.getInt("currentHP");
final int mp = info.getInteger("currentMP"); final int mp = info.getInt("currentMP");
final GrandBossInstance queen = (GrandBossInstance) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0); final GrandBossInstance queen = (GrandBossInstance) addSpawn(QUEEN, -21610, 181594, -5734, 0, false, 0);
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB) if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{ {
@@ -28,6 +28,7 @@ import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
@@ -40,7 +41,6 @@ import org.l2jmobius.gameserver.model.zone.type.BossZone;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound; import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera; import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -122,8 +122,8 @@ public class Valakas extends Quest
final int loc_z = -1595; final int loc_z = -1595;
final int heading = 0; final int heading = 0;
final int hp = info.getInteger("currentHP"); final int hp = info.getInt("currentHP");
final int mp = info.getInteger("currentMP"); final int mp = info.getInt("currentMP");
final GrandBossInstance valakas = (GrandBossInstance) addSpawn(VALAKAS, loc_x, loc_y, loc_z, heading, false, 0); final GrandBossInstance valakas = (GrandBossInstance) addSpawn(VALAKAS, loc_x, loc_y, loc_z, heading, false, 0);
GrandBossManager.getInstance().addBoss(valakas); GrandBossManager.getInstance().addBoss(valakas);
final NpcInstance _valakas = valakas; final NpcInstance _valakas = valakas;
@@ -41,6 +41,7 @@ import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.DoorInstance; import org.l2jmobius.gameserver.model.actor.instance.DoorInstance;
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -49,7 +50,6 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.spawn.Spawn; import org.l2jmobius.gameserver.model.spawn.Spawn;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse; import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera; import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
/** /**
@@ -28,6 +28,7 @@ import org.l2jmobius.gameserver.datatables.csv.DoorTable;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
@@ -36,7 +37,6 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.zone.type.BossZone; import org.l2jmobius.gameserver.model.zone.type.BossZone;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound; import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* Zaken AI * Zaken AI
@@ -185,12 +185,12 @@ public class Zaken extends Quest
} }
else else
{ {
final int loc_x = info.getInteger("loc_x"); final int loc_x = info.getInt("loc_x");
final int loc_y = info.getInteger("loc_y"); final int loc_y = info.getInt("loc_y");
final int loc_z = info.getInteger("loc_z"); final int loc_z = info.getInt("loc_z");
final int heading = info.getInteger("heading"); final int heading = info.getInt("heading");
final int hp = info.getInteger("currentHP"); final int hp = info.getInt("currentHP");
final int mp = info.getInteger("currentMP"); final int mp = info.getInt("currentMP");
final GrandBossInstance zaken = (GrandBossInstance) addSpawn(ZAKEN, loc_x, loc_y, loc_z, heading, false, 0); final GrandBossInstance zaken = (GrandBossInstance) addSpawn(ZAKEN, loc_x, loc_y, loc_z, heading, false, 0);
zaken.setCurrentHpMp(hp, mp); zaken.setCurrentHpMp(hp, mp);
spawnBoss(zaken); spawnBoss(zaken);
@@ -89,7 +89,7 @@ public class Q211_TrialOfTheChallenger extends Quest
st.set("cond", "1"); st.set("cond", "1");
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
if (!player.getVariables().getBool("secondClassChange35", false)) if (!player.getVariables().getBoolean("secondClassChange35", false))
{ {
htmltext = "30644-05a.htm"; htmltext = "30644-05a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId()));
@@ -85,7 +85,7 @@ public class Q212_TrialOfDuty extends Quest
st.set("cond", "1"); st.set("cond", "1");
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
if (!player.getVariables().getBool("secondClassChange35", false)) if (!player.getVariables().getBoolean("secondClassChange35", false))
{ {
htmltext = "30109-04a.htm"; htmltext = "30109-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId()));
@@ -107,7 +107,7 @@ public class Q213_TrialOfTheSeeker extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(DUFNER_LETTER, 1); st.giveItems(DUFNER_LETTER, 1);
if (!player.getVariables().getBool("secondClassChange35", false)) if (!player.getVariables().getBoolean("secondClassChange35", false))
{ {
htmltext = "30106-05a.htm"; htmltext = "30106-05a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId()));
@@ -135,7 +135,7 @@ public class Q214_TrialOfTheScholar extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(MIRIEN_SIGIL_1, 1); st.giveItems(MIRIEN_SIGIL_1, 1);
if (!player.getVariables().getBool("secondClassChange35", false)) if (!player.getVariables().getBoolean("secondClassChange35", false))
{ {
htmltext = "30461-04a.htm"; htmltext = "30461-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId()));
@@ -93,7 +93,7 @@ public class Q215_TrialOfThePilgrim extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(VOUCHER_OF_TRIAL, 1); st.giveItems(VOUCHER_OF_TRIAL, 1);
if (!player.getVariables().getBool("secondClassChange35", false)) if (!player.getVariables().getBoolean("secondClassChange35", false))
{ {
htmltext = "30648-04a.htm"; htmltext = "30648-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId()));
@@ -110,7 +110,7 @@ public class Q216_TrialOfTheGuildsman extends Quest
st.takeItems(57, 2000); st.takeItems(57, 2000);
st.giveItems(VALKON_RECOMMENDATION, 1); st.giveItems(VALKON_RECOMMENDATION, 1);
if (!player.getVariables().getBool("secondClassChange35", false)) if (!player.getVariables().getBoolean("secondClassChange35", false))
{ {
htmltext = "30103-06d.htm"; htmltext = "30103-06d.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_35.get(player.getClassId().getId()));
@@ -123,7 +123,7 @@ public class Q217_TestimonyOfTrust extends Quest
st.giveItems(LETTER_TO_ELF, 1); st.giveItems(LETTER_TO_ELF, 1);
st.giveItems(LETTER_TO_DARK_ELF, 1); st.giveItems(LETTER_TO_DARK_ELF, 1);
if (!player.getVariables().getBool("secondClassChange37", false)) if (!player.getVariables().getBoolean("secondClassChange37", false))
{ {
htmltext = "30191-04a.htm"; htmltext = "30191-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal()));
@@ -108,7 +108,7 @@ public class Q218_TestimonyOfLife extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(CARDIEN_LETTER, 1); st.giveItems(CARDIEN_LETTER, 1);
if (!player.getVariables().getBool("secondClassChange37", false)) if (!player.getVariables().getBoolean("secondClassChange37", false))
{ {
htmltext = "30460-04a.htm"; htmltext = "30460-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal()));
@@ -138,7 +138,7 @@ public class Q219_TestimonyOfFate extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(KAIRA_LETTER, 1); st.giveItems(KAIRA_LETTER, 1);
if (!player.getVariables().getBool("secondClassChange37", false)) if (!player.getVariables().getBoolean("secondClassChange37", false))
{ {
htmltext = "30476-05a.htm"; htmltext = "30476-05a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal()));
@@ -136,7 +136,7 @@ public class Q220_TestimonyOfGlory extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(VOKIAN_ORDER_1, 1); st.giveItems(VOKIAN_ORDER_1, 1);
if (!player.getVariables().getBool("secondClassChange37", false)) if (!player.getVariables().getBoolean("secondClassChange37", false))
{ {
htmltext = "30514-05a.htm"; htmltext = "30514-05a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal()));
@@ -140,7 +140,7 @@ public class Q221_TestimonyOfProsperity extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(RING_OF_TESTIMONY_1, 1); st.giveItems(RING_OF_TESTIMONY_1, 1);
if (!player.getVariables().getBool("secondClassChange37", false)) if (!player.getVariables().getBoolean("secondClassChange37", false))
{ {
htmltext = "30104-04e.htm"; htmltext = "30104-04e.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_37.get(player.getRace().ordinal()));
@@ -114,7 +114,7 @@ public class Q222_TestOfTheDuelist extends Quest
st.giveItems(ORDER_OREN, 1); st.giveItems(ORDER_OREN, 1);
st.giveItems(ORDER_ADEN, 1); st.giveItems(ORDER_ADEN, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30623-07a.htm"; htmltext = "30623-07a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -103,7 +103,7 @@ public class Q223_TestOfTheChampion extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(ASCALON_LETTER_1, 1); st.giveItems(ASCALON_LETTER_1, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30624-06a.htm"; htmltext = "30624-06a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -112,7 +112,7 @@ public class Q224_TestOfSagittarius extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(BERNARD_INTRODUCTION, 1); st.giveItems(BERNARD_INTRODUCTION, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30702-04a.htm"; htmltext = "30702-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -108,7 +108,7 @@ public class Q225_TestOfTheSearcher extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(LUTHER_LETTER, 1); st.giveItems(LUTHER_LETTER, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30690-05a.htm"; htmltext = "30690-05a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -99,7 +99,7 @@ public class Q226_TestOfTheHealer extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(REPORT_OF_PERRIN, 1); st.giveItems(REPORT_OF_PERRIN, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30473-04a.htm"; htmltext = "30473-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -122,7 +122,7 @@ public class Q227_TestOfTheReformer extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(BOOK_OF_REFORM, 1); st.giveItems(BOOK_OF_REFORM, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30118-04b.htm"; htmltext = "30118-04b.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -111,7 +111,7 @@ public class Q228_TestOfMagus extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(RUKAL_LETTER, 1); st.giveItems(RUKAL_LETTER, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30629-04a.htm"; htmltext = "30629-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -125,7 +125,7 @@ public class Q229_TestOfWitchcraft extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(ORIM_DIAGRAM, 1); st.giveItems(ORIM_DIAGRAM, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30630-08a.htm"; htmltext = "30630-08a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -202,7 +202,7 @@ public class Q230_TestOfTheSummoner extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(GALATEA_LETTER, 1); st.giveItems(GALATEA_LETTER, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30634-08a.htm"; htmltext = "30634-08a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -96,7 +96,7 @@ public class Q231_TestOfTheMaestro extends Quest
st.set("cond", "1"); st.set("cond", "1");
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30531-04a.htm"; htmltext = "30531-04a.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -105,7 +105,7 @@ public class Q232_TestOfTheLord extends Quest
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
st.giveItems(ORDEAL_NECKLACE, 1); st.giveItems(ORDEAL_NECKLACE, 1);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30565-05b.htm"; htmltext = "30565-05b.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -120,7 +120,7 @@ public class Q233_TestOfTheWarSpirit extends Quest
st.set("cond", "1"); st.set("cond", "1");
st.playSound(QuestState.SOUND_ACCEPT); st.playSound(QuestState.SOUND_ACCEPT);
if (!player.getVariables().getBool("secondClassChange39", false)) if (!player.getVariables().getBoolean("secondClassChange39", false))
{ {
htmltext = "30510-05e.htm"; htmltext = "30510-05e.htm";
st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId())); st.giveItems(DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getClassId().getId()));
@@ -0,0 +1,125 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.commons.util;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
/**
* @author UnAfraid
*/
public class TimeUtil
{
private static int findIndexOfNonDigit(CharSequence text)
{
for (int i = 0; i < text.length(); i++)
{
if (Character.isDigit(text.charAt(i)))
{
continue;
}
return i;
}
return -1;
}
/**
* Parses patterns like:
* <ul>
* <li>1min or 10mins</li>
* <li>1day or 10days</li>
* <li>1week or 4weeks</li>
* <li>1month or 12months</li>
* <li>1year or 5years</li>
* </ul>
* @param datePattern
* @return {@link Duration} object converted by the date pattern specified.
* @throws IllegalStateException when malformed pattern specified.
*/
public static Duration parseDuration(String datePattern)
{
final int index = findIndexOfNonDigit(datePattern);
if (index == -1)
{
throw new IllegalStateException("Incorrect time format given: " + datePattern);
}
try
{
final int val = Integer.parseInt(datePattern.substring(0, index));
final String type = datePattern.substring(index);
final ChronoUnit unit;
switch (type.toLowerCase())
{
case "sec":
case "secs":
{
unit = ChronoUnit.SECONDS;
break;
}
case "min":
case "mins":
{
unit = ChronoUnit.MINUTES;
break;
}
case "hour":
case "hours":
{
unit = ChronoUnit.HOURS;
break;
}
case "day":
case "days":
{
unit = ChronoUnit.DAYS;
break;
}
case "week":
case "weeks":
{
unit = ChronoUnit.WEEKS;
break;
}
case "month":
case "months":
{
unit = ChronoUnit.MONTHS;
break;
}
case "year":
case "years":
{
unit = ChronoUnit.YEARS;
break;
}
default:
{
unit = ChronoUnit.valueOf(type);
if (unit == null)
{
throw new IllegalStateException("Incorrect format: " + type + " !!");
}
}
}
return Duration.of(val, unit);
}
catch (Exception e)
{
throw new IllegalStateException("Incorrect time format given: " + datePattern + " val: " + datePattern.substring(0, index));
}
}
}
@@ -41,7 +41,6 @@ import org.l2jmobius.gameserver.cache.CrestCache;
import org.l2jmobius.gameserver.cache.HtmCache; import org.l2jmobius.gameserver.cache.HtmCache;
import org.l2jmobius.gameserver.communitybbs.Manager.ForumsBBSManager; import org.l2jmobius.gameserver.communitybbs.Manager.ForumsBBSManager;
import org.l2jmobius.gameserver.datatables.BufferTable; import org.l2jmobius.gameserver.datatables.BufferTable;
import org.l2jmobius.gameserver.datatables.GmListTable;
import org.l2jmobius.gameserver.datatables.HeroSkillTable; import org.l2jmobius.gameserver.datatables.HeroSkillTable;
import org.l2jmobius.gameserver.datatables.NobleSkillTable; import org.l2jmobius.gameserver.datatables.NobleSkillTable;
import org.l2jmobius.gameserver.datatables.OfflineTradeTable; import org.l2jmobius.gameserver.datatables.OfflineTradeTable;
@@ -55,8 +54,6 @@ import org.l2jmobius.gameserver.datatables.csv.NpcWalkerRoutesTable;
import org.l2jmobius.gameserver.datatables.csv.RecipeTable; import org.l2jmobius.gameserver.datatables.csv.RecipeTable;
import org.l2jmobius.gameserver.datatables.csv.StaticObjects; import org.l2jmobius.gameserver.datatables.csv.StaticObjects;
import org.l2jmobius.gameserver.datatables.csv.SummonItemsData; import org.l2jmobius.gameserver.datatables.csv.SummonItemsData;
import org.l2jmobius.gameserver.datatables.sql.AccessLevels;
import org.l2jmobius.gameserver.datatables.sql.AdminCommandAccessRights;
import org.l2jmobius.gameserver.datatables.sql.ArmorSetsTable; import org.l2jmobius.gameserver.datatables.sql.ArmorSetsTable;
import org.l2jmobius.gameserver.datatables.sql.CharNameTable; import org.l2jmobius.gameserver.datatables.sql.CharNameTable;
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable; import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
@@ -71,6 +68,7 @@ import org.l2jmobius.gameserver.datatables.sql.SkillSpellbookTable;
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable; import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
import org.l2jmobius.gameserver.datatables.sql.SpawnTable; import org.l2jmobius.gameserver.datatables.sql.SpawnTable;
import org.l2jmobius.gameserver.datatables.sql.TeleportLocationTable; import org.l2jmobius.gameserver.datatables.sql.TeleportLocationTable;
import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.datatables.xml.AugmentationData; import org.l2jmobius.gameserver.datatables.xml.AugmentationData;
import org.l2jmobius.gameserver.datatables.xml.ExperienceData; import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
import org.l2jmobius.gameserver.datatables.xml.FenceData; import org.l2jmobius.gameserver.datatables.xml.FenceData;
@@ -387,9 +385,7 @@ public class GameServer
Hero.getInstance(); Hero.getInstance();
Util.printSection("Access Levels"); Util.printSection("Access Levels");
AccessLevels.getInstance(); AdminData.getInstance();
AdminCommandAccessRights.getInstance();
GmListTable.getInstance();
Util.printSection("Handlers"); Util.printSection("Handlers");
ItemHandler.getInstance(); ItemHandler.getInstance();
@@ -31,9 +31,9 @@ import org.l2jmobius.Config;
import org.l2jmobius.gameserver.idfactory.IdFactory; import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.instancemanager.ClanHallManager; import org.l2jmobius.gameserver.instancemanager.ClanHallManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.DoorInstance; import org.l2jmobius.gameserver.model.actor.instance.DoorInstance;
import org.l2jmobius.gameserver.model.entity.ClanHall; import org.l2jmobius.gameserver.model.entity.ClanHall;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.CreatureTemplate; import org.l2jmobius.gameserver.templates.creatures.CreatureTemplate;
public class DoorTable public class DoorTable
@@ -28,7 +28,7 @@ import java.util.StringTokenizer;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.templates.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.templates.item.Henna; import org.l2jmobius.gameserver.templates.item.Henna;
/** /**
@@ -25,8 +25,8 @@ import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.base.ClassId; import org.l2jmobius.gameserver.model.base.ClassId;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.PlayerTemplate; import org.l2jmobius.gameserver.templates.creatures.PlayerTemplate;
/** /**
@@ -25,8 +25,8 @@ import java.util.logging.Logger;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.datatables.csv.HennaTable; import org.l2jmobius.gameserver.datatables.csv.HennaTable;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.templates.HelperBuff; import org.l2jmobius.gameserver.templates.HelperBuff;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* This class represents the Newbie Helper Buff list. Author: Ayor * This class represents the Newbie Helper Buff list. Author: Ayor
@@ -33,10 +33,10 @@ import org.l2jmobius.gameserver.model.DropCategory;
import org.l2jmobius.gameserver.model.DropData; import org.l2jmobius.gameserver.model.DropData;
import org.l2jmobius.gameserver.model.MinionData; import org.l2jmobius.gameserver.model.MinionData;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.base.ClassId; import org.l2jmobius.gameserver.model.base.ClassId;
import org.l2jmobius.gameserver.skills.BaseStats; import org.l2jmobius.gameserver.skills.BaseStats;
import org.l2jmobius.gameserver.skills.Stats; import org.l2jmobius.gameserver.skills.Stats;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
/** /**
@@ -623,7 +623,7 @@ public class NpcTable
String name = ""; String name = "";
String values = ""; String values = "";
final NpcTemplate old = getTemplate(npc.getInteger("npcId")); final NpcTemplate old = getTemplate(npc.getInt("npcId"));
for (Object obj : set.keySet()) for (Object obj : set.keySet())
{ {
@@ -649,7 +649,7 @@ public class NpcTable
{ {
statement = con.prepareStatement("UPDATE npc SET " + values + " WHERE id = ?"); statement = con.prepareStatement("UPDATE npc SET " + values + " WHERE id = ?");
} }
statement.setInt(1, npc.getInteger("npcId")); statement.setInt(1, npc.getInt("npcId"));
statement.execute(); statement.execute();
statement.close(); statement.close();
} }
@@ -34,6 +34,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.Skill.SkillType; import org.l2jmobius.gameserver.model.Skill.SkillType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.base.Race; import org.l2jmobius.gameserver.model.base.Race;
import org.l2jmobius.gameserver.skills.Env; import org.l2jmobius.gameserver.skills.Env;
@@ -71,7 +72,6 @@ import org.l2jmobius.gameserver.skills.funcs.Lambda;
import org.l2jmobius.gameserver.skills.funcs.LambdaCalc; import org.l2jmobius.gameserver.skills.funcs.LambdaCalc;
import org.l2jmobius.gameserver.skills.funcs.LambdaConst; import org.l2jmobius.gameserver.skills.funcs.LambdaConst;
import org.l2jmobius.gameserver.skills.funcs.LambdaStats; import org.l2jmobius.gameserver.skills.funcs.LambdaStats;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.item.ArmorType; import org.l2jmobius.gameserver.templates.item.ArmorType;
import org.l2jmobius.gameserver.templates.item.Item; import org.l2jmobius.gameserver.templates.item.Item;
import org.l2jmobius.gameserver.templates.item.Weapon; import org.l2jmobius.gameserver.templates.item.Weapon;
@@ -26,7 +26,7 @@ import java.util.logging.Level;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.l2jmobius.gameserver.templates.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.templates.item.Armor; import org.l2jmobius.gameserver.templates.item.Armor;
import org.l2jmobius.gameserver.templates.item.ArmorType; import org.l2jmobius.gameserver.templates.item.ArmorType;
import org.l2jmobius.gameserver.templates.item.EtcItem; import org.l2jmobius.gameserver.templates.item.EtcItem;
@@ -408,7 +408,7 @@ final class DocumentItem extends DocumentBase
} }
else else
{ {
throw new Error("Unknown item type for " + _currentItem.set.getInteger("item_id") + " " + _currentItem.type); throw new Error("Unknown item type for " + _currentItem.set.getInt("item_id") + " " + _currentItem.type);
} }
} }
@@ -26,8 +26,8 @@ import org.w3c.dom.Node;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.Skill.SkillType; import org.l2jmobius.gameserver.model.Skill.SkillType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.skills.conditions.Condition; import org.l2jmobius.gameserver.skills.conditions.Condition;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* @author mkizub * @author mkizub
@@ -16,7 +16,7 @@
*/ */
package org.l2jmobius.gameserver.engines; package org.l2jmobius.gameserver.engines;
import org.l2jmobius.gameserver.templates.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.templates.item.Item; import org.l2jmobius.gameserver.templates.item.Item;
/** /**
@@ -20,7 +20,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.templates.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
/** /**
* @author Mobius * @author Mobius
@@ -28,8 +28,8 @@ import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.idfactory.IdFactory; import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.BoatInstance; import org.l2jmobius.gameserver.model.actor.instance.BoatInstance;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.CreatureTemplate; import org.l2jmobius.gameserver.templates.creatures.CreatureTemplate;
public class BoatManager public class BoatManager
@@ -16,11 +16,9 @@
*/ */
package org.l2jmobius.gameserver.instancemanager; package org.l2jmobius.gameserver.instancemanager;
import org.l2jmobius.gameserver.datatables.GmListTable;
import org.l2jmobius.gameserver.datatables.sql.AccessLevels;
import org.l2jmobius.gameserver.datatables.sql.AdminCommandAccessRights;
import org.l2jmobius.gameserver.datatables.sql.ClanTable; import org.l2jmobius.gameserver.datatables.sql.ClanTable;
import org.l2jmobius.gameserver.datatables.sql.HelperBuffTable; import org.l2jmobius.gameserver.datatables.sql.HelperBuffTable;
import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.datatables.xml.AugmentationData; import org.l2jmobius.gameserver.datatables.xml.AugmentationData;
import org.l2jmobius.gameserver.datatables.xml.ExperienceData; import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
@@ -28,9 +26,7 @@ public class DatatablesManager
{ {
public static void reloadAll() public static void reloadAll()
{ {
AccessLevels.reload(); AdminData.getInstance().load();
AdminCommandAccessRights.reload();
GmListTable.reload();
AugmentationData.reload(); AugmentationData.reload();
ClanTable.reload(); ClanTable.reload();
HelperBuffTable.reload(); HelperBuffTable.reload();
@@ -61,14 +61,14 @@ public class GlobalVariablesManager extends AbstractVariables
} }
catch (SQLException e) catch (SQLException e)
{ {
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't restore global variables"); LOGGER.warning(getClass().getSimpleName() + ": Couldn't restore global variables.");
return false; return false;
} }
finally finally
{ {
compareAndSetChanges(true, false); compareAndSetChanges(true, false);
} }
LOGGER.log(Level.INFO, getClass().getSimpleName() + ": Loaded " + getSet().size() + " variables."); LOGGER.info(getClass().getSimpleName() + ": Loaded " + getSet().size() + " variables.");
return true; return true;
} }
@@ -106,7 +106,23 @@ public class GlobalVariablesManager extends AbstractVariables
{ {
compareAndSetChanges(true, false); compareAndSetChanges(true, false);
} }
LOGGER.log(Level.INFO, getClass().getSimpleName() + ": Stored " + getSet().size() + " variables."); LOGGER.info(getClass().getSimpleName() + ": Stored " + getSet().size() + " variables.");
return true;
}
@Override
public boolean deleteMe()
{
try (Connection con = DatabaseFactory.getConnection();
Statement del = con.createStatement())
{
del.execute(DELETE_QUERY);
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete global variables to database.", e);
return false;
}
return true; return true;
} }
@@ -29,11 +29,11 @@ import java.util.logging.Logger;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.datatables.sql.NpcTable;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.zone.type.BossZone; import org.l2jmobius.gameserver.model.zone.type.BossZone;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
/** /**
@@ -25,7 +25,7 @@ import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.GmListTable; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.idfactory.IdFactory; import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
@@ -592,7 +592,7 @@ public class PetitionManager
// Notify all GMs that a new petition has been submitted. // Notify all GMs that a new petition has been submitted.
String msgContent = petitioner.getName() + " has submitted a new petition."; // (ID: " + newPetitionId + ")."; String msgContent = petitioner.getName() + " has submitted a new petition."; // (ID: " + newPetitionId + ").";
GmListTable.broadcastToGMs(new CreatureSay(petitioner.getObjectId(), 17, "Petition System", msgContent)); AdminData.broadcastToGMs(new CreatureSay(petitioner.getObjectId(), 17, "Petition System", msgContent));
return newPetitionId; return newPetitionId;
} }
@@ -31,15 +31,15 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; 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.datatables.GmListTable;
import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.datatables.sql.NpcTable;
import org.l2jmobius.gameserver.datatables.sql.SpawnTable; import org.l2jmobius.gameserver.datatables.sql.SpawnTable;
import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.enums.RaidBossStatus; import org.l2jmobius.gameserver.enums.RaidBossStatus;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.RaidBossInstance; import org.l2jmobius.gameserver.model.actor.instance.RaidBossInstance;
import org.l2jmobius.gameserver.model.entity.Announcements; import org.l2jmobius.gameserver.model.entity.Announcements;
import org.l2jmobius.gameserver.model.spawn.Spawn; import org.l2jmobius.gameserver.model.spawn.Spawn;
import org.l2jmobius.gameserver.skills.Stats; import org.l2jmobius.gameserver.skills.Stats;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
/** /**
@@ -150,7 +150,7 @@ public class RaidBossSpawnManager
_storedInfo.put(bossId, info); _storedInfo.put(bossId, info);
GmListTable.broadcastMessageToGMs("Spawning Raid Boss " + raidboss.getName() + "."); AdminData.broadcastMessageToGMs("Spawning Raid Boss " + raidboss.getName() + ".");
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB) if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
{ {
Announcements.getInstance().announceToAll("Raid boss " + raidboss.getName() + " spawned in world."); Announcements.getInstance().announceToAll("Raid boss " + raidboss.getName() + " spawned in world.");
@@ -509,7 +509,7 @@ public class RaidBossSpawnManager
_storedInfo.put(raidboss.getNpcId(), info); _storedInfo.put(raidboss.getNpcId(), info);
GmListTable.broadcastMessageToGMs("Spawning Raid Boss " + raidboss.getName()); AdminData.broadcastMessageToGMs("Spawning Raid Boss " + raidboss.getName());
_bosses.put(raidboss.getNpcId(), raidboss); _bosses.put(raidboss.getNpcId(), raidboss);
} }
@@ -17,7 +17,6 @@
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* @author kombat * @author kombat
@@ -95,7 +94,7 @@ public class ChanceCondition
try try
{ {
final TriggerType trigger = set.getEnum("chanceType", TriggerType.class); final TriggerType trigger = set.getEnum("chanceType", TriggerType.class);
final int chance = set.getInteger("activationChance", 0); final int chance = set.getInt("activationChance", 0);
if ((trigger != null) && (chance > 0)) if ((trigger != null) && (chance > 0))
{ {
return new ChanceCondition(trigger, chance); return new ChanceCondition(trigger, chance);
@@ -16,8 +16,6 @@
*/ */
package org.l2jmobius.gameserver.model; package org.l2jmobius.gameserver.model;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* @author Rayan RPG * @author Rayan RPG
* @since 927 * @since 927
@@ -139,12 +137,12 @@ public class NpcWalkerNode
*/ */
public NpcWalkerNode(StatsSet set) public NpcWalkerNode(StatsSet set)
{ {
_npcId = set.getInteger("npc_id"); _npcId = set.getInt("npc_id");
_movePoint = set.getString("move_point"); _movePoint = set.getString("move_point");
_chatText = set.getString("chatText"); _chatText = set.getString("chatText");
_moveX = set.getInteger("move_x"); _moveX = set.getInt("move_x");
_moveX = set.getInteger("move_y"); _moveX = set.getInt("move_y");
_moveX = set.getInteger("move_z"); _moveX = set.getInt("move_z");
_delay = set.getInteger("delay"); _delay = set.getInt("delay");
} }
} }
@@ -72,7 +72,6 @@ import org.l2jmobius.gameserver.skills.handlers.SkillSeed;
import org.l2jmobius.gameserver.skills.handlers.SkillSignet; import org.l2jmobius.gameserver.skills.handlers.SkillSignet;
import org.l2jmobius.gameserver.skills.handlers.SkillSignetCasttime; import org.l2jmobius.gameserver.skills.handlers.SkillSignetCasttime;
import org.l2jmobius.gameserver.skills.handlers.SkillSummon; import org.l2jmobius.gameserver.skills.handlers.SkillSummon;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
public abstract class Skill public abstract class Skill
@@ -515,84 +514,84 @@ public abstract class Skill
protected Skill(StatsSet set) protected Skill(StatsSet set)
{ {
_id = set.getInteger("skill_id", 0); _id = set.getInt("skill_id", 0);
_level = set.getInteger("level", 1); _level = set.getInt("level", 1);
_advancedFlag = set.getBool("advancedFlag", false); _advancedFlag = set.getBoolean("advancedFlag", false);
_advancedMultiplier = set.getInteger("advancedMultiplier", 1); _advancedMultiplier = set.getInt("advancedMultiplier", 1);
_displayId = set.getInteger("displayId", _id); _displayId = set.getInt("displayId", _id);
_name = set.getString("name"); _name = set.getString("name");
_operateType = set.getEnum("operateType", SkillOpType.class); _operateType = set.getEnum("operateType", SkillOpType.class);
_magic = set.getBool("isMagic", false); _magic = set.getBoolean("isMagic", false);
_staticReuse = set.getBool("staticReuse", false); _staticReuse = set.getBoolean("staticReuse", false);
_staticHitTime = set.getBool("staticHitTime", false); _staticHitTime = set.getBoolean("staticHitTime", false);
_ispotion = set.getBool("isPotion", false); _ispotion = set.getBoolean("isPotion", false);
_mpConsume = set.getInteger("mpConsume", 0); _mpConsume = set.getInt("mpConsume", 0);
_mpInitialConsume = set.getInteger("mpInitialConsume", 0); _mpInitialConsume = set.getInt("mpInitialConsume", 0);
_hpConsume = set.getInteger("hpConsume", 0); _hpConsume = set.getInt("hpConsume", 0);
_itemConsume = set.getInteger("itemConsumeCount", 0); _itemConsume = set.getInt("itemConsumeCount", 0);
_itemConsumeId = set.getInteger("itemConsumeId", 0); _itemConsumeId = set.getInt("itemConsumeId", 0);
_itemConsumeOT = set.getInteger("itemConsumeCountOT", 0); _itemConsumeOT = set.getInt("itemConsumeCountOT", 0);
_itemConsumeIdOT = set.getInteger("itemConsumeIdOT", 0); _itemConsumeIdOT = set.getInt("itemConsumeIdOT", 0);
_itemConsumeTime = set.getInteger("itemConsumeTime", 0); _itemConsumeTime = set.getInt("itemConsumeTime", 0);
_itemConsumeSteps = set.getInteger("itemConsumeSteps", 0); _itemConsumeSteps = set.getInt("itemConsumeSteps", 0);
_summonTotalLifeTime = set.getInteger("summonTotalLifeTime", 1200000); // 20 minutes default _summonTotalLifeTime = set.getInt("summonTotalLifeTime", 1200000); // 20 minutes default
_summonTimeLostIdle = set.getInteger("summonTimeLostIdle", 0); _summonTimeLostIdle = set.getInt("summonTimeLostIdle", 0);
_summonTimeLostActive = set.getInteger("summonTimeLostActive", 0); _summonTimeLostActive = set.getInt("summonTimeLostActive", 0);
_castRange = set.getInteger("castRange", 0); _castRange = set.getInt("castRange", 0);
_effectRange = set.getInteger("effectRange", -1); _effectRange = set.getInt("effectRange", -1);
_hitTime = set.getInteger("hitTime", 0); _hitTime = set.getInt("hitTime", 0);
_coolTime = set.getInteger("coolTime", 0); _coolTime = set.getInt("coolTime", 0);
// _skillInterruptTime = set.getInteger("hitTime", _hitTime / 2); // _skillInterruptTime = set.getInteger("hitTime", _hitTime / 2);
_reuseDelay = set.getInteger("reuseDelay", 0); _reuseDelay = set.getInt("reuseDelay", 0);
_buffDuration = set.getInteger("buffDuration", 0); _buffDuration = set.getInt("buffDuration", 0);
_skillRadius = set.getInteger("skillRadius", 80); _skillRadius = set.getInt("skillRadius", 80);
_targetType = set.getEnum("target", SkillTargetType.class); _targetType = set.getEnum("target", SkillTargetType.class);
_power = set.getFloat("power", 0.f); _power = set.getFloat("power", 0.f);
_effectPoints = set.getInteger("effectPoints", 0); _effectPoints = set.getInt("effectPoints", 0);
_negateSkillTypes = set.getString("negateSkillTypes", "").split(" "); _negateSkillTypes = set.getString("negateSkillTypes", "").split(" ");
_negateEffectTypes = set.getString("negateEffectTypes", "").split(" "); _negateEffectTypes = set.getString("negateEffectTypes", "").split(" ");
_negatePower = set.getFloat("negatePower", 0.f); _negatePower = set.getFloat("negatePower", 0.f);
_negateId = set.getInteger("negateId", 0); _negateId = set.getInt("negateId", 0);
_magicLevel = set.getInteger("magicLvl", SkillTreeTable.getInstance().getMinSkillLevel(_id, _level)); _magicLevel = set.getInt("magicLvl", SkillTreeTable.getInstance().getMinSkillLevel(_id, _level));
_levelDepend = set.getInteger("lvlDepend", 0); _levelDepend = set.getInt("lvlDepend", 0);
_stat = set.getEnum("stat", Stats.class, null); _stat = set.getEnum("stat", Stats.class, null);
_skillType = set.getEnum("skillType", SkillType.class); _skillType = set.getEnum("skillType", SkillType.class);
_effectType = set.getEnum("effectType", SkillType.class, null); _effectType = set.getEnum("effectType", SkillType.class, null);
_effectPower = set.getInteger("effectPower", 0); _effectPower = set.getInt("effectPower", 0);
_effectId = set.getInteger("effectId", 0); _effectId = set.getInt("effectId", 0);
_effectLvl = set.getInteger("effectLevel", 0); _effectLvl = set.getInt("effectLevel", 0);
_element = set.getInteger("element", 0); _element = set.getInt("element", 0);
_saveVs = set.getEnum("saveVs", BaseStats.class, null); _saveVs = set.getEnum("saveVs", BaseStats.class, null);
_condition = set.getInteger("condition", 0); _condition = set.getInt("condition", 0);
_conditionValue = set.getInteger("conditionValue", 0); _conditionValue = set.getInt("conditionValue", 0);
_overhit = set.getBool("overHit", false); _overhit = set.getBoolean("overHit", false);
_isSuicideAttack = set.getBool("isSuicideAttack", false); _isSuicideAttack = set.getBoolean("isSuicideAttack", false);
_weaponsAllowed = set.getInteger("weaponsAllowed", 0); _weaponsAllowed = set.getInt("weaponsAllowed", 0);
_armorsAllowed = set.getInteger("armorsAllowed", 0); _armorsAllowed = set.getInt("armorsAllowed", 0);
_addCrossLearn = set.getInteger("addCrossLearn", 1000); _addCrossLearn = set.getInt("addCrossLearn", 1000);
_mulCrossLearn = set.getFloat("mulCrossLearn", 2.f); _mulCrossLearn = set.getFloat("mulCrossLearn", 2.f);
_mulCrossLearnRace = set.getFloat("mulCrossLearnRace", 2.f); _mulCrossLearnRace = set.getFloat("mulCrossLearnRace", 2.f);
_mulCrossLearnProf = set.getFloat("mulCrossLearnProf", 3.f); _mulCrossLearnProf = set.getFloat("mulCrossLearnProf", 3.f);
_minPledgeClass = set.getInteger("minPledgeClass", 0); _minPledgeClass = set.getInt("minPledgeClass", 0);
_isOffensive = set.getBool("offensive", isSkillTypeOffensive()); _isOffensive = set.getBoolean("offensive", isSkillTypeOffensive());
_numCharges = set.getInteger("num_charges", 0); _numCharges = set.getInt("num_charges", 0);
_triggeredId = set.getInteger("triggeredId", 0); _triggeredId = set.getInt("triggeredId", 0);
_triggeredLevel = set.getInteger("triggeredLevel", 0); _triggeredLevel = set.getInt("triggeredLevel", 0);
_bestowed = set.getBool("bestowed", false); _bestowed = set.getBoolean("bestowed", false);
_targetConsume = set.getInteger("targetConsumeCount", 0); _targetConsume = set.getInt("targetConsumeCount", 0);
_targetConsumeId = set.getInteger("targetConsumeId", 0); _targetConsumeId = set.getInt("targetConsumeId", 0);
if (_operateType == SkillOpType.OP_CHANCE) if (_operateType == SkillOpType.OP_CHANCE)
{ {
@@ -601,22 +600,22 @@ public abstract class Skill
_isHeroSkill = HeroSkillTable.isHeroSkill(_id); _isHeroSkill = HeroSkillTable.isHeroSkill(_id);
_baseCritRate = set.getInteger("baseCritRate", (_skillType == SkillType.PDAM) || (_skillType == SkillType.BLOW) ? 0 : -1); _baseCritRate = set.getInt("baseCritRate", (_skillType == SkillType.PDAM) || (_skillType == SkillType.BLOW) ? 0 : -1);
_lethalEffect1 = set.getInteger("lethal1", 0); _lethalEffect1 = set.getInt("lethal1", 0);
_lethalEffect2 = set.getInteger("lethal2", 0); _lethalEffect2 = set.getInt("lethal2", 0);
_directHpDmg = set.getBool("dmgDirectlyToHp", false); _directHpDmg = set.getBoolean("dmgDirectlyToHp", false);
_isDance = set.getBool("isDance", false); _isDance = set.getBoolean("isDance", false);
_nextDanceCost = set.getInteger("nextDanceCost", 0); _nextDanceCost = set.getInt("nextDanceCost", 0);
_sSBoost = set.getFloat("SSBoost", 0.f); _sSBoost = set.getFloat("SSBoost", 0.f);
_aggroPoints = set.getInteger("aggroPoints", 0); _aggroPoints = set.getInt("aggroPoints", 0);
_pvpMulti = set.getFloat("pvpMulti", 1.f); _pvpMulti = set.getFloat("pvpMulti", 1.f);
_nextActionIsAttack = set.getBool("nextActionAttack", false); _nextActionIsAttack = set.getBoolean("nextActionAttack", false);
_minChance = set.getInteger("minChance", 1); _minChance = set.getInt("minChance", 1);
_maxChance = set.getInteger("maxChance", 99); _maxChance = set.getInt("maxChance", 99);
String canLearn = set.getString("canLearn", null); String canLearn = set.getString("canLearn", null);
if (canLearn == null) if (canLearn == null)
@@ -665,9 +664,9 @@ public abstract class Skill
} }
} }
_singleEffect = set.getBool("singleEffect", false); _singleEffect = set.getBoolean("singleEffect", false);
_isDebuff = set.getBool("isDebuff", false); _isDebuff = set.getBoolean("isDebuff", false);
} }
public abstract void useSkill(Creature caster, WorldObject[] targets); public abstract void useSkill(Creature caster, WorldObject[] targets);
@@ -0,0 +1,978 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Supplier;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import org.l2jmobius.commons.util.TimeUtil;
import org.l2jmobius.gameserver.model.interfaces.IParserAdvUtils;
import org.l2jmobius.gameserver.skills.holders.SkillHolder;
import org.l2jmobius.gameserver.util.Util;
/**
* This class is meant to hold a set of (key,value) pairs.<br>
* They are stored as object but can be retrieved in any type wanted. As long as cast is available.<br>
* @author mkizub
*/
public class StatsSet implements IParserAdvUtils
{
private static final Logger LOGGER = Logger.getLogger(StatsSet.class.getName());
/** Static empty immutable map, used to avoid multiple null checks over the source. */
public static final StatsSet EMPTY_STATSET = new StatsSet(Collections.emptyMap());
private final Map<String, Object> _set;
public StatsSet()
{
this(ConcurrentHashMap::new);
}
public StatsSet(Supplier<Map<String, Object>> mapFactory)
{
this(mapFactory.get());
}
public StatsSet(Map<String, Object> map)
{
_set = map;
}
/**
* Returns the set of values
* @return HashMap
*/
public Map<String, Object> getSet()
{
return _set;
}
/**
* Add a set of couple values in the current set
* @param newSet : StatsSet pointing out the list of couples to add in the current set
*/
public void merge(StatsSet newSet)
{
_set.putAll(newSet.getSet());
}
/**
* Verifies if the stat set is empty.
* @return {@code true} if the stat set is empty, {@code false} otherwise
*/
public boolean isEmpty()
{
return _set.isEmpty();
}
/**
* Return the boolean value associated with key.
* @param key : String designating the key in the set
* @return boolean : value associated to the key
* @throws IllegalArgumentException : If value is not set or value is not boolean
*/
@Override
public boolean getBoolean(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Boolean value required, but not specified");
}
if (val instanceof Boolean)
{
return ((Boolean) val).booleanValue();
}
try
{
return Boolean.parseBoolean((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Boolean value required, but found: " + val);
}
}
/**
* Return the boolean value associated with key.<br>
* If no value is associated with key, or type of value is wrong, returns defaultValue.
* @param key : String designating the key in the entry set
* @return boolean : value associated to the key
*/
@Override
public boolean getBoolean(String key, boolean defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (val instanceof Boolean)
{
return ((Boolean) val).booleanValue();
}
try
{
return Boolean.parseBoolean((String) val);
}
catch (Exception e)
{
return defaultValue;
}
}
@Override
public byte getByte(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Byte value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).byteValue();
}
try
{
return Byte.parseByte((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Byte value required, but found: " + val);
}
}
@Override
public byte getByte(String key, byte defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (val instanceof Number)
{
return ((Number) val).byteValue();
}
try
{
return Byte.parseByte((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Byte value required, but found: " + val);
}
}
public short increaseByte(String key, byte increaseWith)
{
final byte newValue = (byte) (getByte(key) + increaseWith);
set(key, newValue);
return newValue;
}
public short increaseByte(String key, byte defaultValue, byte increaseWith)
{
final byte newValue = (byte) (getByte(key, defaultValue) + increaseWith);
set(key, newValue);
return newValue;
}
public byte[] getByteArray(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Byte value required, but not specified");
}
if (val instanceof Number)
{
return new byte[]
{
((Number) val).byteValue()
};
}
int c = 0;
final String[] vals = ((String) val).split(splitOn);
final byte[] result = new byte[vals.length];
for (String v : vals)
{
try
{
result[c++] = Byte.parseByte(v);
}
catch (Exception e)
{
throw new IllegalArgumentException("Byte value required, but found: " + val);
}
}
return result;
}
public List<Byte> getByteList(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final List<Byte> result = new ArrayList<>();
for (Byte i : getByteArray(key, splitOn))
{
result.add(i);
}
return result;
}
@Override
public short getShort(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Short value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).shortValue();
}
try
{
return Short.parseShort((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Short value required, but found: " + val);
}
}
@Override
public short getShort(String key, short defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (val instanceof Number)
{
return ((Number) val).shortValue();
}
try
{
return Short.parseShort((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Short value required, but found: " + val);
}
}
public short increaseShort(String key, short increaseWith)
{
final short newValue = (short) (getShort(key) + increaseWith);
set(key, newValue);
return newValue;
}
public short increaseShort(String key, short defaultValue, short increaseWith)
{
final short newValue = (short) (getShort(key, defaultValue) + increaseWith);
set(key, newValue);
return newValue;
}
@Override
public int getInt(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Integer value required, but not specified: " + key + "!");
}
if (val instanceof Number)
{
return ((Number) val).intValue();
}
try
{
return Integer.parseInt((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val + "!");
}
}
@Override
public int getInt(String key, int defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (val instanceof Number)
{
return ((Number) val).intValue();
}
try
{
return Integer.parseInt((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val);
}
}
public int increaseInt(String key, int increaseWith)
{
final int newValue = getInt(key) + increaseWith;
set(key, newValue);
return newValue;
}
public int increaseInt(String key, int defaultValue, int increaseWith)
{
final int newValue = getInt(key, defaultValue) + increaseWith;
set(key, newValue);
return newValue;
}
public int[] getIntArray(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Integer value required, but not specified");
}
if (val instanceof Number)
{
return new int[]
{
((Number) val).intValue()
};
}
int c = 0;
final String[] vals = ((String) val).split(splitOn);
final int[] result = new int[vals.length];
for (String v : vals)
{
try
{
result[c++] = Integer.parseInt(v);
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val);
}
}
return result;
}
public List<Integer> getIntegerList(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final List<Integer> result = new ArrayList<>();
for (int i : getIntArray(key, splitOn))
{
result.add(i);
}
return result;
}
@Override
public long getLong(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Long value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).longValue();
}
try
{
return Long.parseLong((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Long value required, but found: " + val);
}
}
@Override
public long getLong(String key, long defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (val instanceof Number)
{
return ((Number) val).longValue();
}
try
{
return Long.parseLong((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Long value required, but found: " + val);
}
}
public long increaseLong(String key, long increaseWith)
{
final long newValue = getLong(key) + increaseWith;
set(key, newValue);
return newValue;
}
public long increaseLong(String key, long defaultValue, long increaseWith)
{
final long newValue = getLong(key, defaultValue) + increaseWith;
set(key, newValue);
return newValue;
}
@Override
public float getFloat(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Float value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).floatValue();
}
try
{
return Float.parseFloat((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Float value required, but found: " + val);
}
}
@Override
public float getFloat(String key, float defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (val instanceof Number)
{
return ((Number) val).floatValue();
}
try
{
return Float.parseFloat((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Float value required, but found: " + val);
}
}
public float increaseFloat(String key, float increaseWith)
{
final float newValue = getFloat(key) + increaseWith;
set(key, newValue);
return newValue;
}
public float increaseFloat(String key, float defaultValue, float increaseWith)
{
final float newValue = getFloat(key, defaultValue) + increaseWith;
set(key, newValue);
return newValue;
}
@Override
public double getDouble(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Double value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).doubleValue();
}
try
{
return Double.parseDouble((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Double value required, but found: " + val);
}
}
@Override
public double getDouble(String key, double defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (val instanceof Number)
{
return ((Number) val).doubleValue();
}
try
{
return Double.parseDouble((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Double value required, but found: " + val);
}
}
public double increaseDouble(String key, double increaseWith)
{
final double newValue = getDouble(key) + increaseWith;
set(key, newValue);
return newValue;
}
public double increaseDouble(String key, double defaultValue, double increaseWith)
{
final double newValue = getDouble(key, defaultValue) + increaseWith;
set(key, newValue);
return newValue;
}
@Override
public String getString(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("String value required, but not specified");
}
return String.valueOf(val);
}
@Override
public String getString(String key, String defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
return String.valueOf(val);
}
@Override
public Duration getDuration(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("String value required, but not specified");
}
return TimeUtil.parseDuration(String.valueOf(val));
}
@Override
public Duration getDuration(String key, Duration defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
return TimeUtil.parseDuration(String.valueOf(val));
}
@Override
@SuppressWarnings("unchecked")
public <T extends Enum<T>> T getEnum(String key, Class<T> enumClass)
{
Objects.requireNonNull(key);
Objects.requireNonNull(enumClass);
final Object val = _set.get(key);
if (val == null)
{
throw new IllegalArgumentException("Enum value of type " + enumClass.getName() + " required, but not specified");
}
if (enumClass.isInstance(val))
{
return (T) val;
}
try
{
return Enum.valueOf(enumClass, String.valueOf(val));
}
catch (Exception e)
{
throw new IllegalArgumentException("Enum value of type " + enumClass.getName() + " required, but found: " + val);
}
}
@Override
@SuppressWarnings("unchecked")
public <T extends Enum<T>> T getEnum(String key, Class<T> enumClass, T defaultValue)
{
Objects.requireNonNull(key);
Objects.requireNonNull(enumClass);
final Object val = _set.get(key);
if (val == null)
{
return defaultValue;
}
if (enumClass.isInstance(val))
{
return (T) val;
}
try
{
return Enum.valueOf(enumClass, String.valueOf(val));
}
catch (Exception e)
{
throw new IllegalArgumentException("Enum value of type " + enumClass.getName() + " required, but found: " + val);
}
}
@SuppressWarnings("unchecked")
public <A> A getObject(String name, Class<A> type)
{
Objects.requireNonNull(name);
Objects.requireNonNull(type);
final Object obj = _set.get(name);
if ((obj == null) || !type.isAssignableFrom(obj.getClass()))
{
return null;
}
return (A) obj;
}
@SuppressWarnings("unchecked")
public <A> A getObject(String name, Class<A> type, A defaultValue)
{
Objects.requireNonNull(name);
Objects.requireNonNull(type);
final Object obj = _set.get(name);
if ((obj == null) || !type.isAssignableFrom(obj.getClass()))
{
return defaultValue;
}
return (A) obj;
}
public SkillHolder getSkillHolder(String key)
{
Objects.requireNonNull(key);
final Object obj = _set.get(key);
if ((obj == null) || !(obj instanceof SkillHolder))
{
return null;
}
return (SkillHolder) obj;
}
public Location getLocation(String key)
{
Objects.requireNonNull(key);
final Object obj = _set.get(key);
if ((obj == null) || !(obj instanceof Location))
{
return null;
}
return (Location) obj;
}
@SuppressWarnings("unchecked")
public <T> List<T> getList(String key, Class<T> clazz)
{
Objects.requireNonNull(key);
Objects.requireNonNull(clazz);
final Object obj = _set.get(key);
if ((obj == null) || !(obj instanceof List<?>))
{
return null;
}
final List<Object> originalList = (List<Object>) obj;
if (!originalList.isEmpty() && !originalList.stream().allMatch(clazz::isInstance))
{
if (clazz.getSuperclass() == Enum.class)
{
throw new IllegalAccessError("Please use getEnumList if you want to get list of Enums!");
}
// Attempt to convert the list
final List<T> convertedList = convertList(originalList, clazz);
if (convertedList == null)
{
LOGGER.log(Level.WARNING, "getList(\"" + key + "\", " + clazz.getSimpleName() + ") requested with wrong generic type: " + obj.getClass().getGenericInterfaces()[0] + "!", new ClassNotFoundException());
return null;
}
// Overwrite the existing list with proper generic type
_set.put(key, convertedList);
return convertedList;
}
return (List<T>) obj;
}
public <T> List<T> getList(String key, Class<T> clazz, List<T> defaultValue)
{
final List<T> list = getList(key, clazz);
return list == null ? defaultValue : list;
}
@SuppressWarnings("unchecked")
public <T extends Enum<T>> List<T> getEnumList(String key, Class<T> clazz)
{
final Object obj = _set.get(key);
if ((obj == null) || !(obj instanceof List<?>))
{
return null;
}
final List<Object> originalList = (List<Object>) obj;
if (!originalList.isEmpty() && (obj.getClass().getGenericInterfaces()[0] != clazz) && originalList.stream().allMatch(name -> Util.isEnum(name.toString(), clazz)))
{
final List<T> convertedList = originalList.stream().map(Object::toString).map(name -> Enum.valueOf(clazz, name)).map(clazz::cast).collect(Collectors.toList());
// Overwrite the existing list with proper generic type
_set.put(key, convertedList);
return convertedList;
}
return (List<T>) obj;
}
/**
* @param <T>
* @param originalList
* @param clazz
* @return
*/
private <T> List<T> convertList(List<Object> originalList, Class<T> clazz)
{
if (clazz == Integer.class)
{
if (originalList.stream().map(Object::toString).allMatch(Util::isInteger))
{
return originalList.stream().map(Object::toString).map(Integer::valueOf).map(clazz::cast).collect(Collectors.toList());
}
}
else if (clazz == Float.class)
{
if (originalList.stream().map(Object::toString).allMatch(Util::isFloat))
{
return originalList.stream().map(Object::toString).map(Float::valueOf).map(clazz::cast).collect(Collectors.toList());
}
}
else if (clazz == Double.class)
{
if (originalList.stream().map(Object::toString).allMatch(Util::isDouble))
{
return originalList.stream().map(Object::toString).map(Double::valueOf).map(clazz::cast).collect(Collectors.toList());
}
}
return null;
}
@SuppressWarnings("unchecked")
public <K, V> Map<K, V> getMap(String key, Class<K> keyClass, Class<V> valueClass)
{
final Object obj = _set.get(key);
if ((obj == null) || !(obj instanceof Map<?, ?>))
{
return null;
}
final Map<?, ?> originalList = (Map<?, ?>) obj;
if (!originalList.isEmpty())
{
if ((!originalList.keySet().stream().allMatch(keyClass::isInstance)) || (!originalList.values().stream().allMatch(valueClass::isInstance)))
{
LOGGER.log(Level.WARNING, "getMap(\"" + key + "\", " + keyClass.getSimpleName() + ", " + valueClass.getSimpleName() + ") requested with wrong generic type: " + obj.getClass().getGenericInterfaces()[0] + "!", new ClassNotFoundException());
}
}
return (Map<K, V>) obj;
}
public StatsSet set(String name, Object value)
{
if (value == null)
{
return this;
}
_set.put(name, value);
return this;
}
public StatsSet set(String key, boolean value)
{
_set.put(key, value);
return this;
}
public StatsSet set(String key, byte value)
{
_set.put(key, value);
return this;
}
public StatsSet set(String key, short value)
{
_set.put(key, value);
return this;
}
public StatsSet set(String key, int value)
{
_set.put(key, value);
return this;
}
public StatsSet set(String key, long value)
{
_set.put(key, value);
return this;
}
public StatsSet set(String key, float value)
{
_set.put(key, value);
return this;
}
public StatsSet set(String key, double value)
{
_set.put(key, value);
return this;
}
public StatsSet set(String key, String value)
{
if (value == null)
{
return this;
}
_set.put(key, value);
return this;
}
public StatsSet set(String key, Enum<?> value)
{
if (value == null)
{
return this;
}
_set.put(key, value);
return this;
}
/**
* Safe version of "set". Expected values are within [min, max[<br>
* Add the int hold in param "value" for the key "name".
* @param name : String designating the key in the set
* @param value : int corresponding to the value associated with the key
* @param min
* @param max
* @param reference
*/
public synchronized void safeSet(String name, int value, int min, int max, String reference)
{
assert ((min > max) || ((value >= min) && (value < max)));
if ((min <= max) && ((value < min) || (value >= max)))
{
LOGGER.info("[StatsSet][safeSet] Incorrect value: " + value + "for: " + name + "Ref: " + reference);
}
set(name, value);
}
public static StatsSet valueOf(String key, Object value)
{
final StatsSet set = new StatsSet();
set.set(key, value);
return set;
}
public void remove(String key)
{
_set.remove(key);
}
public boolean contains(String name)
{
return _set.containsKey(name);
}
@Override
public String toString()
{
return "StatsSet{_set=" + _set + '}';
}
}
@@ -60,6 +60,7 @@ import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.Skill.SkillTargetType; import org.l2jmobius.gameserver.model.Skill.SkillTargetType;
import org.l2jmobius.gameserver.model.Skill.SkillType; import org.l2jmobius.gameserver.model.Skill.SkillType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.WorldRegion; import org.l2jmobius.gameserver.model.WorldRegion;
@@ -131,7 +132,6 @@ import org.l2jmobius.gameserver.skills.Stats;
import org.l2jmobius.gameserver.skills.effects.EffectCharge; import org.l2jmobius.gameserver.skills.effects.EffectCharge;
import org.l2jmobius.gameserver.skills.funcs.Func; import org.l2jmobius.gameserver.skills.funcs.Func;
import org.l2jmobius.gameserver.skills.holders.ISkillsHolder; import org.l2jmobius.gameserver.skills.holders.ISkillsHolder;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.CreatureTemplate; import org.l2jmobius.gameserver.templates.creatures.CreatureTemplate;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
import org.l2jmobius.gameserver.templates.item.Weapon; import org.l2jmobius.gameserver.templates.item.Weapon;
@@ -21,13 +21,13 @@ import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSigns; import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSigns;
import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSignsFestival; import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSignsFestival;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
/** /**
@@ -324,13 +324,13 @@ public class FestivalGuideInstance extends FolkInstance
final StatsSet dawnData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DAWN, _festivalType); final StatsSet dawnData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DAWN, _festivalType);
final StatsSet duskData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DUSK, _festivalType); final StatsSet duskData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DUSK, _festivalType);
final StatsSet overallData = SevenSignsFestival.getInstance().getOverallHighestScoreData(_festivalType); final StatsSet overallData = SevenSignsFestival.getInstance().getOverallHighestScoreData(_festivalType);
final int dawnScore = dawnData.getInteger("score"); final int dawnScore = dawnData.getInt("score");
final int duskScore = duskData.getInteger("score"); final int duskScore = duskData.getInt("score");
int overallScore = 0; int overallScore = 0;
// If no data is returned, assume there is no record, or all scores are 0. // If no data is returned, assume there is no record, or all scores are 0.
if (overallData != null) if (overallData != null)
{ {
overallScore = overallData.getInteger("score"); overallScore = overallData.getInt("score");
} }
strBuffer.append(SevenSignsFestival.getFestivalName(_festivalType) + " festival.<br>"); strBuffer.append(SevenSignsFestival.getFestivalName(_festivalType) + " festival.<br>");
if (dawnScore > 0) if (dawnScore > 0)
@@ -50,7 +50,6 @@ import org.l2jmobius.gameserver.cache.WarehouseCacheManager;
import org.l2jmobius.gameserver.communitybbs.BB.Forum; import org.l2jmobius.gameserver.communitybbs.BB.Forum;
import org.l2jmobius.gameserver.communitybbs.Manager.ForumsBBSManager; import org.l2jmobius.gameserver.communitybbs.Manager.ForumsBBSManager;
import org.l2jmobius.gameserver.datatables.AccessLevel; import org.l2jmobius.gameserver.datatables.AccessLevel;
import org.l2jmobius.gameserver.datatables.GmListTable;
import org.l2jmobius.gameserver.datatables.HeroSkillTable; import org.l2jmobius.gameserver.datatables.HeroSkillTable;
import org.l2jmobius.gameserver.datatables.NobleSkillTable; import org.l2jmobius.gameserver.datatables.NobleSkillTable;
import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.SkillTable;
@@ -58,12 +57,11 @@ import org.l2jmobius.gameserver.datatables.csv.FishTable;
import org.l2jmobius.gameserver.datatables.csv.HennaTable; import org.l2jmobius.gameserver.datatables.csv.HennaTable;
import org.l2jmobius.gameserver.datatables.csv.MapRegionTable; import org.l2jmobius.gameserver.datatables.csv.MapRegionTable;
import org.l2jmobius.gameserver.datatables.csv.RecipeTable; import org.l2jmobius.gameserver.datatables.csv.RecipeTable;
import org.l2jmobius.gameserver.datatables.sql.AccessLevels;
import org.l2jmobius.gameserver.datatables.sql.AdminCommandAccessRights;
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable; import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
import org.l2jmobius.gameserver.datatables.sql.ClanTable; import org.l2jmobius.gameserver.datatables.sql.ClanTable;
import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.datatables.sql.NpcTable;
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable; import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.datatables.xml.ExperienceData; import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
import org.l2jmobius.gameserver.datatables.xml.ItemTable; import org.l2jmobius.gameserver.datatables.xml.ItemTable;
import org.l2jmobius.gameserver.geoengine.GeoEngine; import org.l2jmobius.gameserver.geoengine.GeoEngine;
@@ -8614,11 +8612,11 @@ public class PlayerInstance extends Playable
if (level == Config.MASTERACCESS_LEVEL) if (level == Config.MASTERACCESS_LEVEL)
{ {
LOGGER.warning("Access level " + level + " set for character " + getName() + "! Just a warning ;)"); LOGGER.warning("Access level " + level + " set for character " + getName() + "! Just a warning ;)");
_accessLevel = AccessLevels.getInstance()._masterAccessLevel; _accessLevel = AdminData.getInstance()._masterAccessLevel;
} }
else if (level == Config.USERACCESS_LEVEL) else if (level == Config.USERACCESS_LEVEL)
{ {
_accessLevel = AccessLevels.getInstance()._userAccessLevel; _accessLevel = AdminData.getInstance()._userAccessLevel;
} }
else else
{ {
@@ -8626,19 +8624,19 @@ public class PlayerInstance extends Playable
{ {
LOGGER.warning("Access level " + level + " set for character " + getName() + "! Just a warning ;)"); LOGGER.warning("Access level " + level + " set for character " + getName() + "! Just a warning ;)");
} }
AccessLevel accessLevel = AccessLevels.getInstance().getAccessLevel(level); AccessLevel accessLevel = AdminData.getInstance().getAccessLevel(level);
if (accessLevel == null) if (accessLevel == null)
{ {
if (level < 0) if (level < 0)
{ {
AccessLevels.getInstance().addBanAccessLevel(level); AdminData.getInstance().addBanAccessLevel(level);
_accessLevel = AccessLevels.getInstance().getAccessLevel(level); _accessLevel = AdminData.getInstance().getAccessLevel(level);
} }
else else
{ {
LOGGER.warning("Tried to set unregistered access level " + level + " to character " + getName() + ". Setting access level without privileges!"); LOGGER.warning("Tried to set unregistered access level " + level + " to character " + getName() + ". Setting access level without privileges!");
_accessLevel = AccessLevels.getInstance()._userAccessLevel; _accessLevel = AdminData.getInstance()._userAccessLevel;
} }
} }
else else
@@ -8647,7 +8645,7 @@ public class PlayerInstance extends Playable
} }
} }
if (_accessLevel != AccessLevels.getInstance()._userAccessLevel) if (_accessLevel != AdminData.getInstance()._userAccessLevel)
{ {
if (getAccessLevel().useNameColor()) if (getAccessLevel().useNameColor())
{ {
@@ -8679,7 +8677,7 @@ public class PlayerInstance extends Playable
{ {
if (Config.EVERYBODY_HAS_ADMIN_RIGHTS) if (Config.EVERYBODY_HAS_ADMIN_RIGHTS)
{ {
return AccessLevels.getInstance()._masterAccessLevel; return AdminData.getInstance()._masterAccessLevel;
} }
else if (_accessLevel == null) else if (_accessLevel == null)
{ {
@@ -15050,7 +15048,7 @@ public class PlayerInstance extends Playable
{ {
try try
{ {
GmListTable.getInstance().deleteGm(this); AdminData.getInstance().deleteGm(this);
} }
catch (Throwable t) catch (Throwable t)
{ {
@@ -17920,11 +17918,11 @@ public class PlayerInstance extends Playable
setTarget(null); setTarget(null);
sendPacket(new ExOlympiadMode(0, this)); sendPacket(new ExOlympiadMode(0, this));
teleToLocation(_obsX, _obsY, _obsZ, true); teleToLocation(_obsX, _obsY, _obsZ, true);
if (!AdminCommandAccessRights.getInstance().hasAccess("admin_invis", getAccessLevel())) if (!AdminData.getInstance().hasAccess("admin_invis", getAccessLevel()))
{ {
getAppearance().setVisible(); getAppearance().setVisible();
} }
if (!AdminCommandAccessRights.getInstance().hasAccess("admin_invul", getAccessLevel())) if (!AdminData.getInstance().hasAccess("admin_invul", getAccessLevel()))
{ {
setIsInvul(false); setIsInvul(false);
} }
@@ -28,6 +28,7 @@ import java.util.logging.Logger;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.datatables.sql.ClanTable; import org.l2jmobius.gameserver.datatables.sql.ClanTable;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -38,7 +39,6 @@ import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate; import org.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.network.serverpackets.UserInfo; import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.item.Item; import org.l2jmobius.gameserver.templates.item.Item;
/** /**
@@ -320,11 +320,11 @@ public class Hero
final Map<Integer, StatsSet> heroes = new HashMap<>(); final Map<Integer, StatsSet> heroes = new HashMap<>();
for (StatsSet hero : newHeroes) for (StatsSet hero : newHeroes)
{ {
final int charId = hero.getInteger(Olympiad.CHAR_ID); final int charId = hero.getInt(Olympiad.CHAR_ID);
if ((_completeHeroes != null) && _completeHeroes.containsKey(charId)) if ((_completeHeroes != null) && _completeHeroes.containsKey(charId))
{ {
final StatsSet oldHero = _completeHeroes.get(charId); final StatsSet oldHero = _completeHeroes.get(charId);
final int count = oldHero.getInteger(COUNT); final int count = oldHero.getInt(COUNT);
oldHero.set(COUNT, count + 1); oldHero.set(COUNT, count + 1);
oldHero.set(PLAYED, 1); oldHero.set(PLAYED, 1);
heroes.put(charId, oldHero); heroes.put(charId, oldHero);
@@ -333,7 +333,7 @@ public class Hero
{ {
final StatsSet newHero = new StatsSet(); final StatsSet newHero = new StatsSet();
newHero.set(Olympiad.CHAR_NAME, hero.getString(Olympiad.CHAR_NAME)); newHero.set(Olympiad.CHAR_NAME, hero.getString(Olympiad.CHAR_NAME));
newHero.set(Olympiad.CLASS_ID, hero.getInteger(Olympiad.CLASS_ID)); newHero.set(Olympiad.CLASS_ID, hero.getInt(Olympiad.CLASS_ID));
newHero.set(COUNT, 1); newHero.set(COUNT, 1);
newHero.set(PLAYED, 1); newHero.set(PLAYED, 1);
heroes.put(charId, newHero); heroes.put(charId, newHero);
@@ -424,9 +424,9 @@ public class Hero
statement = con.prepareStatement(INSERT_HERO); statement = con.prepareStatement(INSERT_HERO);
statement.setInt(1, heroId); statement.setInt(1, heroId);
statement.setString(2, hero.getString(Olympiad.CHAR_NAME)); statement.setString(2, hero.getString(Olympiad.CHAR_NAME));
statement.setInt(3, hero.getInteger(Olympiad.CLASS_ID)); statement.setInt(3, hero.getInt(Olympiad.CLASS_ID));
statement.setInt(4, hero.getInteger(COUNT)); statement.setInt(4, hero.getInt(COUNT));
statement.setInt(5, hero.getInteger(PLAYED)); statement.setInt(5, hero.getInt(PLAYED));
statement.execute(); statement.execute();
statement2 = con.prepareStatement(GET_CLAN_ALLY); statement2 = con.prepareStatement(GET_CLAN_ALLY);
statement2.setInt(1, heroId); statement2.setInt(1, heroId);
@@ -463,8 +463,8 @@ public class Hero
else else
{ {
statement = con.prepareStatement(UPDATE_HERO); statement = con.prepareStatement(UPDATE_HERO);
statement.setInt(1, hero.getInteger(COUNT)); statement.setInt(1, hero.getInt(COUNT));
statement.setInt(2, hero.getInteger(PLAYED)); statement.setInt(2, hero.getInt(PLAYED));
statement.setInt(3, heroId); statement.setInt(3, heroId);
statement.execute(); statement.execute();
} }
@@ -44,6 +44,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.instancemanager.OlympiadStadiaManager; import org.l2jmobius.gameserver.instancemanager.OlympiadStadiaManager;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.Announcements; import org.l2jmobius.gameserver.model.entity.Announcements;
@@ -52,7 +53,6 @@ import org.l2jmobius.gameserver.model.spawn.Spawn;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
public class Olympiad public class Olympiad
{ {
@@ -1006,7 +1006,7 @@ public class Olympiad
for (Integer nobleId : _nobles.keySet()) for (Integer nobleId : _nobles.keySet())
{ {
final StatsSet nobleInfo = _nobles.get(nobleId); final StatsSet nobleInfo = _nobles.get(nobleId);
int currentPoints = nobleInfo.getInteger(POINTS); int currentPoints = nobleInfo.getInt(POINTS);
currentPoints += WEEKLY_POINTS; currentPoints += WEEKLY_POINTS;
nobleInfo.set(POINTS, currentPoints); nobleInfo.set(POINTS, currentPoints);
@@ -1138,14 +1138,14 @@ public class Olympiad
} }
final int charId = nobleId; final int charId = nobleId;
final int classId = nobleInfo.getInteger(CLASS_ID); final int classId = nobleInfo.getInt(CLASS_ID);
final String charName = nobleInfo.getString(CHAR_NAME); final String charName = nobleInfo.getString(CHAR_NAME);
final int points = nobleInfo.getInteger(POINTS); final int points = nobleInfo.getInt(POINTS);
final int compDone = nobleInfo.getInteger(COMP_DONE); final int compDone = nobleInfo.getInt(COMP_DONE);
final int compWon = nobleInfo.getInteger(COMP_WON); final int compWon = nobleInfo.getInt(COMP_WON);
final int compLost = nobleInfo.getInteger(COMP_LOST); final int compLost = nobleInfo.getInt(COMP_LOST);
final int compDrawn = nobleInfo.getInteger(COMP_DRAWN); final int compDrawn = nobleInfo.getInt(COMP_DRAWN);
final boolean toSave = nobleInfo.getBool("to_save"); final boolean toSave = nobleInfo.getBoolean("to_save");
if (toSave) if (toSave)
{ {
@@ -1200,11 +1200,11 @@ public class Olympiad
} }
final int charId = nobleId; final int charId = nobleId;
final int points = nobleInfo.getInteger(POINTS); final int points = nobleInfo.getInt(POINTS);
final int compDone = nobleInfo.getInteger(COMP_DONE); final int compDone = nobleInfo.getInt(COMP_DONE);
final int compWon = nobleInfo.getInteger(COMP_WON); final int compWon = nobleInfo.getInt(COMP_WON);
final int compLost = nobleInfo.getInteger(COMP_LOST); final int compLost = nobleInfo.getInt(COMP_LOST);
final int compDrawn = nobleInfo.getInteger(COMP_DRAWN); final int compDrawn = nobleInfo.getInt(COMP_DRAWN);
statement = con.prepareStatement(OLYMPIAD_UPDATE_OLD_NOBLES); statement = con.prepareStatement(OLYMPIAD_UPDATE_OLD_NOBLES);
statement.setInt(1, points); statement.setInt(1, points);
@@ -1310,10 +1310,10 @@ public class Olympiad
} }
final int charId = nobleId; final int charId = nobleId;
final int classId = nobleInfo.getInteger(CLASS_ID); final int classId = nobleInfo.getInt(CLASS_ID);
final String charName = nobleInfo.getString(CHAR_NAME); final String charName = nobleInfo.getString(CHAR_NAME);
final int points = nobleInfo.getInteger(POINTS); final int points = nobleInfo.getInt(POINTS);
final int compDone = nobleInfo.getInteger(COMP_DONE); final int compDone = nobleInfo.getInt(COMP_DONE);
logResult(charName, "", Double.valueOf(charId), Double.valueOf(classId), compDone, points, "noble-charId-classId-compdone-points", 0, ""); logResult(charName, "", Double.valueOf(charId), Double.valueOf(classId), compDone, points, "noble-charId-classId-compdone-points", 0, "");
} }
@@ -1395,10 +1395,10 @@ public class Olympiad
for (StatsSet hero : _heroesToBe) for (StatsSet hero : _heroesToBe)
{ {
final int charId = hero.getInteger(CHAR_ID); final int charId = hero.getInt(CHAR_ID);
final StatsSet noble = _nobles.get(charId); final StatsSet noble = _nobles.get(charId);
int currentPoints = noble.getInteger(POINTS); int currentPoints = noble.getInt(POINTS);
currentPoints += Config.ALT_OLY_HERO_POINTS; currentPoints += Config.ALT_OLY_HERO_POINTS;
noble.set(POINTS, currentPoints); noble.set(POINTS, currentPoints);
@@ -1420,7 +1420,7 @@ public class Olympiad
{ {
return 0; return 0;
} }
int points = noble.getInteger(POINTS); int points = noble.getInt(POINTS);
if (points <= Config.ALT_OLY_MIN_POINT_FOR_EXCH) if (points <= Config.ALT_OLY_MIN_POINT_FOR_EXCH)
{ {
return 0; return 0;
@@ -1444,7 +1444,7 @@ public class Olympiad
{ {
return 0; return 0;
} }
int points = noble.getInteger(POINTS); int points = noble.getInt(POINTS);
if (points <= Config.ALT_OLY_MIN_POINT_FOR_EXCH) if (points <= Config.ALT_OLY_MIN_POINT_FOR_EXCH)
{ {
return 0; return 0;
@@ -1489,7 +1489,7 @@ public class Olympiad
{ {
return 0; return 0;
} }
final int points = noble.getInteger(POINTS); final int points = noble.getInt(POINTS);
return points; return points;
} }
@@ -1506,7 +1506,7 @@ public class Olympiad
{ {
return 0; return 0;
} }
final int points = noble.getInteger(COMP_DONE); final int points = noble.getInt(COMP_DONE);
return points; return points;
} }
@@ -1523,7 +1523,7 @@ public class Olympiad
{ {
return 0; return 0;
} }
final int points = noble.getInteger(COMP_WON); final int points = noble.getInt(COMP_WON);
return points; return points;
} }
@@ -1540,7 +1540,7 @@ public class Olympiad
{ {
return 0; return 0;
} }
final int points = noble.getInteger(COMP_LOST); final int points = noble.getInt(COMP_LOST);
return points; return points;
} }
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.datatables.HeroSkillTable;
import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.CubicInstance; import org.l2jmobius.gameserver.model.actor.instance.CubicInstance;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
@@ -45,7 +46,6 @@ import org.l2jmobius.gameserver.network.serverpackets.ExOlympiadUserInfo;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate; import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse; import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* @author GodKratos * @author GodKratos
@@ -652,17 +652,17 @@ class OlympiadGame
final StatsSet playerOneStat = Olympiad.getNobleStats(_playerOne.getObjectId()); final StatsSet playerOneStat = Olympiad.getNobleStats(_playerOne.getObjectId());
final StatsSet playerTwoStat = Olympiad.getNobleStats(_playerTwo.getObjectId()); final StatsSet playerTwoStat = Olympiad.getNobleStats(_playerTwo.getObjectId());
final int playerOnePlayed = playerOneStat.getInteger(COMP_DONE); final int playerOnePlayed = playerOneStat.getInt(COMP_DONE);
final int playerTwoPlayed = playerTwoStat.getInteger(COMP_DONE); final int playerTwoPlayed = playerTwoStat.getInt(COMP_DONE);
final int playerOneWon = playerOneStat.getInteger(COMP_WON); final int playerOneWon = playerOneStat.getInt(COMP_WON);
final int playerTwoWon = playerTwoStat.getInteger(COMP_WON); final int playerTwoWon = playerTwoStat.getInt(COMP_WON);
final int playerOneLost = playerOneStat.getInteger(COMP_LOST); final int playerOneLost = playerOneStat.getInt(COMP_LOST);
final int playerTwoLost = playerTwoStat.getInteger(COMP_LOST); final int playerTwoLost = playerTwoStat.getInt(COMP_LOST);
final int playerOneDrawn = playerOneStat.getInteger(COMP_DRAWN); final int playerOneDrawn = playerOneStat.getInt(COMP_DRAWN);
final int playerTwoDrawn = playerTwoStat.getInteger(COMP_DRAWN); final int playerTwoDrawn = playerTwoStat.getInt(COMP_DRAWN);
final int playerOnePoints = playerOneStat.getInteger(POINTS); final int playerOnePoints = playerOneStat.getInt(POINTS);
final int playerTwoPoints = playerTwoStat.getInteger(POINTS); final int playerTwoPoints = playerTwoStat.getInt(POINTS);
final int pointDiff = Math.min(playerOnePoints, playerTwoPoints) / _div; final int pointDiff = Math.min(playerOnePoints, playerTwoPoints) / _div;
// Check for if a player defaulted before battle started // Check for if a player defaulted before battle started
@@ -31,6 +31,7 @@ import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.gameserver.datatables.csv.MapRegionTable; import org.l2jmobius.gameserver.datatables.csv.MapRegionTable;
import org.l2jmobius.gameserver.handler.AutoChatHandler; import org.l2jmobius.gameserver.handler.AutoChatHandler;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.spawn.AutoSpawn; import org.l2jmobius.gameserver.model.spawn.AutoSpawn;
@@ -38,7 +39,6 @@ import org.l2jmobius.gameserver.model.spawn.AutoSpawn.AutoSpawnInstance;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SignsSky; import org.l2jmobius.gameserver.network.serverpackets.SignsSky;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* Seven Signs Engine TODO: - Implementation of the Seal of Strife for sieges. * Seven Signs Engine TODO: - Implementation of the Seal of Strife for sieges.
@@ -796,9 +796,9 @@ public class SevenSigns
StatsSet currPlayer = getPlayerData(player); StatsSet currPlayer = getPlayerData(player);
stoneCount += currPlayer.getInteger("red_stones"); stoneCount += currPlayer.getInt("red_stones");
stoneCount += currPlayer.getInteger("green_stones"); stoneCount += currPlayer.getInt("green_stones");
stoneCount += currPlayer.getInteger("blue_stones"); stoneCount += currPlayer.getInt("blue_stones");
return stoneCount; return stoneCount;
} }
@@ -817,7 +817,7 @@ public class SevenSigns
final StatsSet currPlayer = getPlayerData(player); final StatsSet currPlayer = getPlayerData(player);
return currPlayer.getInteger("contribution_score"); return currPlayer.getInt("contribution_score");
} }
/** /**
@@ -832,7 +832,7 @@ public class SevenSigns
return 0; return 0;
} }
return _signsPlayerData.get(player.getObjectId()).getInteger("ancient_adena_amount"); return _signsPlayerData.get(player.getObjectId()).getInt("ancient_adena_amount");
} }
/** /**
@@ -847,7 +847,7 @@ public class SevenSigns
return SEAL_NULL; return SEAL_NULL;
} }
return getPlayerData(player).getInteger("seal"); return getPlayerData(player).getInt("seal");
} }
/** /**
@@ -968,7 +968,7 @@ public class SevenSigns
{ {
if (player != null) if (player != null)
{ {
if (sevenDat.getInteger("char_obj_id") != player.getObjectId()) if (sevenDat.getInt("char_obj_id") != player.getObjectId())
{ {
continue; continue;
} }
@@ -976,13 +976,13 @@ public class SevenSigns
statement = con.prepareStatement("UPDATE seven_signs SET cabal=?, seal=?, red_stones=?, green_stones=?, blue_stones=?, ancient_adena_amount=?, contribution_score=? WHERE char_obj_id=?"); statement = con.prepareStatement("UPDATE seven_signs SET cabal=?, seal=?, red_stones=?, green_stones=?, blue_stones=?, ancient_adena_amount=?, contribution_score=? WHERE char_obj_id=?");
statement.setString(1, sevenDat.getString("cabal")); statement.setString(1, sevenDat.getString("cabal"));
statement.setInt(2, sevenDat.getInteger("seal")); statement.setInt(2, sevenDat.getInt("seal"));
statement.setInt(3, sevenDat.getInteger("red_stones")); statement.setInt(3, sevenDat.getInt("red_stones"));
statement.setInt(4, sevenDat.getInteger("green_stones")); statement.setInt(4, sevenDat.getInt("green_stones"));
statement.setInt(5, sevenDat.getInteger("blue_stones")); statement.setInt(5, sevenDat.getInt("blue_stones"));
statement.setDouble(6, sevenDat.getDouble("ancient_adena_amount")); statement.setDouble(6, sevenDat.getDouble("ancient_adena_amount"));
statement.setDouble(7, sevenDat.getDouble("contribution_score")); statement.setDouble(7, sevenDat.getDouble("contribution_score"));
statement.setInt(8, sevenDat.getInteger("char_obj_id")); statement.setInt(8, sevenDat.getInt("char_obj_id"));
statement.execute(); statement.execute();
statement.close(); statement.close();
@@ -1044,7 +1044,7 @@ public class SevenSigns
// Reset each player's contribution data as well as seal and cabal. // Reset each player's contribution data as well as seal and cabal.
for (StatsSet sevenDat : _signsPlayerData.values()) for (StatsSet sevenDat : _signsPlayerData.values())
{ {
final int charObjId = sevenDat.getInteger("char_obj_id"); final int charObjId = sevenDat.getInt("char_obj_id");
// Reset the player's cabal and seal information // Reset the player's cabal and seal information
sevenDat.set("cabal", ""); sevenDat.set("cabal", "");
@@ -1142,7 +1142,7 @@ public class SevenSigns
public int getAncientAdenaReward(PlayerInstance player, boolean removeReward) public int getAncientAdenaReward(PlayerInstance player, boolean removeReward)
{ {
StatsSet currPlayer = getPlayerData(player); StatsSet currPlayer = getPlayerData(player);
final int rewardAmount = currPlayer.getInteger("ancient_adena_amount"); final int rewardAmount = currPlayer.getInt("ancient_adena_amount");
currPlayer.set("red_stones", 0); currPlayer.set("red_stones", 0);
currPlayer.set("green_stones", 0); currPlayer.set("green_stones", 0);
@@ -1171,17 +1171,17 @@ public class SevenSigns
StatsSet currPlayer = getPlayerData(player); StatsSet currPlayer = getPlayerData(player);
final int contribScore = calcContributionScore(blueCount, greenCount, redCount); final int contribScore = calcContributionScore(blueCount, greenCount, redCount);
final int totalAncientAdena = currPlayer.getInteger("ancient_adena_amount") + calcAncientAdenaReward(blueCount, greenCount, redCount); final int totalAncientAdena = currPlayer.getInt("ancient_adena_amount") + calcAncientAdenaReward(blueCount, greenCount, redCount);
final int totalContribScore = currPlayer.getInteger("contribution_score") + contribScore; final int totalContribScore = currPlayer.getInt("contribution_score") + contribScore;
if (totalContribScore > Config.ALT_MAXIMUM_PLAYER_CONTRIB) if (totalContribScore > Config.ALT_MAXIMUM_PLAYER_CONTRIB)
{ {
return -1; return -1;
} }
currPlayer.set("red_stones", currPlayer.getInteger("red_stones") + redCount); currPlayer.set("red_stones", currPlayer.getInt("red_stones") + redCount);
currPlayer.set("green_stones", currPlayer.getInteger("green_stones") + greenCount); currPlayer.set("green_stones", currPlayer.getInt("green_stones") + greenCount);
currPlayer.set("blue_stones", currPlayer.getInteger("blue_stones") + blueCount); currPlayer.set("blue_stones", currPlayer.getInt("blue_stones") + blueCount);
currPlayer.set("ancient_adena_amount", totalAncientAdena); currPlayer.set("ancient_adena_amount", totalAncientAdena);
currPlayer.set("contribution_score", totalContribScore); currPlayer.set("contribution_score", totalContribScore);
_signsPlayerData.put(player.getObjectId(), currPlayer); _signsPlayerData.put(player.getObjectId(), currPlayer);
@@ -39,6 +39,7 @@ import org.l2jmobius.gameserver.datatables.sql.SpawnTable;
import org.l2jmobius.gameserver.datatables.xml.ExperienceData; import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.FestivalMonsterInstance; import org.l2jmobius.gameserver.model.actor.instance.FestivalMonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
@@ -52,7 +53,6 @@ import org.l2jmobius.gameserver.network.serverpackets.CreatureSay;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse; import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import org.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate; import org.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
@@ -3404,14 +3404,14 @@ public class SevenSignsFestival implements SpawnListener
{ {
for (StatsSet festivalDat : currCycleData.values()) for (StatsSet festivalDat : currCycleData.values())
{ {
final int festivalCycle = festivalDat.getInteger("cycle"); final int festivalCycle = festivalDat.getInt("cycle");
final int festivalId = festivalDat.getInteger("festivalId"); final int festivalId = festivalDat.getInt("festivalId");
String cabal = festivalDat.getString("cabal"); String cabal = festivalDat.getString("cabal");
// Try to update an existing record. // Try to update an existing record.
statement = con.prepareStatement("UPDATE seven_signs_festival SET date=?, score=?, members=? WHERE cycle=? AND cabal=? AND festivalId=?"); statement = con.prepareStatement("UPDATE seven_signs_festival SET date=?, score=?, members=? WHERE cycle=? AND cabal=? AND festivalId=?");
statement.setLong(1, Long.valueOf(festivalDat.getString("date"))); statement.setLong(1, Long.valueOf(festivalDat.getString("date")));
statement.setInt(2, festivalDat.getInteger("score")); statement.setInt(2, festivalDat.getInt("score"));
statement.setString(3, festivalDat.getString("members")); statement.setString(3, festivalDat.getString("members"));
statement.setInt(4, festivalCycle); statement.setInt(4, festivalCycle);
statement.setString(5, cabal); statement.setString(5, cabal);
@@ -3431,7 +3431,7 @@ public class SevenSignsFestival implements SpawnListener
statement.setString(2, cabal); statement.setString(2, cabal);
statement.setInt(3, festivalCycle); statement.setInt(3, festivalCycle);
statement.setLong(4, Long.valueOf(festivalDat.getString("date"))); statement.setLong(4, Long.valueOf(festivalDat.getString("date")));
statement.setInt(5, festivalDat.getInteger("score")); statement.setInt(5, festivalDat.getInt("score"));
statement.setString(6, festivalDat.getString("members")); statement.setString(6, festivalDat.getString("members"));
statement.execute(); statement.execute();
statement.close(); statement.close();
@@ -3929,7 +3929,7 @@ public class SevenSignsFestival implements SpawnListener
*/ */
public int getHighestScore(int oracle, int festivalId) public int getHighestScore(int oracle, int festivalId)
{ {
return getHighestScoreData(oracle, festivalId).getInteger("score"); return getHighestScoreData(oracle, festivalId).getInt("score");
} }
/** /**
@@ -3978,8 +3978,8 @@ public class SevenSignsFestival implements SpawnListener
{ {
for (StatsSet currFestData : currCycleData.values()) for (StatsSet currFestData : currCycleData.values())
{ {
final int currFestID = currFestData.getInteger("festivalId"); final int currFestID = currFestData.getInt("festivalId");
final int festivalScore = currFestData.getInteger("score"); final int festivalScore = currFestData.getInt("score");
if (currFestID != festivalId) if (currFestID != festivalId)
{ {
@@ -4161,7 +4161,7 @@ public class SevenSignsFestival implements SpawnListener
{ {
if (festivalData.getString("members").contains(playerName)) if (festivalData.getString("members").contains(playerName))
{ {
final int festivalId = festivalData.getInteger("festivalId"); final int festivalId = festivalData.getInt("festivalId");
final int numPartyMembers = festivalData.getString("members").split(",").length; final int numPartyMembers = festivalData.getString("members").split(",").length;
final int totalAccumBonus = _accumulatedBonuses.get(festivalId); final int totalAccumBonus = _accumulatedBonuses.get(festivalId);
@@ -0,0 +1,25 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.interfaces;
/**
* @author UnAfraid
*/
public interface IDeletable
{
boolean deleteMe();
}
@@ -0,0 +1,48 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.interfaces;
import java.time.Duration;
/**
* More advanced interface for parsers.<br>
* Allows usage of get methods without fall back value.<br>
* @author xban1x
*/
public interface IParserAdvUtils extends IParserUtils
{
boolean getBoolean(String key);
byte getByte(String key);
short getShort(String key);
int getInt(String key);
long getLong(String key);
float getFloat(String key);
double getDouble(String key);
String getString(String key);
Duration getDuration(String key);
<T extends Enum<T>> T getEnum(String key, Class<T> clazz);
}
@@ -0,0 +1,47 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.interfaces;
import java.time.Duration;
/**
* Simple interface for parser, enforces of a fall back value.<br>
* More suitable for developers not sure about their data.<br>
* @author xban1x
*/
public interface IParserUtils
{
boolean getBoolean(String key, boolean defaultValue);
byte getByte(String key, byte defaultValue);
short getShort(String key, short defaultValue);
int getInt(String key, int defaultValue);
long getLong(String key, long defaultValue);
float getFloat(String key, float defaultValue);
double getDouble(String key, double defaultValue);
String getString(String key, String defaultValue);
Duration getDuration(String key, Duration defaultValue);
<T extends Enum<T>> T getEnum(String key, Class<T> clazz, T defaultValue);
}
@@ -16,63 +16,70 @@
*/ */
package org.l2jmobius.gameserver.model.variables; package org.l2jmobius.gameserver.model.variables;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.interfaces.IDeletable;
import org.l2jmobius.gameserver.model.interfaces.IRestorable; import org.l2jmobius.gameserver.model.interfaces.IRestorable;
import org.l2jmobius.gameserver.model.interfaces.IStorable; import org.l2jmobius.gameserver.model.interfaces.IStorable;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* @author UnAfraid * @author UnAfraid
*/ */
public abstract class AbstractVariables extends StatsSet implements IRestorable, IStorable public abstract class AbstractVariables extends StatsSet implements IRestorable, IStorable, IDeletable
{ {
private final AtomicBoolean _hasChanges = new AtomicBoolean(false); private final AtomicBoolean _hasChanges = new AtomicBoolean(false);
public AbstractVariables()
{
super(new ConcurrentHashMap<>());
}
/** /**
* Overriding following methods to prevent from doing useless database operations if there is no changes since player's login. * Overriding following methods to prevent from doing useless database operations if there is no changes since player's login.
*/ */
@Override @Override
public void set(String name, boolean value) public StatsSet set(String name, boolean value)
{ {
_hasChanges.compareAndSet(false, true); _hasChanges.compareAndSet(false, true);
super.set(name, value); return super.set(name, value);
} }
@Override @Override
public void set(String name, double value) public StatsSet set(String name, double value)
{ {
_hasChanges.compareAndSet(false, true); _hasChanges.compareAndSet(false, true);
super.set(name, value); return super.set(name, value);
} }
@Override @Override
public void set(String name, Enum<?> value) public StatsSet set(String name, Enum<?> value)
{ {
_hasChanges.compareAndSet(false, true); _hasChanges.compareAndSet(false, true);
super.set(name, value); return super.set(name, value);
} }
@Override @Override
public void set(String name, int value) public StatsSet set(String name, int value)
{ {
_hasChanges.compareAndSet(false, true); _hasChanges.compareAndSet(false, true);
super.set(name, value); return super.set(name, value);
} }
@Override @Override
public void set(String name, long value) public StatsSet set(String name, long value)
{ {
_hasChanges.compareAndSet(false, true); _hasChanges.compareAndSet(false, true);
super.set(name, value); return super.set(name, value);
} }
@Override @Override
public void set(String name, String value) public StatsSet set(String name, String value)
{ {
_hasChanges.compareAndSet(false, true); _hasChanges.compareAndSet(false, true);
super.set(name, value); return super.set(name, value);
} }
/** /**
@@ -108,6 +115,7 @@ public abstract class AbstractVariables extends StatsSet implements IRestorable,
* Removes variable * Removes variable
* @param name * @param name
*/ */
@Override
public void remove(String name) public void remove(String name)
{ {
_hasChanges.compareAndSet(false, true); _hasChanges.compareAndSet(false, true);
@@ -116,4 +116,27 @@ public class AccountVariables extends AbstractVariables
} }
return true; return true;
} }
@Override
public boolean deleteMe()
{
try (Connection con = DatabaseFactory.getConnection())
{
// Clear previous entries.
try (PreparedStatement st = con.prepareStatement(DELETE_QUERY))
{
st.setString(1, _accountName);
st.execute();
}
// Clear all entries
getSet().clear();
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + _accountName, e);
return false;
}
return true;
}
} }
@@ -119,6 +119,29 @@ public class PlayerVariables extends AbstractVariables
return true; return true;
} }
@Override
public boolean deleteMe()
{
try (Connection con = DatabaseFactory.getConnection())
{
// Clear previous entries.
try (PreparedStatement st = con.prepareStatement(DELETE_QUERY))
{
st.setInt(1, _objectId);
st.execute();
}
// Clear all entries
getSet().clear();
}
catch (Exception e)
{
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't delete variables for: " + getPlayer(), e);
return false;
}
return true;
}
public PlayerInstance getPlayer() public PlayerInstance getPlayer()
{ {
return World.getInstance().getPlayer(_objectId); return World.getInstance().getPlayer(_objectId);
@@ -31,10 +31,9 @@ import org.l2jmobius.commons.crypt.nProtect;
import org.l2jmobius.commons.crypt.nProtect.RestrictionType; import org.l2jmobius.commons.crypt.nProtect.RestrictionType;
import org.l2jmobius.gameserver.GameTimeController; import org.l2jmobius.gameserver.GameTimeController;
import org.l2jmobius.gameserver.communitybbs.Manager.MailBBSManager; import org.l2jmobius.gameserver.communitybbs.Manager.MailBBSManager;
import org.l2jmobius.gameserver.datatables.GmListTable;
import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.datatables.csv.MapRegionTable; import org.l2jmobius.gameserver.datatables.csv.MapRegionTable;
import org.l2jmobius.gameserver.datatables.sql.AdminCommandAccessRights; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.handler.custom.CustomWorldHandler; import org.l2jmobius.gameserver.handler.custom.CustomWorldHandler;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.ClanHallManager; import org.l2jmobius.gameserver.instancemanager.ClanHallManager;
@@ -588,7 +587,7 @@ public class EnterWorld extends GameClientPacket
{ {
gmStartupProcess: gmStartupProcess:
{ {
if (Config.GM_STARTUP_BUILDER_HIDE && AdminCommandAccessRights.getInstance().hasAccess("admin_hide", player.getAccessLevel())) if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
{ {
player.setInRefusalMode(true); player.setInRefusalMode(true);
player.setIsInvul(true); player.setIsInvul(true);
@@ -602,28 +601,28 @@ public class EnterWorld extends GameClientPacket
break gmStartupProcess; break gmStartupProcess;
} }
if (Config.GM_STARTUP_INVULNERABLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invul", player.getAccessLevel())) if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
{ {
player.setIsInvul(true); player.setIsInvul(true);
} }
if (Config.GM_STARTUP_INVISIBLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invisible", player.getAccessLevel())) if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
{ {
player.getAppearance().setInvisible(); player.getAppearance().setInvisible();
} }
if (Config.GM_STARTUP_SILENCE && AdminCommandAccessRights.getInstance().hasAccess("admin_silence", player.getAccessLevel())) if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
{ {
player.setInRefusalMode(true); player.setInRefusalMode(true);
} }
if (Config.GM_STARTUP_AUTO_LIST && AdminCommandAccessRights.getInstance().hasAccess("admin_gmliston", player.getAccessLevel())) if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
{ {
GmListTable.getInstance().addGm(player, false); AdminData.getInstance().addGm(player, false);
} }
else else
{ {
GmListTable.getInstance().addGm(player, true); AdminData.getInstance().addGm(player, true);
} }
} }
@@ -21,7 +21,7 @@ import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.communitybbs.CommunityBoard; import org.l2jmobius.gameserver.communitybbs.CommunityBoard;
import org.l2jmobius.gameserver.datatables.sql.AdminCommandAccessRights; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.handler.AdminCommandHandler; import org.l2jmobius.gameserver.handler.AdminCommandHandler;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.handler.custom.CustomBypassHandler; import org.l2jmobius.gameserver.handler.custom.CustomBypassHandler;
@@ -97,7 +97,7 @@ public class RequestBypassToServer extends GameClientPacket
return; return;
} }
if (!AdminCommandAccessRights.getInstance().hasAccess(command, player.getAccessLevel())) if (!AdminData.getInstance().hasAccess(command, player.getAccessLevel()))
{ {
player.sendMessage("You don't have the access right to use this command!"); player.sendMessage("You don't have the access right to use this command!");
return; return;
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.GmListTable; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager; import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -221,7 +221,7 @@ public class RequestDropItem extends GameClientPacket
{ {
final String msg = "Character (" + player.getName() + ") has dropped (" + dropedItem.getCount() + ")adena at (" + _x + "," + _y + "," + _z + ")"; final String msg = "Character (" + player.getName() + ") has dropped (" + dropedItem.getCount() + ")adena at (" + _x + "," + _y + "," + _z + ")";
LOGGER.warning(msg); LOGGER.warning(msg);
GmListTable.broadcastMessageToGMs(msg); AdminData.broadcastMessageToGMs(msg);
} }
} }
} }
@@ -16,7 +16,7 @@
*/ */
package org.l2jmobius.gameserver.network.clientpackets; package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.gameserver.datatables.GmListTable; import org.l2jmobius.gameserver.datatables.xml.AdminData;
/** /**
* This class handles RequestGmLista packet triggered by /gmlist command * This class handles RequestGmLista packet triggered by /gmlist command
@@ -36,6 +36,6 @@ public class RequestGmList extends GameClientPacket
return; return;
} }
GmListTable.getInstance().sendListToPlayer(getClient().getPlayer()); AdminData.getInstance().sendListToPlayer(getClient().getPlayer());
} }
} }
@@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.clientpackets; package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.GmListTable; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.instancemanager.PetitionManager; import org.l2jmobius.gameserver.instancemanager.PetitionManager;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
@@ -48,7 +48,7 @@ public class RequestPetition extends GameClientPacket
return; return;
} }
if (!GmListTable.getInstance().isGmOnline(false)) if (!AdminData.getInstance().isGmOnline(false))
{ {
player.sendPacket(SystemMessageId.NO_GM_PROVIDING_SERVICE_NOW); player.sendPacket(SystemMessageId.NO_GM_PROVIDING_SERVICE_NOW);
return; return;
@@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.clientpackets; package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.GmListTable; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.instancemanager.PetitionManager; import org.l2jmobius.gameserver.instancemanager.PetitionManager;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
@@ -70,7 +70,7 @@ public class RequestPetitionCancel extends GameClientPacket
// Notify all GMs that the player's pending petition has been cancelled. // Notify all GMs that the player's pending petition has been cancelled.
final String msgContent = player.getName() + " has canceled a pending petition."; final String msgContent = player.getName() + " has canceled a pending petition.";
GmListTable.broadcastToGMs(new CreatureSay(player.getObjectId(), 17, "Petition System", msgContent)); AdminData.broadcastToGMs(new CreatureSay(player.getObjectId(), 17, "Petition System", msgContent));
} }
else else
{ {
@@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.sql.AdminCommandAccessRights; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.handler.AdminCommandHandler; import org.l2jmobius.gameserver.handler.AdminCommandHandler;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -52,7 +52,7 @@ public class SendBypassBuildCmd extends GameClientPacket
} }
// Checks The Access and notify requester if requester access it not allowed for that command // Checks The Access and notify requester if requester access it not allowed for that command
if (!AdminCommandAccessRights.getInstance().hasAccess(_command, player.getAccessLevel())) if (!AdminData.getInstance().hasAccess(_command, player.getAccessLevel()))
{ {
player.sendMessage("You don't have the access right to use this command!"); player.sendMessage("You don't have the access right to use this command!");
LOGGER.warning("Character " + player.getName() + " tried to use admin command " + _command + ", but doesn't have access to it!"); LOGGER.warning("Character " + player.getName() + " tried to use admin command " + _command + ", but doesn't have access to it!");
@@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.gameserver.datatables.AccessLevel; import org.l2jmobius.gameserver.datatables.AccessLevel;
import org.l2jmobius.gameserver.datatables.sql.AccessLevels; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.FortManager; import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.SiegeClan; import org.l2jmobius.gameserver.model.SiegeClan;
@@ -40,7 +40,7 @@ public class Die extends GameServerPacket
private final boolean _fake; private final boolean _fake;
private boolean _sweepable; private boolean _sweepable;
private boolean _canTeleport; private boolean _canTeleport;
private AccessLevel _access = AccessLevels.getInstance()._userAccessLevel; private AccessLevel _access = AdminData.getInstance()._userAccessLevel;
private org.l2jmobius.gameserver.model.clan.Clan _clan; private org.l2jmobius.gameserver.model.clan.Clan _clan;
Creature _creature; Creature _creature;
@@ -18,9 +18,9 @@ package org.l2jmobius.gameserver.network.serverpackets;
import java.util.Map; import java.util.Map;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.entity.Hero; import org.l2jmobius.gameserver.model.entity.Hero;
import org.l2jmobius.gameserver.model.entity.olympiad.Olympiad; import org.l2jmobius.gameserver.model.entity.olympiad.Olympiad;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* Format: (ch) d [SdSdSdd] d: size [ S: hero name d: hero class ID S: hero clan name d: hero clan crest id S: hero ally name d: hero Ally id d: count ] * Format: (ch) d [SdSdSdd] d: size [ S: hero name d: hero class ID S: hero clan name d: hero clan crest id S: hero ally name d: hero Ally id d: count ]
@@ -50,12 +50,12 @@ public class ExHeroList extends GameServerPacket
{ {
final StatsSet hero = _heroList.get(heroId); final StatsSet hero = _heroList.get(heroId);
writeS(hero.getString(Olympiad.CHAR_NAME)); writeS(hero.getString(Olympiad.CHAR_NAME));
writeD(hero.getInteger(Olympiad.CLASS_ID)); writeD(hero.getInt(Olympiad.CLASS_ID));
writeS(hero.getString(Hero.CLAN_NAME, "")); writeS(hero.getString(Hero.CLAN_NAME, ""));
writeD(hero.getInteger(Hero.CLAN_CREST, 0)); writeD(hero.getInt(Hero.CLAN_CREST, 0));
writeS(hero.getString(Hero.ALLY_NAME, "")); writeS(hero.getString(Hero.ALLY_NAME, ""));
writeD(hero.getInteger(Hero.ALLY_CREST, 0)); writeD(hero.getInt(Hero.ALLY_CREST, 0));
writeD(hero.getInteger(Hero.COUNT)); writeD(hero.getInt(Hero.COUNT));
} }
} }
} }
@@ -16,11 +16,11 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSigns; import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSigns;
import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSignsFestival; import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSignsFestival;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* Seven Signs Record Update packet type id 0xf5 format: c cc (Page Num = 1 -> 4, period) 1: [ddd cc dd ddd c ddd c] 2: [hc [cd (dc (S))] 3: [ccc (cccc)] 4: [(cchh)] * Seven Signs Record Update packet type id 0xf5 format: c cc (Page Num = 1 -> 4, period) 1: [ddd cc dd ddd c ddd c] 2: [hc [cd (dc (S))] 3: [ccc (cccc)] 4: [(cchh)]
@@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.skills.handlers; package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
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;
@@ -24,7 +25,6 @@ import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.EtcStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.EtcStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.skills.effects.EffectCharge; import org.l2jmobius.gameserver.skills.effects.EffectCharge;
import org.l2jmobius.gameserver.templates.StatsSet;
public class SkillCharge extends Skill public class SkillCharge extends Skill
{ {
@@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
@@ -28,7 +29,6 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.skills.BaseStats; import org.l2jmobius.gameserver.skills.BaseStats;
import org.l2jmobius.gameserver.skills.Formulas; import org.l2jmobius.gameserver.skills.Formulas;
import org.l2jmobius.gameserver.skills.effects.EffectCharge; import org.l2jmobius.gameserver.skills.effects.EffectCharge;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.item.WeaponType; import org.l2jmobius.gameserver.templates.item.WeaponType;
public class SkillChargeDmg extends Skill public class SkillChargeDmg extends Skill
@@ -39,7 +39,7 @@ public class SkillChargeDmg extends Skill
public SkillChargeDmg(StatsSet set) public SkillChargeDmg(StatsSet set)
{ {
super(set); super(set);
chargeSkillId = set.getInteger("charge_skill_id"); chargeSkillId = set.getInt("charge_skill_id");
} }
@Override @Override
@@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.skills.handlers; package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
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;
@@ -24,7 +25,6 @@ import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.EtcStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.EtcStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.skills.effects.EffectCharge; import org.l2jmobius.gameserver.skills.effects.EffectCharge;
import org.l2jmobius.gameserver.templates.StatsSet;
public class SkillChargeEffect extends Skill public class SkillChargeEffect extends Skill
{ {
@@ -33,7 +33,7 @@ public class SkillChargeEffect extends Skill
public SkillChargeEffect(StatsSet set) public SkillChargeEffect(StatsSet set)
{ {
super(set); super(set);
chargeSkillId = set.getInteger("charge_skill_id"); chargeSkillId = set.getInt("charge_skill_id");
} }
@Override @Override
@@ -16,9 +16,12 @@
*/ */
package org.l2jmobius.gameserver.skills.handlers; package org.l2jmobius.gameserver.skills.handlers;
import java.util.List;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.idfactory.IdFactory; import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
@@ -26,23 +29,22 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ItemList; import org.l2jmobius.gameserver.network.serverpackets.ItemList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* @author Nemesiss * @author Nemesiss
*/ */
public class SkillCreateItem extends Skill public class SkillCreateItem extends Skill
{ {
private final int[] _createItemId; private final List<Integer> _createItemId;
private final int _createItemCount; private final int _createItemCount;
private final int _randomCount; private final int _randomCount;
public SkillCreateItem(StatsSet set) public SkillCreateItem(StatsSet set)
{ {
super(set); super(set);
_createItemId = set.getIntegerArray("create_item_id"); _createItemId = set.getList("create_item_id", Integer.class);
_createItemCount = set.getInteger("create_item_count", 0); _createItemCount = set.getInt("create_item_count", 0);
_randomCount = set.getInteger("random_count", 1); _randomCount = set.getInt("random_count", 1);
} }
@Override @Override
@@ -61,8 +63,8 @@ public class SkillCreateItem extends Skill
if (creature instanceof PlayerInstance) if (creature instanceof PlayerInstance)
{ {
final int count = _createItemCount * (Rnd.get(_randomCount) + 1); final int count = _createItemCount * (Rnd.get(_randomCount) + 1);
final int rndid = Rnd.get(_createItemId.length); final int rndId = Rnd.get(_createItemId.size());
giveItems(player, _createItemId[rndid], count); giveItems(player, _createItemId.get(rndId), count);
} }
} }
@@ -17,12 +17,12 @@
package org.l2jmobius.gameserver.skills.handlers; package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
public class SkillDefault extends Skill public class SkillDefault extends Skill
{ {
@@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.CubicInstance; import org.l2jmobius.gameserver.model.actor.instance.CubicInstance;
@@ -27,7 +28,6 @@ import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.StatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.StatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.skills.Formulas; import org.l2jmobius.gameserver.skills.Formulas;
import org.l2jmobius.gameserver.templates.StatsSet;
public class SkillDrain extends Skill public class SkillDrain extends Skill
{ {
@@ -40,7 +40,7 @@ public class SkillDrain extends Skill
super(set); super(set);
_absorbPart = set.getFloat("absorbPart", 0.f); _absorbPart = set.getFloat("absorbPart", 0.f);
_absorbAbs = set.getInteger("absorbAbs", 0); _absorbAbs = set.getInt("absorbAbs", 0);
} }
@Override @Override
@@ -18,12 +18,12 @@ package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.skills.Formulas; import org.l2jmobius.gameserver.skills.Formulas;
import org.l2jmobius.gameserver.templates.StatsSet;
public class SkillElemental extends Skill public class SkillElemental extends Skill
{ {
@@ -35,11 +35,11 @@ public class SkillElemental extends Skill
super(set); super(set);
_seeds = new int[3]; _seeds = new int[3];
_seeds[0] = set.getInteger("seed1", 0); _seeds[0] = set.getInt("seed1", 0);
_seeds[1] = set.getInteger("seed2", 0); _seeds[1] = set.getInt("seed2", 0);
_seeds[2] = set.getInteger("seed3", 0); _seeds[2] = set.getInt("seed3", 0);
if (set.getInteger("seed_any", 0) == 1) if (set.getInt("seed_any", 0) == 1)
{ {
_seedAny = true; _seedAny = true;
} }
@@ -18,10 +18,10 @@ package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.skills.effects.EffectSeed; import org.l2jmobius.gameserver.skills.effects.EffectSeed;
import org.l2jmobius.gameserver.templates.StatsSet;
public class SkillSeed extends Skill public class SkillSeed extends Skill
{ {
@@ -20,12 +20,12 @@ import org.l2jmobius.gameserver.datatables.sql.NpcTable;
import org.l2jmobius.gameserver.idfactory.IdFactory; import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.EffectPointInstance; import org.l2jmobius.gameserver.model.actor.instance.EffectPointInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
public class SkillSignet extends Skill public class SkillSignet extends Skill
@@ -36,8 +36,8 @@ public class SkillSignet extends Skill
public SkillSignet(StatsSet set) public SkillSignet(StatsSet set)
{ {
super(set); super(set);
_effectNpcId = set.getInteger("effectNpcId", -1); _effectNpcId = set.getInt("effectNpcId", -1);
effectId = set.getInteger("effectId", -1); effectId = set.getInt("effectId", -1);
} }
@Override @Override
@@ -17,9 +17,9 @@
package org.l2jmobius.gameserver.skills.handlers; package org.l2jmobius.gameserver.skills.handlers;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.templates.StatsSet;
public class SkillSignetCasttime extends Skill public class SkillSignetCasttime extends Skill
{ {
@@ -29,8 +29,8 @@ public class SkillSignetCasttime extends Skill
public SkillSignetCasttime(StatsSet set) public SkillSignetCasttime(StatsSet set)
{ {
super(set); super(set);
_effectNpcId = set.getInteger("effectNpcId", -1); _effectNpcId = set.getInt("effectNpcId", -1);
effectId = set.getInteger("effectId", -1); effectId = set.getInt("effectId", -1);
} }
@Override @Override
@@ -21,6 +21,7 @@ import org.l2jmobius.gameserver.datatables.sql.NpcTable;
import org.l2jmobius.gameserver.datatables.xml.ExperienceData; import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
import org.l2jmobius.gameserver.idfactory.IdFactory; import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -32,7 +33,6 @@ import org.l2jmobius.gameserver.model.actor.instance.SummonInstance;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.PetInfo; import org.l2jmobius.gameserver.network.serverpackets.PetInfo;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate; import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
public class SkillSummon extends Skill public class SkillSummon extends Skill
@@ -56,21 +56,21 @@ public class SkillSummon extends Skill
{ {
super(set); super(set);
_npcId = set.getInteger("npcId", 0); // default for undescribed skills _npcId = set.getInt("npcId", 0); // default for undescribed skills
_expPenalty = set.getFloat("expPenalty", 0.f); _expPenalty = set.getFloat("expPenalty", 0.f);
_isCubic = set.getBool("isCubic", false); _isCubic = set.getBoolean("isCubic", false);
_activationtime = set.getInteger("activationtime", 8); _activationtime = set.getInt("activationtime", 8);
_activationchance = set.getInteger("activationchance", 30); _activationchance = set.getInt("activationchance", 30);
_summonTotalLifeTime = set.getInteger("summonTotalLifeTime", 1200000); // 20 minutes default _summonTotalLifeTime = set.getInt("summonTotalLifeTime", 1200000); // 20 minutes default
_summonTimeLostIdle = set.getInteger("summonTimeLostIdle", 0); _summonTimeLostIdle = set.getInt("summonTimeLostIdle", 0);
_summonTimeLostActive = set.getInteger("summonTimeLostActive", 0); _summonTimeLostActive = set.getInt("summonTimeLostActive", 0);
_itemConsumeOT = set.getInteger("itemConsumeCountOT", 0); _itemConsumeOT = set.getInt("itemConsumeCountOT", 0);
_itemConsumeIdOT = set.getInteger("itemConsumeIdOT", 0); _itemConsumeIdOT = set.getInt("itemConsumeIdOT", 0);
_itemConsumeTime = set.getInteger("itemConsumeTime", 0); _itemConsumeTime = set.getInt("itemConsumeTime", 0);
_itemConsumeSteps = set.getInteger("itemConsumeSteps", 0); _itemConsumeSteps = set.getInt("itemConsumeSteps", 0);
} }
public boolean checkCondition(Creature creature) public boolean checkCondition(Creature creature)
@@ -16,6 +16,8 @@
*/ */
package org.l2jmobius.gameserver.templates; package org.l2jmobius.gameserver.templates;
import org.l2jmobius.gameserver.model.StatsSet;
/** /**
* This class represents a Newbie Helper Buff Author: Ayor * This class represents a Newbie Helper Buff Author: Ayor
*/ */
@@ -46,10 +48,10 @@ public class HelperBuff
*/ */
public HelperBuff(StatsSet set) public HelperBuff(StatsSet set)
{ {
_lowerLevel = set.getInteger("lowerLevel"); _lowerLevel = set.getInt("lowerLevel");
_upperLevel = set.getInteger("upperLevel"); _upperLevel = set.getInt("upperLevel");
_skillID = set.getInteger("skillID"); _skillID = set.getInt("skillID");
_skillLevel = set.getInteger("skillLevel"); _skillLevel = set.getInt("skillLevel");
if ("false".equals(set.getString("isMagicClass"))) if ("false".equals(set.getString("isMagicClass")))
{ {
@@ -1,641 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.templates;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
/**
* @author mkizub <BR>
* This class is used in order to have a set of couples (key,value).<BR>
* Methods deployed are accessors to the set (add/get value from its key) and addition of a whole set in the current one.
*/
public class StatsSet
{
private final Logger LOGGER = Logger.getLogger(StatsSet.class.getName());
private final Map<String, Object> _set = new HashMap<>();
/**
* Returns the set of values
* @return HashMap
*/
public Map<String, Object> getSet()
{
return _set;
}
/**
* Add a set of couple values in the current set
* @param newSet : StatsSet pointing out the list of couples to add in the current set
*/
public synchronized void add(StatsSet newSet)
{
final Map<String, Object> newMap = newSet.getSet();
for (String key : newMap.keySet())
{
final Object value = newMap.get(key);
_set.put(key, value);
}
}
/**
* Return the boolean associated to the key put in parameter ("name")
* @param name : String designating the key in the set
* @return boolean : value associated to the key
*/
public synchronized boolean getBool(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("Boolean value required, but not specified");
}
if (val instanceof Boolean)
{
return ((Boolean) val).booleanValue();
}
try
{
return Boolean.parseBoolean((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Boolean value required, but found: " + val);
}
}
/**
* Return the boolean associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : boolean designating the default value if value associated with the key is null
* @return boolean : value of the key
*/
public synchronized boolean getBool(String name, boolean deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (val instanceof Boolean)
{
return ((Boolean) val).booleanValue();
}
try
{
return Boolean.parseBoolean((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Boolean value required, but found: " + val);
}
}
/**
* Returns the int associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : byte designating the default value if value associated with the key is null
* @return byte : value associated to the key
*/
public synchronized byte getByte(String name, byte deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (val instanceof Number)
{
return ((Number) val).byteValue();
}
try
{
return Byte.parseByte((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Byte value required, but found: " + val);
}
}
/**
* Returns the byte associated to the key put in parameter ("name").
* @param name : String designating the key in the set
* @return byte : value associated to the key
*/
public synchronized byte getByte(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("Byte value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).byteValue();
}
try
{
return Byte.parseByte((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Byte value required, but found: " + val);
}
}
/**
* Returns the short associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : short designating the default value if value associated with the key is null
* @return short : value associated to the key
*/
public synchronized short getShort(String name, short deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (val instanceof Number)
{
return ((Number) val).shortValue();
}
try
{
return Short.parseShort((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Short value required, but found: " + val);
}
}
/**
* Returns the short associated to the key put in parameter ("name").
* @param name : String designating the key in the set
* @return short : value associated to the key
*/
public synchronized short getShort(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("Short value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).shortValue();
}
try
{
return Short.parseShort((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Short value required, but found: " + val);
}
}
/**
* Returns the int associated to the key put in parameter ("name").
* @param name : String designating the key in the set
* @return int : value associated to the key
*/
public synchronized int getInteger(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("Integer value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).intValue();
}
try
{
return Integer.parseInt((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val);
}
}
/**
* Returns the int associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : int designating the default value if value associated with the key is null
* @return int : value associated to the key
*/
public synchronized int getInteger(String name, int deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (val instanceof Number)
{
return ((Number) val).intValue();
}
try
{
return Integer.parseInt((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val);
}
}
/**
* Returns the int[] associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @return int[] : value associated to the key
*/
public synchronized int[] getIntegerArray(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new RuntimeException();
}
if (val instanceof Number)
{
final int[] result =
{
((Number) val).intValue()
};
return result;
}
int c = 0;
final String[] vals = ((String) val).split(";");
final int[] result = new int[vals.length];
for (String v : vals)
{
try
{
result[c] = Integer.parseInt(v);
c++;
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val);
}
}
return result;
}
/**
* Returns the long associated to the key put in parameter ("name").
* @param name : String designating the key in the set
* @return long : value associated to the key
*/
public synchronized long getLong(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new RuntimeException();
}
if (val instanceof Number)
{
return ((Number) val).longValue();
}
try
{
return Long.parseLong((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val);
}
}
/**
* Returns the long associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : long designating the default value if value associated with the key is null
* @return long : value associated to the key
*/
public synchronized long getLong(String name, int deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (val instanceof Number)
{
return ((Number) val).longValue();
}
try
{
return Long.parseLong((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Integer value required, but found: " + val);
}
}
/**
* Returns the float associated to the key put in parameter ("name").
* @param name : String designating the key in the set
* @return float : value associated to the key
*/
public synchronized float getFloat(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("Float value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).floatValue();
}
try
{
return (float) Double.parseDouble((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Float value required, but found: " + val);
}
}
/**
* Returns the float associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : float designating the default value if value associated with the key is null
* @return float : value associated to the key
*/
public synchronized float getFloat(String name, float deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (val instanceof Number)
{
return ((Number) val).floatValue();
}
try
{
return (float) Double.parseDouble((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Float value required, but found: " + val);
}
}
/**
* Returns the double associated to the key put in parameter ("name").
* @param name : String designating the key in the set
* @return double : value associated to the key
*/
public synchronized double getDouble(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("Float value required, but not specified");
}
if (val instanceof Number)
{
return ((Number) val).doubleValue();
}
try
{
return Double.parseDouble((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Float value required, but found: " + val);
}
}
/**
* Returns the double associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : float designating the default value if value associated with the key is null
* @return double : value associated to the key
*/
public synchronized double getDouble(String name, float deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (val instanceof Number)
{
return ((Number) val).doubleValue();
}
try
{
return Double.parseDouble((String) val);
}
catch (Exception e)
{
throw new IllegalArgumentException("Float value required, but found: " + val);
}
}
/**
* Returns the String associated to the key put in parameter ("name").
* @param name : String designating the key in the set
* @return String : value associated to the key
*/
public synchronized String getString(String name)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("String value required, but not specified");
}
return String.valueOf(val);
}
/**
* Returns the String associated to the key put in parameter ("name"). If the value associated to the key is null, this method returns the value of the parameter deflt.
* @param name : String designating the key in the set
* @param deflt : String designating the default value if value associated with the key is null
* @return String : value associated to the key
*/
public synchronized String getString(String name, String deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
return String.valueOf(val);
}
/**
* Returns an enumeration of &lt;T&gt; from the set
* @param <T> : Class of the enumeration returned
* @param name : String designating the key in the set
* @param enumClass : Class designating the class of the value associated with the key in the set
* @return Enum<T>
*/
@SuppressWarnings("unchecked")
public synchronized <T extends Enum<T>> T getEnum(String name, Class<T> enumClass)
{
final Object val = _set.get(name);
if (val == null)
{
throw new IllegalArgumentException("Enum value of type " + enumClass.getName() + " required, but not specified");
}
if (enumClass.isInstance(val))
{
return (T) val;
}
try
{
return Enum.valueOf(enumClass, String.valueOf(val));
}
catch (Exception e)
{
throw new IllegalArgumentException("Enum value of type " + enumClass.getName() + "required, but found: " + val);
}
}
/**
* Returns an enumeration of &lt;T&gt; from the set. If the enumeration is empty, the method returns the value of the parameter "deflt".
* @param <T> : Class of the enumeration returned
* @param name : String designating the key in the set
* @param enumClass : Class designating the class of the value associated with the key in the set
* @param deflt : <T> designating the value by default
* @return Enum<T>
*/
@SuppressWarnings("unchecked")
public synchronized <T extends Enum<T>> T getEnum(String name, Class<T> enumClass, T deflt)
{
final Object val = _set.get(name);
if (val == null)
{
return deflt;
}
if (enumClass.isInstance(val))
{
return (T) val;
}
try
{
return Enum.valueOf(enumClass, String.valueOf(val));
}
catch (Exception e)
{
throw new IllegalArgumentException("Enum value of type " + enumClass.getName() + "required, but found: " + val);
}
}
/**
* Add the String hold in param "value" for the key "name"
* @param name : String designating the key in the set
* @param value : String corresponding to the value associated with the key
*/
public synchronized void set(String name, String value)
{
_set.put(name, value);
}
/**
* Add the boolean hold in param "value" for the key "name"
* @param name : String designating the key in the set
* @param value : boolean corresponding to the value associated with the key
*/
public synchronized void set(String name, boolean value)
{
_set.put(name, value);
}
/**
* Add the int hold in param "value" for the key "name"
* @param name : String designating the key in the set
* @param value : int corresponding to the value associated with the key
*/
public synchronized void set(String name, int value)
{
_set.put(name, value);
}
/**
* Add the double hold in param "value" for the key "name"
* @param name : String designating the key in the set
* @param value : double corresponding to the value associated with the key
*/
public synchronized void set(String name, double value)
{
_set.put(name, value);
}
/**
* Add the long hold in param "value" for the key "name"
* @param name : String designating the key in the set
* @param value : double corresponding to the value associated with the key
*/
public synchronized void set(String name, long value)
{
_set.put(name, value);
}
/**
* Add the Enum hold in param "value" for the key "name"
* @param name : String designating the key in the set
* @param value : Enum corresponding to the value associated with the key
*/
public synchronized void set(String name, Enum<?> value)
{
_set.put(name, value);
}
/**
* Safe version of "set". Expected values are within [min, max[<br>
* Add the int hold in param "value" for the key "name".
* @param name : String designating the key in the set
* @param value : int corresponding to the value associated with the key
* @param min
* @param max
* @param reference
*/
public synchronized void safeSet(String name, int value, int min, int max, String reference)
{
assert ((min > max) || ((value >= min) && (value < max)));
if ((min <= max) && ((value < min) || (value >= max)))
{
LOGGER.info("[StatsSet][safeSet] Incorrect value: " + value + "for: " + name + "Ref: " + reference);
}
set(name, value);
}
@Override
public String toString()
{
return "StatsSet [_set=" + _set + "]";
}
}
@@ -16,7 +16,7 @@
*/ */
package org.l2jmobius.gameserver.templates.creatures; package org.l2jmobius.gameserver.templates.creatures;
import org.l2jmobius.gameserver.templates.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
/** /**
* @version $Revision: 1.2.4.6 $ $Date: 2005/04/02 15:57:51 $ * @version $Revision: 1.2.4.6 $ $Date: 2005/04/02 15:57:51 $
@@ -99,72 +99,72 @@ public class CreatureTemplate
public CreatureTemplate(StatsSet set) public CreatureTemplate(StatsSet set)
{ {
// Base stats // Base stats
baseSTR = set.getInteger("baseSTR"); baseSTR = set.getInt("baseSTR");
baseCON = set.getInteger("baseCON"); baseCON = set.getInt("baseCON");
baseDEX = set.getInteger("baseDEX"); baseDEX = set.getInt("baseDEX");
baseINT = set.getInteger("baseINT"); baseINT = set.getInt("baseINT");
baseWIT = set.getInteger("baseWIT"); baseWIT = set.getInt("baseWIT");
baseMEN = set.getInteger("baseMEN"); baseMEN = set.getInt("baseMEN");
baseHpMax = set.getFloat("baseHpMax"); baseHpMax = set.getFloat("baseHpMax");
baseCpMax = set.getFloat("baseCpMax"); baseCpMax = set.getFloat("baseCpMax");
baseMpMax = set.getFloat("baseMpMax"); baseMpMax = set.getFloat("baseMpMax");
baseHpReg = set.getFloat("baseHpReg"); baseHpReg = set.getFloat("baseHpReg");
baseMpReg = set.getFloat("baseMpReg"); baseMpReg = set.getFloat("baseMpReg");
basePAtk = set.getInteger("basePAtk"); basePAtk = set.getInt("basePAtk");
baseMAtk = set.getInteger("baseMAtk"); baseMAtk = set.getInt("baseMAtk");
basePDef = set.getInteger("basePDef"); basePDef = set.getInt("basePDef");
baseMDef = set.getInteger("baseMDef"); baseMDef = set.getInt("baseMDef");
basePAtkSpd = set.getInteger("basePAtkSpd"); basePAtkSpd = set.getInt("basePAtkSpd");
baseMAtkSpd = set.getInteger("baseMAtkSpd"); baseMAtkSpd = set.getInt("baseMAtkSpd");
baseMReuseRate = set.getFloat("baseMReuseDelay", 1.f); baseMReuseRate = set.getFloat("baseMReuseDelay", 1.f);
baseShldDef = set.getInteger("baseShldDef"); baseShldDef = set.getInt("baseShldDef");
baseAtkRange = set.getInteger("baseAtkRange"); baseAtkRange = set.getInt("baseAtkRange");
baseShldRate = set.getInteger("baseShldRate"); baseShldRate = set.getInt("baseShldRate");
baseCritRate = set.getInteger("baseCritRate"); baseCritRate = set.getInt("baseCritRate");
baseMCritRate = set.getInteger("baseMCritRate", 5); baseMCritRate = set.getInt("baseMCritRate", 5);
baseWalkSpd = set.getInteger("baseWalkSpd"); baseWalkSpd = set.getInt("baseWalkSpd");
baseRunSpd = set.getInteger("baseRunSpd"); baseRunSpd = set.getInt("baseRunSpd");
// SpecialStats // SpecialStats
baseBreath = set.getInteger("baseBreath", 100); baseBreath = set.getInt("baseBreath", 100);
baseAggression = set.getInteger("baseAggression", 0); baseAggression = set.getInt("baseAggression", 0);
baseBleed = set.getInteger("baseBleed", 0); baseBleed = set.getInt("baseBleed", 0);
basePoison = set.getInteger("basePoison", 0); basePoison = set.getInt("basePoison", 0);
baseStun = set.getInteger("baseStun", 0); baseStun = set.getInt("baseStun", 0);
baseRoot = set.getInteger("baseRoot", 0); baseRoot = set.getInt("baseRoot", 0);
baseMovement = set.getInteger("baseMovement", 0); baseMovement = set.getInt("baseMovement", 0);
baseConfusion = set.getInteger("baseConfusion", 0); baseConfusion = set.getInt("baseConfusion", 0);
baseSleep = set.getInteger("baseSleep", 0); baseSleep = set.getInt("baseSleep", 0);
baseFire = set.getInteger("baseFire", 0); baseFire = set.getInt("baseFire", 0);
baseWind = set.getInteger("baseWind", 0); baseWind = set.getInt("baseWind", 0);
baseWater = set.getInteger("baseWater", 0); baseWater = set.getInt("baseWater", 0);
baseEarth = set.getInteger("baseEarth", 0); baseEarth = set.getInt("baseEarth", 0);
baseHoly = set.getInteger("baseHoly", 0); baseHoly = set.getInt("baseHoly", 0);
baseDark = set.getInteger("baseDark", 0); baseDark = set.getInt("baseDark", 0);
baseAggressionVuln = set.getInteger("baseAaggressionVuln", 1); baseAggressionVuln = set.getInt("baseAaggressionVuln", 1);
baseBleedVuln = set.getInteger("baseBleedVuln", 1); baseBleedVuln = set.getInt("baseBleedVuln", 1);
basePoisonVuln = set.getInteger("basePoisonVuln", 1); basePoisonVuln = set.getInt("basePoisonVuln", 1);
baseStunVuln = set.getInteger("baseStunVuln", 1); baseStunVuln = set.getInt("baseStunVuln", 1);
baseRootVuln = set.getInteger("baseRootVuln", 1); baseRootVuln = set.getInt("baseRootVuln", 1);
baseMovementVuln = set.getInteger("baseMovementVuln", 1); baseMovementVuln = set.getInt("baseMovementVuln", 1);
baseConfusionVuln = set.getInteger("baseConfusionVuln", 1); baseConfusionVuln = set.getInt("baseConfusionVuln", 1);
baseSleepVuln = set.getInteger("baseSleepVuln", 1); baseSleepVuln = set.getInt("baseSleepVuln", 1);
baseFireVuln = set.getInteger("baseFireVuln", 1); baseFireVuln = set.getInt("baseFireVuln", 1);
baseWindVuln = set.getInteger("baseWindVuln", 1); baseWindVuln = set.getInt("baseWindVuln", 1);
baseWaterVuln = set.getInteger("baseWaterVuln", 1); baseWaterVuln = set.getInt("baseWaterVuln", 1);
baseEarthVuln = set.getInteger("baseEarthVuln", 1); baseEarthVuln = set.getInt("baseEarthVuln", 1);
baseHolyVuln = set.getInteger("baseHolyVuln", 1); baseHolyVuln = set.getInt("baseHolyVuln", 1);
baseDarkVuln = set.getInteger("baseDarkVuln", 1); baseDarkVuln = set.getInt("baseDarkVuln", 1);
baseCritVuln = set.getInteger("baseCritVuln", 1); baseCritVuln = set.getInt("baseCritVuln", 1);
isUndead = set.getInteger("isUndead", 0) == 1; isUndead = set.getInt("isUndead", 0) == 1;
// C4 Stats // C4 Stats
baseMpConsumeRate = set.getInteger("baseMpConsumeRate", 0); baseMpConsumeRate = set.getInt("baseMpConsumeRate", 0);
baseHpConsumeRate = set.getInteger("baseHpConsumeRate", 0); baseHpConsumeRate = set.getInt("baseHpConsumeRate", 0);
// Geometry // Geometry
collisionRadius = set.getInteger("collision_radius"); collisionRadius = set.getInt("collision_radius");
collisionHeight = set.getInteger("collision_height"); collisionHeight = set.getInt("collision_height");
} }
} }
@@ -26,10 +26,10 @@ import org.l2jmobius.gameserver.model.DropCategory;
import org.l2jmobius.gameserver.model.DropData; import org.l2jmobius.gameserver.model.DropData;
import org.l2jmobius.gameserver.model.MinionData; import org.l2jmobius.gameserver.model.MinionData;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.base.ClassId; import org.l2jmobius.gameserver.model.base.ClassId;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.skills.Stats; import org.l2jmobius.gameserver.skills.Stats;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* This cl contains all generic data of a Spawn object.<BR> * This cl contains all generic data of a Spawn object.<BR>
@@ -134,21 +134,21 @@ public class NpcTemplate extends CreatureTemplate
public NpcTemplate(StatsSet set, boolean custom) public NpcTemplate(StatsSet set, boolean custom)
{ {
super(set); super(set);
npcId = set.getInteger("npcId"); npcId = set.getInt("npcId");
idTemplate = set.getInteger("idTemplate"); idTemplate = set.getInt("idTemplate");
type = set.getString("type"); type = set.getString("type");
name = set.getString("name"); name = set.getString("name");
serverSideName = set.getBool("serverSideName"); serverSideName = set.getBoolean("serverSideName");
title = set.getString("title"); title = set.getString("title");
serverSideTitle = set.getBool("serverSideTitle"); serverSideTitle = set.getBoolean("serverSideTitle");
sex = set.getString("sex"); sex = set.getString("sex");
level = set.getByte("level"); level = set.getByte("level");
rewardExp = set.getInteger("rewardExp"); rewardExp = set.getInt("rewardExp");
rewardSp = set.getInteger("rewardSp"); rewardSp = set.getInt("rewardSp");
aggroRange = set.getInteger("aggroRange"); aggroRange = set.getInt("aggroRange");
rhand = set.getInteger("rhand"); rhand = set.getInt("rhand");
lhand = set.getInteger("lhand"); lhand = set.getInt("lhand");
armor = set.getInteger("armor"); armor = set.getInt("armor");
final String f = set.getString("factionId", null); final String f = set.getString("factionId", null);
if (f == null) if (f == null)
{ {
@@ -158,8 +158,8 @@ public class NpcTemplate extends CreatureTemplate
{ {
factionId = f.intern(); factionId = f.intern();
} }
factionRange = set.getInteger("factionRange", 0); factionRange = set.getInt("factionRange", 0);
absorbLevel = set.getInteger("absorb_level", 0); absorbLevel = set.getInt("absorb_level", 0);
absorbType = AbsorbCrystalType.valueOf(set.getString("absorb_type")); absorbType = AbsorbCrystalType.valueOf(set.getString("absorb_type"));
_npcStatsSet = set; _npcStatsSet = set;
_custom = custom; _custom = custom;
@@ -20,9 +20,9 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.l2jmobius.gameserver.datatables.xml.ItemTable; import org.l2jmobius.gameserver.datatables.xml.ItemTable;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.base.ClassId; import org.l2jmobius.gameserver.model.base.ClassId;
import org.l2jmobius.gameserver.model.base.Race; import org.l2jmobius.gameserver.model.base.Race;
import org.l2jmobius.gameserver.templates.StatsSet;
import org.l2jmobius.gameserver.templates.item.Item; import org.l2jmobius.gameserver.templates.item.Item;
/** /**
@@ -55,17 +55,17 @@ public class PlayerTemplate extends CreatureTemplate
public PlayerTemplate(StatsSet set) public PlayerTemplate(StatsSet set)
{ {
super(set); super(set);
classId = ClassId.values()[set.getInteger("classId")]; classId = ClassId.values()[set.getInt("classId")];
race = Race.values()[set.getInteger("raceId")]; race = Race.values()[set.getInt("raceId")];
className = set.getString("className"); className = set.getString("className");
_currentCollisionRadius = set.getInteger("collision_radius"); _currentCollisionRadius = set.getInt("collision_radius");
_currentCollisionHeight = set.getInteger("collision_height"); _currentCollisionHeight = set.getInt("collision_height");
spawnX = set.getInteger("spawnX"); spawnX = set.getInt("spawnX");
spawnY = set.getInteger("spawnY"); spawnY = set.getInt("spawnY");
spawnZ = set.getInteger("spawnZ"); spawnZ = set.getInt("spawnZ");
classBaseLevel = set.getInteger("classBaseLevel"); classBaseLevel = set.getInt("classBaseLevel");
lvlHpAdd = set.getFloat("lvlHpAdd"); lvlHpAdd = set.getFloat("lvlHpAdd");
lvlHpMod = set.getFloat("lvlHpMod"); lvlHpMod = set.getFloat("lvlHpMod");
lvlCpAdd = set.getFloat("lvlCpAdd"); lvlCpAdd = set.getFloat("lvlCpAdd");
@@ -21,12 +21,12 @@ import java.util.List;
import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
import org.l2jmobius.gameserver.skills.Env; import org.l2jmobius.gameserver.skills.Env;
import org.l2jmobius.gameserver.skills.funcs.Func; import org.l2jmobius.gameserver.skills.funcs.Func;
import org.l2jmobius.gameserver.skills.funcs.FuncTemplate; import org.l2jmobius.gameserver.skills.funcs.FuncTemplate;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* This class is dedicated to the management of armors. * This class is dedicated to the management of armors.
@@ -55,14 +55,14 @@ public class Armor extends Item
public Armor(ArmorType type, StatsSet set) public Armor(ArmorType type, StatsSet set)
{ {
super(type, set); super(type, set);
_avoidModifier = set.getInteger("avoid_modify"); _avoidModifier = set.getInt("avoid_modify");
_pDef = set.getInteger("p_def"); _pDef = set.getInt("p_def");
_mDef = set.getInteger("m_def"); _mDef = set.getInt("m_def");
_mpBonus = set.getInteger("mp_bonus", 0); _mpBonus = set.getInt("mp_bonus", 0);
_hpBonus = set.getInteger("hp_bonus", 0); _hpBonus = set.getInt("hp_bonus", 0);
final int sId = set.getInteger("item_skill_id"); final int sId = set.getInt("item_skill_id");
final int sLv = set.getInteger("item_skill_lvl"); final int sLv = set.getInt("item_skill_lvl");
if ((sId > 0) && (sLv > 0)) if ((sId > 0) && (sLv > 0))
{ {
_itemSkill = SkillTable.getInstance().getInfo(sId, sLv); _itemSkill = SkillTable.getInstance().getInfo(sId, sLv);
@@ -16,7 +16,7 @@
*/ */
package org.l2jmobius.gameserver.templates.item; package org.l2jmobius.gameserver.templates.item;
import org.l2jmobius.gameserver.templates.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
/** /**
* This class is dedicated to the management of EtcItem. * This class is dedicated to the management of EtcItem.
@@ -16,7 +16,7 @@
*/ */
package org.l2jmobius.gameserver.templates.item; package org.l2jmobius.gameserver.templates.item;
import org.l2jmobius.gameserver.templates.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
public class Henna public class Henna
{ {
@@ -34,17 +34,17 @@ public class Henna
public Henna(StatsSet set) public Henna(StatsSet set)
{ {
symbolId = set.getInteger("symbol_id"); symbolId = set.getInt("symbol_id");
symbolName = ""; // set.getString("symbol_name"); symbolName = ""; // set.getString("symbol_name");
dye = set.getInteger("dye"); dye = set.getInt("dye");
price = set.getInteger("price"); price = set.getInt("price");
amount = set.getInteger("amount"); amount = set.getInt("amount");
statINT = set.getInteger("stat_INT"); statINT = set.getInt("stat_INT");
statSTR = set.getInteger("stat_STR"); statSTR = set.getInt("stat_STR");
statCON = set.getInteger("stat_CON"); statCON = set.getInt("stat_CON");
statMEM = set.getInteger("stat_MEM"); statMEM = set.getInt("stat_MEM");
statDEX = set.getInteger("stat_DEX"); statDEX = set.getInt("stat_DEX");
statWIT = set.getInteger("stat_WIT"); statWIT = set.getInt("stat_WIT");
} }
public int getSymbolId() public int getSymbolId()
@@ -22,13 +22,13 @@ import java.util.List;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
import org.l2jmobius.gameserver.skills.Env; import org.l2jmobius.gameserver.skills.Env;
import org.l2jmobius.gameserver.skills.effects.EffectTemplate; import org.l2jmobius.gameserver.skills.effects.EffectTemplate;
import org.l2jmobius.gameserver.skills.funcs.Func; import org.l2jmobius.gameserver.skills.funcs.Func;
import org.l2jmobius.gameserver.skills.funcs.FuncTemplate; import org.l2jmobius.gameserver.skills.funcs.FuncTemplate;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* This class contains all informations concerning the item (weapon, armor, etc).<BR> * This class contains all informations concerning the item (weapon, armor, etc).<BR>
@@ -163,13 +163,13 @@ public abstract class Item
protected Item(Enum<?> type, StatsSet set) protected Item(Enum<?> type, StatsSet set)
{ {
_type = type; _type = type;
_itemId = set.getInteger("item_id"); _itemId = set.getInt("item_id");
_name = set.getString("name"); _name = set.getString("name");
_type1 = set.getInteger("type1"); // needed for item list (inventory) _type1 = set.getInt("type1"); // needed for item list (inventory)
_type2 = set.getInteger("type2"); // different lists for armor, weapon, etc _type2 = set.getInt("type2"); // different lists for armor, weapon, etc
_weight = set.getInteger("weight"); _weight = set.getInt("weight");
_crystallizable = set.getBool("crystallizable"); _crystallizable = set.getBoolean("crystallizable");
_stackable = set.getBool("stackable", false); _stackable = set.getBoolean("stackable", false);
switch (set.getString("crystal_type", "")) switch (set.getString("crystal_type", ""))
{ {
case "d": case "d":
@@ -203,7 +203,7 @@ public abstract class Item
break; break;
} }
} }
_duration = set.getInteger("duration"); _duration = set.getInt("duration");
switch (set.getString("bodypart", "")) switch (set.getString("bodypart", ""))
{ {
case "chest": case "chest":
@@ -330,12 +330,12 @@ public abstract class Item
} }
} }
_referencePrice = set.getInteger("price"); _referencePrice = set.getInt("price");
_crystalCount = set.getInteger("crystal_count", 0); _crystalCount = set.getInt("crystal_count", 0);
_sellable = set.getBool("sellable", true); _sellable = set.getBoolean("sellable", true);
_dropable = set.getBool("dropable", true); _dropable = set.getBoolean("dropable", true);
_destroyable = set.getBool("destroyable", true); _destroyable = set.getBoolean("destroyable", true);
_tradeable = set.getBool("tradeable", true); _tradeable = set.getBoolean("tradeable", true);
} }
/** /**
@@ -26,6 +26,7 @@ import org.l2jmobius.gameserver.handler.SkillHandler;
import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.Skill.SkillType; import org.l2jmobius.gameserver.model.Skill.SkillType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
@@ -35,7 +36,6 @@ import org.l2jmobius.gameserver.skills.Env;
import org.l2jmobius.gameserver.skills.conditions.ConditionGameChance; import org.l2jmobius.gameserver.skills.conditions.ConditionGameChance;
import org.l2jmobius.gameserver.skills.funcs.Func; import org.l2jmobius.gameserver.skills.funcs.Func;
import org.l2jmobius.gameserver.skills.funcs.FuncTemplate; import org.l2jmobius.gameserver.skills.funcs.FuncTemplate;
import org.l2jmobius.gameserver.templates.StatsSet;
/** /**
* This class is dedicated to the management of weapons. * This class is dedicated to the management of weapons.
@@ -82,37 +82,37 @@ public class Weapon extends Item
public Weapon(WeaponType type, StatsSet set) public Weapon(WeaponType type, StatsSet set)
{ {
super(type, set); super(type, set);
_soulShotCount = set.getInteger("soulshots"); _soulShotCount = set.getInt("soulshots");
_spiritShotCount = set.getInteger("spiritshots"); _spiritShotCount = set.getInt("spiritshots");
_pDam = set.getInteger("p_dam"); _pDam = set.getInt("p_dam");
_rndDam = set.getInteger("rnd_dam"); _rndDam = set.getInt("rnd_dam");
_critical = set.getInteger("critical"); _critical = set.getInt("critical");
_hitModifier = set.getDouble("hit_modify"); _hitModifier = set.getDouble("hit_modify");
_avoidModifier = set.getInteger("avoid_modify"); _avoidModifier = set.getInt("avoid_modify");
_shieldDef = set.getInteger("shield_def"); _shieldDef = set.getInt("shield_def");
_shieldDefRate = set.getDouble("shield_def_rate"); _shieldDefRate = set.getDouble("shield_def_rate");
_atkSpeed = set.getInteger("atk_speed"); _atkSpeed = set.getInt("atk_speed");
_atkReuse = set.getInteger("atk_reuse", type == WeaponType.BOW ? 1500 : 0); _atkReuse = set.getInt("atk_reuse", type == WeaponType.BOW ? 1500 : 0);
_mpConsume = set.getInteger("mp_consume"); _mpConsume = set.getInt("mp_consume");
_mDam = set.getInteger("m_dam"); _mDam = set.getInt("m_dam");
int sId = set.getInteger("item_skill_id"); int sId = set.getInt("item_skill_id");
int sLv = set.getInteger("item_skill_lvl"); int sLv = set.getInt("item_skill_lvl");
if ((sId > 0) && (sLv > 0)) if ((sId > 0) && (sLv > 0))
{ {
_itemSkill = SkillTable.getInstance().getInfo(sId, sLv); _itemSkill = SkillTable.getInstance().getInfo(sId, sLv);
} }
sId = set.getInteger("enchant4_skill_id"); sId = set.getInt("enchant4_skill_id");
sLv = set.getInteger("enchant4_skill_lvl"); sLv = set.getInt("enchant4_skill_lvl");
if ((sId > 0) && (sLv > 0)) if ((sId > 0) && (sLv > 0))
{ {
_enchant4Skill = SkillTable.getInstance().getInfo(sId, sLv); _enchant4Skill = SkillTable.getInstance().getInfo(sId, sLv);
} }
sId = set.getInteger("onCast_skill_id"); sId = set.getInt("onCast_skill_id");
sLv = set.getInteger("onCast_skill_lvl"); sLv = set.getInt("onCast_skill_lvl");
int sCh = set.getInteger("onCast_skill_chance"); int sCh = set.getInt("onCast_skill_chance");
if ((sId > 0) && (sLv > 0) && (sCh > 0)) if ((sId > 0) && (sLv > 0) && (sCh > 0))
{ {
final Skill skill = SkillTable.getInstance().getInfo(sId, sLv); final Skill skill = SkillTable.getInstance().getInfo(sId, sLv);
@@ -120,9 +120,9 @@ public class Weapon extends Item
attachOnCast(skill); attachOnCast(skill);
} }
sId = set.getInteger("onCrit_skill_id"); sId = set.getInt("onCrit_skill_id");
sLv = set.getInteger("onCrit_skill_lvl"); sLv = set.getInt("onCrit_skill_lvl");
sCh = set.getInteger("onCrit_skill_chance"); sCh = set.getInt("onCrit_skill_chance");
if ((sId > 0) && (sLv > 0) && (sCh > 0)) if ((sId > 0) && (sLv > 0) && (sCh > 0))
{ {
final Skill skill = SkillTable.getInstance().getInfo(sId, sLv); final Skill skill = SkillTable.getInstance().getInfo(sId, sLv);
@@ -21,7 +21,7 @@ import java.util.logging.LogRecord;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.GmListTable; import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
/** /**
@@ -81,7 +81,7 @@ public class IllegalPlayerAction implements Runnable
}); });
_logAudit.log(record); _logAudit.log(record);
GmListTable.broadcastMessageToGMs(_message); AdminData.broadcastMessageToGMs(_message);
switch (_punishment) switch (_punishment)
{ {

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