public static final MaplePacket getPlayerStore(final MapleCharacter chr, final boolean firstTime) {
	final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();

	mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
	IMaplePlayerShop ips = chr.getPlayerShop();

	switch (ips.getShopType()) {
	    case 2:
		mplew.write(5);
		mplew.write(4);
		mplew.write(4);
		break;
	    case 3:
		mplew.write(5);
		mplew.write(2);
		mplew.write(2);
		break;
	    case 4:
		mplew.write(5);
		mplew.write(1);
		mplew.write(2);
		break;
	}
	mplew.write(ips.isOwner(chr) ? 0 : 1);
	mplew.write(0);

	PacketHelper.addCharLook(mplew, ((MaplePlayerShop) ips).getMCOwner(), false);
	mplew.writeMapleAsciiString(ips.getOwnerName());

	for (final Pair<Byte, MapleCharacter> storechr : ips.getVisitors()) {
	    mplew.write(storechr.left);
	    PacketHelper.addCharLook(mplew, storechr.right, false);
	    mplew.writeMapleAsciiString(storechr.right.getName());
	}
	mplew.write(0xFF);
	mplew.writeMapleAsciiString(ips.getDescription());
	mplew.write(10);
	mplew.write(ips.getItems().size());

	for (final MaplePlayerShopItem item : ips.getItems()) {
	    mplew.writeShort(item.bundles);
	    mplew.writeShort(item.item.getQuantity());
	    mplew.writeInt(item.price);
	    PacketHelper.addItemInfo(mplew, item.item, true, true);
	}
	return mplew.getPacket();
    }