123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- * 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 com.l2jserver.gameserver.network.clientpackets;
- import com.l2jserver.gameserver.datatables.PetNameTable;
- import com.l2jserver.gameserver.model.L2ItemInstance;
- import com.l2jserver.gameserver.model.actor.L2Character;
- import com.l2jserver.gameserver.model.actor.L2Summon;
- import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
- import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- /**
- * This class ...
- *
- * @version $Revision: 1.3.4.4 $ $Date: 2005/04/06 16:13:48 $
- */
- public final class RequestChangePetName extends L2GameClientPacket
- {
- private static final String REQUESTCHANGEPETNAME__C__89 = "[C] 89 RequestChangePetName";
- //private static Logger _log = Logger.getLogger(RequestChangePetName.class.getName());
- private String _name;
- @Override
- protected void readImpl()
- {
- _name = readS();
- }
- @Override
- protected void runImpl()
- {
- L2Character activeChar = getClient().getActiveChar();
- if (activeChar == null)
- return;
- final L2Summon pet = activeChar.getPet();
- if (pet == null)
- return;
- if (pet.getName() != null)
- {
- activeChar.sendPacket(new SystemMessage(SystemMessageId.NAMING_YOU_CANNOT_SET_NAME_OF_THE_PET));
- return;
- }
- else if (PetNameTable.getInstance().doesPetNameExist(_name, pet.getTemplate().npcId))
- {
- activeChar.sendPacket(new SystemMessage(SystemMessageId.NAMING_ALREADY_IN_USE_BY_ANOTHER_PET));
- return;
- }
- else if ((_name.length() < 3) || (_name.length() > 16))
- {
- // SystemMessage sm = new SystemMessage(SystemMessage.NAMING_PETNAME_UP_TO_8CHARS);
- activeChar.sendMessage("Your pet's name can be up to 16 characters.");
- return;
- }
- else if (!PetNameTable.getInstance().isValidPetName(_name))
- {
- activeChar.sendPacket(new SystemMessage(SystemMessageId.NAMING_PETNAME_CONTAINS_INVALID_CHARS));
- return;
- }
- pet.setName(_name);
- pet.broadcastPacket(new AbstractNpcInfo.SummonInfo(pet, activeChar,1));
- pet.updateAndBroadcastStatus(1);
- // set the flag on the control item to say that the pet has a name
- if (pet instanceof L2PetInstance)
- {
- L2ItemInstance controlItem = pet.getOwner().getInventory().getItemByObjectId(pet.getControlItemId());
- if (controlItem != null)
- {
- controlItem.setCustomType2(1);
- controlItem.updateDatabase();
- InventoryUpdate iu = new InventoryUpdate();
- iu.addModifiedItem(controlItem);
- activeChar.sendPacket(iu);
- }
- }
- }
- @Override
- public String getType()
- {
- return REQUESTCHANGEPETNAME__C__89;
- }
- }
|