public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player)) { return false; } Player player = (Player) sender; if (MyPetList.hasMyPet(player)) { MyPet myPet = MyPetList.getMyPet(player); if (myPet.getSkillTree() != null && MyPetConfig.chooseSkilltreeOnce && !MyPetPermissions.has(myPet.getOwner().getPlayer(), "MyPet.admin")) { sender.sendMessage( MyPetUtil.setColors( MyPetLanguage.getString("Msg_OnlyChooseSkilltreeOnce") .replace("%petname%", myPet.petName))); } else if (MyPetSkillTreeMobType.hasMobType(myPet.getPetType().getTypeName())) { MyPetSkillTreeMobType skillTreeMobType = MyPetSkillTreeMobType.getMobTypeByName(myPet.getPetType().getTypeName()); if (args.length == 1) { if (skillTreeMobType.hasSkillTree(args[0])) { MyPetSkillTree skillTree = skillTreeMobType.getSkillTree(args[0]); if (MyPetPermissions.has( myPet.getOwner().getPlayer(), "MyPet.custom.skilltree." + skillTree.getName())) { if (myPet.setSkilltree(skillTree)) { sender.sendMessage( MyPetUtil.setColors( MyPetLanguage.getString("Msg_SkilltreeSwitchedTo") .replace("%name%", skillTree.getName()))); } else { sender.sendMessage( MyPetUtil.setColors(MyPetLanguage.getString("Msg_SkilltreeNotSwitched"))); } } else { sender.sendMessage( MyPetUtil.setColors( MyPetLanguage.getString("Msg_CantFindSkilltree").replace("%name%", args[0]))); } } else { sender.sendMessage( MyPetUtil.setColors( MyPetLanguage.getString("Msg_CantFindSkilltree").replace("%name%", args[0]))); } } else { sender.sendMessage( MyPetUtil.setColors( MyPetLanguage.getString("Msg_AvailableSkilltrees") .replace("%petname%", myPet.petName))); for (String skillTreeName : skillTreeMobType.getSkillTreeNames()) { if (MyPetPermissions.has(player, "MyPet.custom.skilltree." + skillTreeName)) { sender.sendMessage(" " + skillTreeName); } } } } } else { sender.sendMessage(MyPetUtil.setColors(MyPetLanguage.getString("Msg_DontHavePet"))); } return true; }