package l2p.gameserver.network.serverpackets;
import java.util.LinkedHashMap;
import l2p.gameserver.managers.goods.Goods;
import l2p.gameserver.managers.goods.GoodsManager;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.actor.instances.player.PremiumItem;
public class ExGoodsInventoryInfo extends L2GameServerPacket
{
private int _mode;
private LinkedHashMap<Integer, Goods> _goods;
private LinkedHashMap<Integer, PremiumItem> _items;
public ExGoodsInventoryInfo(Player player, int mode)
{
_mode = mode;
_goods = GoodsManager.getInstance().getGoods(player);
_items = player.getPremiumItems().getItems();
}
@Override
protected void writeImpl()
{
writeEx(0xE3);
int giSize = Math.min(_goods.size(), 25);
int piSize = Math.min(Math.min(Math.max((25 - giSize) / 2, 0), 12), _items.size());
writeH(Math.min(giSize + piSize * 2, 25));
for (Goods goods : _goods.values())
{
writeC(0x01);
writeQ(goods.getId());
writeD(goods.getIconId()); // номер иконки из GoodsIcon.dat
writeS(goods.getName()); // название товара
writeS(goods.getDesc()); // описание товара
writeQ(_mode == 0 ? 60 : 0); // время автоматического обновления списка (в секундах)
writeC(0x02); // цвет названия товара (2 - желтый если предыдущий параметр > 0, другие значения - белый)
writeC(goods.getSenderName().isEmpty() ? 0 : 1); // 1 - показать информацию об отправителе, 0 - не показывать
writeS(goods.getSenderName()); // имя отправителя
writeS(goods.getSenderMsg()); // сообщение от отправителя
writeH(goods.getItems().length); // количество вещей в товаре
for (int[] item : goods.getItems())
{
writeD(item[0]); // id вещи
writeD(item[1]); // количество
}
giSize--;
if (giSize == 0)
break;
}
for (PremiumItem item : _items.values())
{
writeH(0x02);
writeQ(item.getId());
writeC(item.getSender().isEmpty() ? 0 : 1); // 1 - показать имя отправителя, 0 - не показывать
writeS(item.getSender()); // имя отправителя
writeD(item.getItemId()); // id вещи
writeQ(item.getCount()); // количество
piSize--;
if (piSize == 0)
break;
}
}
}