Я дал уже исправленный мною файл, древо ифов выше в теме.
Код:
package l2p.gameserver.data.xml.holder;
import gnu.trove.map.hash.TIntObjectHashMap;
import l2p.commons.data.xml.AbstractHolder;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.base.Race;
import l2p.gameserver.model.base.Sex;
import l2p.gameserver.model.beautyshop.BeautyShopSet;
public final class BeautyShopHolder extends AbstractHolder
{
private static final BeautyShopHolder _instance = new BeautyShopHolder();
private static final TIntObjectHashMap<BeautyShopSet> _sets = new TIntObjectHashMap<BeautyShopSet>();
public static BeautyShopHolder getInstance()
{
return _instance;
}
public void addSet(BeautyShopSet set)
{
if (_sets.containsKey(set.getId()))
warn("Duplicate set declaration, set id - " + set.getId());
_sets.put(set.getId(), set);
}
public BeautyShopSet getSet(int id)
{
return _sets.get(id);
}
public BeautyShopSet getSet(Player player)
{
int id = -1;
if (player.getRace() == Race.HUMAN)
{
if (!player.getClassId().isMage())
id = player.getSex() == Sex.MALE ? 0 : 1;
else
id = player.getSex() == Sex.MALE ? 8 : 9;
}
else if (player.getRace() == Race.DARK_ELF)
id = player.getSex() == Sex.MALE ? 2 : 3;
else if (player.getRace() == Race.DWARF)
id = player.getSex() == Sex.MALE ? 4 : 5;
else if (player.getRace() == Race.ELF)
id = player.getSex() == Sex.MALE ? 6 : 7;
else if (player.getRace() == Race.ORC)
{
if (!player.getClassId().isMage())
id = player.getSex() == Sex.MALE ? 10 : 11;
else
id = player.getSex() == Sex.MALE ? 12 : 13;
}
else if (player.getRace() == Race.KAMAEL)
id = player.getSex() == Sex.MALE ? 14 : 15;
return getSet(id);
}
@Override
public int size()
{
return _sets.size();
}
@Override
public void clear()
{
_sets.clear();
}
@Override
public void log()
{
info(String.format("loaded %d beauty shop set(s) count.", size()));
}
}