Pet related code corrections and improvements.

This commit is contained in:
MobiusDevelopment 2021-05-22 14:42:07 +00:00
parent d1b8f3fe49
commit 6ebd7458e3
12 changed files with 88 additions and 84 deletions

View File

@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.holders.PetItemHolder;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -86,7 +86,7 @@ public class SummonPet extends AbstractEffect
return;
}
final PlayerPetMetadataHolder evolveData = player.getPetEvolve(collar.getObjectId());
final PetEvolveHolder evolveData = player.getPetEvolve(collar.getObjectId());
final PetData petData = evolveData.getEvolve() == EvolveLevel.None ? PetDataTable.getInstance().getPetDataByEvolve(collar.getId(), evolveData.getEvolve()) : PetDataTable.getInstance().getPetDataByEvolve(collar.getId(), evolveData.getEvolve(), evolveData.getIndex());
if ((petData == null) || (petData.getNpcId() == -1))
{

View File

@ -37,7 +37,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PetInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.instance.ServitorInstance;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -134,7 +134,7 @@ public class CharSummonTable
return;
}
final PlayerPetMetadataHolder evolveData = player.getPetEvolve(item.getObjectId());
final PetEvolveHolder evolveData = player.getPetEvolve(item.getObjectId());
final PetData petData = evolveData.getEvolve() == EvolveLevel.None ? PetDataTable.getInstance().getPetDataByEvolve(item.getId(), evolveData.getEvolve()) : PetDataTable.getInstance().getPetDataByEvolve(item.getId(), evolveData.getEvolve(), evolveData.getIndex());
if (petData == null)
{

View File

@ -24,7 +24,7 @@ import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.model.buylist.Product;
import org.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.items.Item;
import org.l2jmobius.gameserver.model.items.WarehouseItem;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -87,7 +87,7 @@ public class ItemInfo
private Collection<EnsoulOption> _soulCrystalSpecialOptions;
private int _visualId;
private long _visualExpiration;
private PlayerPetMetadataHolder _petData;
private PetEvolveHolder _petData;
/**
* Get all information from ItemInstance to generate ItemInfo.
@ -419,7 +419,7 @@ public class ItemInfo
return _isBlessed;
}
public PlayerPetMetadataHolder getPetData()
public PetEvolveHolder getPetData()
{
return _petData;
}

View File

@ -59,7 +59,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.stat.PetStat;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.itemcontainer.PetInventory;
import org.l2jmobius.gameserver.model.items.Item;
@ -88,25 +88,24 @@ public class PetInstance extends Summon
private static final String ADD_SKILL_SAVE = "INSERT INTO character_pet_skills_save (petObjItemId,skill_id,skill_level,skill_sub_level,remaining_time,buff_index) VALUES (?,?,?,?,?,?)";
private static final String RESTORE_SKILL_SAVE = "SELECT petObjItemId,skill_id,skill_level,skill_sub_level,remaining_time,buff_index FROM character_pet_skills_save WHERE petObjItemId=? ORDER BY buff_index ASC";
private static final String DELETE_SKILL_SAVE = "DELETE FROM character_pet_skills_save WHERE petObjItemId=?";
public final String selectPetSkills = "SELECT * FROM pet_skills WHERE petObjItemId=?";
public final String insertPetSkills = "INSERT INTO pet_skills (petObjItemId, skillId, skillLevel) VALUES (?,?,?) ON DUPLICATE KEY UPDATE skillId=VALUES(skillId), skillLevel=VALUES(skillLevel), petObjItemId=VALUES(petObjItemId)";
public final String deletePetSkills = "DELETE FROM pet_skills WHERE petObjItemId=?";
public final String selectEvolvedPets = "SELECT * FROM pet_evolves WHERE itemObjId=?";
public final String updateEvolvedPets = "REPLACE INTO pet_evolves (`itemObjId`, `index`, `level`) VALUES (?, ?, ?)";
private static final String SELECT_PET_SKILLS = "SELECT * FROM pet_skills WHERE petObjItemId=?";
private static final String INSERT_PET_SKILLS = "INSERT INTO pet_skills (petObjItemId, skillId, skillLevel) VALUES (?,?,?) ON DUPLICATE KEY UPDATE skillId=VALUES(skillId), skillLevel=VALUES(skillLevel), petObjItemId=VALUES(petObjItemId)";
private static final String DELETE_PET_SKILLS = "DELETE FROM pet_skills WHERE petObjItemId=?";
private static final String SELECT_EVOLVED_PETS = "SELECT * FROM pet_evolves WHERE itemObjId=?";
private static final String UPDATE_EVOLVED_PETS = "REPLACE INTO pet_evolves (`itemObjId`, `index`, `level`) VALUES (?, ?, ?)";
private int _curFed;
private final PetInventory _inventory;
private final int _controlObjectId;
private boolean _respawned;
private final boolean _mountable;
private Future<?> _feedTask;
private final int _controlObjectId;
private final PetInventory _inventory;
private boolean _respawned;
private int _curFed;
private int _petType = 0;
private int _curWeightPenalty = 0;
private long _expBeforeDeath = 0;
private PetData _data;
private PetLevelData _leveldata;
private EvolveLevel _evolveLevel = EvolveLevel.None;
private int _petType = 0;
/** The Experience before the last Death Penalty */
private long _expBeforeDeath = 0;
private int _curWeightPenalty = 0;
private Future<?> _feedTask;
private void deletePetEvolved()
{
@ -125,7 +124,7 @@ public class PetInstance extends Summon
public void restorePetEvolvesByItem()
{
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps2 = con.prepareStatement(selectEvolvedPets))
PreparedStatement ps2 = con.prepareStatement(SELECT_EVOLVED_PETS))
{
ps2.setInt(1, _controlObjectId);
try (ResultSet rset = ps2.executeQuery())
@ -146,7 +145,7 @@ public class PetInstance extends Summon
{
deletePetEvolved();
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement stmt = con.prepareStatement(updateEvolvedPets))
PreparedStatement stmt = con.prepareStatement(UPDATE_EVOLVED_PETS))
{
stmt.setInt(1, controlItemObjId);
stmt.setInt(2, index);
@ -157,13 +156,13 @@ public class PetInstance extends Summon
{
e.printStackTrace();
}
getOwner().setPetEvolved(controlItemObjId, new PlayerPetMetadataHolder(index, evolveLevel, getName(), getLevel(), getExpForThisLevel()));
getOwner().setPetEvolve(controlItemObjId, new PetEvolveHolder(index, evolveLevel, getName(), getLevel(), getExpForThisLevel()));
}
public void storePetSkills(int skillId, int skillLevel)
{
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps2 = con.prepareStatement(insertPetSkills))
PreparedStatement ps2 = con.prepareStatement(INSERT_PET_SKILLS))
{
ps2.setInt(1, _controlObjectId);
ps2.setInt(2, skillId);
@ -179,8 +178,8 @@ public class PetInstance extends Summon
public void restoreSkills()
{
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps1 = con.prepareStatement(selectPetSkills);
PreparedStatement ps2 = con.prepareStatement(deletePetSkills))
PreparedStatement ps1 = con.prepareStatement(SELECT_PET_SKILLS);
PreparedStatement ps2 = con.prepareStatement(DELETE_PET_SKILLS))
{
ps1.setInt(1, _controlObjectId);
try (ResultSet rset = ps1.executeQuery())

View File

@ -231,8 +231,8 @@ import org.l2jmobius.gameserver.model.holders.ElementalSpiritDataHolder;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.MovieHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.holders.PlayerEventHolder;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PreparedMultisellListHolder;
import org.l2jmobius.gameserver.model.holders.SellBuffHolder;
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
@ -902,7 +902,7 @@ public class PlayerInstance extends Playable
private PlayerRandomCraft _randomCraft = null;
private final Map<Integer, PlayerPetMetadataHolder> _petEvolves = new HashMap<>();
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
private final List<QuestTimer> _questTimers = new ArrayList<>();
private final List<TimerHolder<?>> _timerHolders = new ArrayList<>();
@ -14571,14 +14571,22 @@ public class PlayerInstance extends Playable
return _randomCraft;
}
public PlayerPetMetadataHolder getPetEvolve(int _controlItemId)
public PetEvolveHolder getPetEvolve(int controlItemId)
{
return _petEvolves.get(_controlItemId) != null ? _petEvolves.get(_controlItemId) : new PlayerPetMetadataHolder(PetDataTable.getInstance().getPetDataByItemId(getInventory().getItemByObjectId(_controlItemId).getId()) == null ? 0 : PetDataTable.getInstance().getPetDataByItemId(getInventory().getItemByObjectId(_controlItemId).getId()).getIndex(), EvolveLevel.None.ordinal(), "", 1, 0L);
final PetEvolveHolder evolve = _petEvolves.get(controlItemId);
if (evolve != null)
{
return evolve;
}
final ItemInstance item = getInventory().getItemByObjectId(controlItemId);
final PetData petData = item == null ? null : PetDataTable.getInstance().getPetDataByItemId(item.getId());
return new PetEvolveHolder(petData == null ? 0 : petData.getIndex(), EvolveLevel.None.ordinal(), "", 1, 0);
}
public Map<Integer, PlayerPetMetadataHolder> getAllPetEvolves()
public void setPetEvolve(int itemObjectId, PetEvolveHolder entry)
{
return _petEvolves;
_petEvolves.put(itemObjectId, entry);
}
public void restorePetEvolvesByItem()
@ -14596,7 +14604,7 @@ public class PlayerInstance extends Playable
final EvolveLevel evolve = EvolveLevel.values()[rset.getInt("evolve")];
if (evolve != null)
{
_petEvolves.put(it.getObjectId(), new PlayerPetMetadataHolder(rset.getInt("index"), rset.getInt("evolve"), rset.getString("name"), rset.getInt("level"), rset.getLong("exp")));
_petEvolves.put(it.getObjectId(), new PetEvolveHolder(rset.getInt("index"), rset.getInt("evolve"), rset.getString("name"), rset.getInt("level"), rset.getLong("exp")));
}
}
}
@ -14607,9 +14615,4 @@ public class PlayerInstance extends Playable
}
});
}
public void setPetEvolved(int itemObjectId, PlayerPetMetadataHolder entry)
{
_petEvolves.put(itemObjectId, entry);
}
}

