package admincommands; import java.awt.Color; import java.util.Iterator; import org.apache.commons.lang3.StringUtils; import com.aionemu.gameserver.dataholders.DataManager; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.model.templates.pet.PetFunction; import com.aionemu.gameserver.model.templates.pet.PetTemplate; import com.aionemu.gameserver.services.toypet.PetAdoptionService; import com.aionemu.gameserver.utils.ChatUtil; import com.aionemu.gameserver.utils.chathandlers.AdminCommand; /** * @author ATracer, Neon */ public class Pet extends AdminCommand { public Pet() { super("pet", "Adds or removes a pet."); // @formatter:off setSyntaxInfo( " - Lists all available Pet IDs.", " - Adds the pet with the specified ID and names it.", " - Deletes the pet with the specified ID." ); // @formatter:on } @Override public void execute(Player admin, String... params) { if (params.length == 0) { sendInfo(admin); return; } String action = params[0]; if (action.equalsIgnoreCase("list")) { StringBuilder sb = new StringBuilder("List of pets:"); DataManager.PET_DATA.getPetIds().stream().sorted().forEach(id -> { PetTemplate template = DataManager.PET_DATA.getPetTemplate(id); sb.append('\n'); sb.append(template.getTemplateId()); sb.append(" - "); sb.append(ChatUtil.color(StringUtils.capitalize(template.getName()), Color.WHITE)); sb.append("\n\tFunctions: "); Iterator iter = template.getPetFunctions().iterator(); while (iter.hasNext()) sb.append(iter.next().getPetFunctionType() + (iter.hasNext() ? ", " : "")); }); sendInfo(admin, sb.toString()); } else { int petId; try { petId = Integer.parseInt(params[1]); if (DataManager.PET_DATA.getPetTemplate(petId) == null) throw new IllegalArgumentException(); } catch (ArrayIndexOutOfBoundsException | IllegalArgumentException e) { sendInfo(admin, e instanceof ArrayIndexOutOfBoundsException ? "You must specify the pet ID." : "Pet ID is invalid."); return; } if (action.equalsIgnoreCase("add")) { if (params.length != 3) { sendInfo(admin, "You must specify a name for the pet."); return; } PetAdoptionService.addPet(admin, petId, params[2], 0, 0); } else if (action.equalsIgnoreCase("del")) { PetAdoptionService.surrenderPet(admin, petId); } } } }