View File

@ -21,7 +21,7 @@ import org.l2jmobius.gameserver.enums.EvolveLevel;
/**
* Written by Berezkin Nikolay, on 16.05.2021
*/
public class PlayerPetMetadataHolder
public class PetEvolveHolder
{
private final int _index;
private final int _level;
@ -29,7 +29,7 @@ public class PlayerPetMetadataHolder
private final long _exp;
private final String _name;
public PlayerPetMetadataHolder(int index, int evolve, String name, int level, long exp)
public PetEvolveHolder(int index, int evolve, String name, int level, long exp)
{
_index = index;
_evolve = EvolveLevel.values()[evolve];

View File

@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.holders.PetItemHolder;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -86,7 +86,7 @@ public class SummonPet extends AbstractEffect
return;
}
final PlayerPetMetadataHolder evolveData = player.getPetEvolve(collar.getObjectId());
final PetEvolveHolder evolveData = player.getPetEvolve(collar.getObjectId());
final PetData petData = evolveData.getEvolve() == EvolveLevel.None ? PetDataTable.getInstance().getPetDataByEvolve(collar.getId(), evolveData.getEvolve()) : PetDataTable.getInstance().getPetDataByEvolve(collar.getId(), evolveData.getEvolve(), evolveData.getIndex());
if ((petData == null) || (petData.getNpcId() == -1))
{

View File

@ -37,7 +37,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PetInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.instance.ServitorInstance;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -134,7 +134,7 @@ public class CharSummonTable
return;
}
final PlayerPetMetadataHolder evolveData = player.getPetEvolve(item.getObjectId());
final PetEvolveHolder evolveData = player.getPetEvolve(item.getObjectId());
final PetData petData = evolveData.getEvolve() == EvolveLevel.None ? PetDataTable.getInstance().getPetDataByEvolve(item.getId(), evolveData.getEvolve()) : PetDataTable.getInstance().getPetDataByEvolve(item.getId(), evolveData.getEvolve(), evolveData.getIndex());
if (petData == null)
{

View File

@ -24,7 +24,7 @@ import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.model.buylist.Product;
import org.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.items.Item;
import org.l2jmobius.gameserver.model.items.WarehouseItem;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
@ -87,7 +87,7 @@ public class ItemInfo
private Collection<EnsoulOption> _soulCrystalSpecialOptions;
private int _visualId;
private long _visualExpiration;
private PlayerPetMetadataHolder _petData;
private PetEvolveHolder _petData;
/**
* Get all information from ItemInstance to generate ItemInfo.
@ -419,7 +419,7 @@ public class ItemInfo
return _isBlessed;
}
public PlayerPetMetadataHolder getPetData()
public PetEvolveHolder getPetData()
{
return _petData;
}

View File

@ -59,7 +59,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.stat.PetStat;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.itemcontainer.PetInventory;
import org.l2jmobius.gameserver.model.items.Item;
@ -88,25 +88,24 @@ public class PetInstance extends Summon
private static final String ADD_SKILL_SAVE = "INSERT INTO character_pet_skills_save (petObjItemId,skill_id,skill_level,skill_sub_level,remaining_time,buff_index) VALUES (?,?,?,?,?,?)";
private static final String RESTORE_SKILL_SAVE = "SELECT petObjItemId,skill_id,skill_level,skill_sub_level,remaining_time,buff_index FROM character_pet_skills_save WHERE petObjItemId=? ORDER BY buff_index ASC";
private static final String DELETE_SKILL_SAVE = "DELETE FROM character_pet_skills_save WHERE petObjItemId=?";
public final String selectPetSkills = "SELECT * FROM pet_skills WHERE petObjItemId=?";
public final String insertPetSkills = "INSERT INTO pet_skills (petObjItemId, skillId, skillLevel) VALUES (?,?,?) ON DUPLICATE KEY UPDATE skillId=VALUES(skillId), skillLevel=VALUES(skillLevel), petObjItemId=VALUES(petObjItemId)";
public final String deletePetSkills = "DELETE FROM pet_skills WHERE petObjItemId=?";
public final String selectEvolvedPets = "SELECT * FROM pet_evolves WHERE itemObjId=?";
public final String updateEvolvedPets = "REPLACE INTO pet_evolves (`itemObjId`, `index`, `level`) VALUES (?, ?, ?)";
private static final String SELECT_PET_SKILLS = "SELECT * FROM pet_skills WHERE petObjItemId=?";
private static final String INSERT_PET_SKILLS = "INSERT INTO pet_skills (petObjItemId, skillId, skillLevel) VALUES (?,?,?) ON DUPLICATE KEY UPDATE skillId=VALUES(skillId), skillLevel=VALUES(skillLevel), petObjItemId=VALUES(petObjItemId)";
private static final String DELETE_PET_SKILLS = "DELETE FROM pet_skills WHERE petObjItemId=?";
private static final String SELECT_EVOLVED_PETS = "SELECT * FROM pet_evolves WHERE itemObjId=?";
private static final String UPDATE_EVOLVED_PETS = "REPLACE INTO pet_evolves (`itemObjId`, `index`, `level`) VALUES (?, ?, ?)";
private int _curFed;
private final PetInventory _inventory;
private final int _controlObjectId;
private boolean _respawned;
private final boolean _mountable;
private Future<?> _feedTask;
private final int _controlObjectId;
private final PetInventory _inventory;
private boolean _respawned;
private int _curFed;
private int _petType = 0;
private int _curWeightPenalty = 0;
private long _expBeforeDeath = 0;
private PetData _data;
private PetLevelData _leveldata;
private EvolveLevel _evolveLevel = EvolveLevel.None;
private int _petType = 0;
/** The Experience before the last Death Penalty */
private long _expBeforeDeath = 0;
private int _curWeightPenalty = 0;
private Future<?> _feedTask;
private void deletePetEvolved()
{
@ -125,7 +124,7 @@ public class PetInstance extends Summon
public void restorePetEvolvesByItem()
{
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps2 = con.prepareStatement(selectEvolvedPets))
PreparedStatement ps2 = con.prepareStatement(SELECT_EVOLVED_PETS))
{
ps2.setInt(1, _controlObjectId);
try (ResultSet rset = ps2.executeQuery())
@ -146,7 +145,7 @@ public class PetInstance extends Summon
{
deletePetEvolved();
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement stmt = con.prepareStatement(updateEvolvedPets))
PreparedStatement stmt = con.prepareStatement(UPDATE_EVOLVED_PETS))
{
stmt.setInt(1, controlItemObjId);
stmt.setInt(2, index);
@ -157,13 +156,13 @@ public class PetInstance extends Summon
{
e.printStackTrace();
}
getOwner().setPetEvolved(controlItemObjId, new PlayerPetMetadataHolder(index, evolveLevel, getName(), getLevel(), getExpForThisLevel()));
getOwner().setPetEvolve(controlItemObjId, new PetEvolveHolder(index, evolveLevel, getName(), getLevel(), getExpForThisLevel()));
}
public void storePetSkills(int skillId, int skillLevel)
{
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps2 = con.prepareStatement(insertPetSkills))
PreparedStatement ps2 = con.prepareStatement(INSERT_PET_SKILLS))
{
ps2.setInt(1, _controlObjectId);
ps2.setInt(2, skillId);
@ -179,8 +178,8 @@ public class PetInstance extends Summon
public void restoreSkills()
{
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps1 = con.prepareStatement(selectPetSkills);
PreparedStatement ps2 = con.prepareStatement(deletePetSkills))
PreparedStatement ps1 = con.prepareStatement(SELECT_PET_SKILLS);
PreparedStatement ps2 = con.prepareStatement(DELETE_PET_SKILLS))
{
ps1.setInt(1, _controlObjectId);
try (ResultSet rset = ps1.executeQuery())

View File

@ -234,9 +234,9 @@ import org.l2jmobius.gameserver.model.holders.ElementalSpiritDataHolder;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.ItemSkillHolder;
import org.l2jmobius.gameserver.model.holders.MovieHolder;
import org.l2jmobius.gameserver.model.holders.PetEvolveHolder;
import org.l2jmobius.gameserver.model.holders.PlayerCollectionData;
import org.l2jmobius.gameserver.model.holders.PlayerEventHolder;
import org.l2jmobius.gameserver.model.holders.PlayerPetMetadataHolder;
import org.l2jmobius.gameserver.model.holders.PreparedMultisellListHolder;
import org.l2jmobius.gameserver.model.holders.PurgePlayerHolder;
import org.l2jmobius.gameserver.model.holders.SellBuffHolder;
@ -926,7 +926,7 @@ public class PlayerInstance extends Playable
private final Map<Integer, PurgePlayerHolder> _purgePoints = new HashMap<>();
private final Map<Integer, PlayerPetMetadataHolder> _petEvolves = new HashMap<>();
private final Map<Integer, PetEvolveHolder> _petEvolves = new HashMap<>();
private final List<QuestTimer> _questTimers = new ArrayList<>();
private final List<TimerHolder<?>> _timerHolders = new ArrayList<>();
@ -14623,14 +14623,22 @@ public class PlayerInstance extends Playable
return _randomCraft;
}
public PlayerPetMetadataHolder getPetEvolve(int _controlItemId)
public PetEvolveHolder getPetEvolve(int controlItemId)
{
return _petEvolves.get(_controlItemId) != null ? _petEvolves.get(_controlItemId) : new PlayerPetMetadataHolder(PetDataTable.getInstance().getPetDataByItemId(getInventory().getItemByObjectId(_controlItemId).getId()) == null ? 0 : PetDataTable.getInstance().getPetDataByItemId(getInventory().getItemByObjectId(_controlItemId).getId()).getIndex(), EvolveLevel.None.ordinal(), "", 1, 0L);
final PetEvolveHolder evolve = _petEvolves.get(controlItemId);
if (evolve != null)
{
return evolve;
}
final ItemInstance item = getInventory().getItemByObjectId(controlItemId);
final PetData petData = item == null ? null : PetDataTable.getInstance().getPetDataByItemId(item.getId());
return new PetEvolveHolder(petData == null ? 0 : petData.getIndex(), EvolveLevel.None.ordinal(), "", 1, 0);
}
public Map<Integer, PlayerPetMetadataHolder> getAllPetEvolves()
public void setPetEvolve(int itemObjectId, PetEvolveHolder entry)
{
return _petEvolves;
_petEvolves.put(itemObjectId, entry);
}
public void restorePetEvolvesByItem()
@ -14648,7 +14656,7 @@ public class PlayerInstance extends Playable
final EvolveLevel evolve = EvolveLevel.values()[rset.getInt("evolve")];
if (evolve != null)
{
_petEvolves.put(it.getObjectId(), new PlayerPetMetadataHolder(rset.getInt("index"), rset.getInt("evolve"), rset.getString("name"), rset.getInt("level"), rset.getLong("exp")));
_petEvolves.put(it.getObjectId(), new PetEvolveHolder(rset.getInt("index"), rset.getInt("evolve"), rset.getString("name"), rset.getInt("level"), rset.getLong("exp")));
}
}
}
@ -14660,11 +14668,6 @@ public class PlayerInstance extends Playable
});
}
public void setPetEvolved(int itemObjectId, PlayerPetMetadataHolder entry)
{
_petEvolves.put(itemObjectId, entry);
}
public List<PlayerCollectionData> getCollections()
{
return _collections;

View File

@ -21,7 +21,7 @@ import org.l2jmobius.gameserver.enums.EvolveLevel;
/**
* Written by Berezkin Nikolay, on 16.05.2021
*/
public class PlayerPetMetadataHolder
public class PetEvolveHolder
{
private final int _index;
private final int _level;
@ -29,7 +29,7 @@ public class PlayerPetMetadataHolder
private final long _exp;
private final String _name;
public PlayerPetMetadataHolder(int index, int evolve, String name, int level, long exp)
public PetEvolveHolder(int index, int evolve, String name, int level, long exp)
{
_index = index;
_evolve = EvolveLevel.values()[evolve];