Program: 187537
Project: 187537
Buggy source:
public boolean onCommand(CommandSender sender,Command command,String label,String[] args){
  String lang="String_Node_Str";
  if (sender instanceof Player) {
    if (!MyPetPermissions.has((Player)sender,"String_Node_Str",false)) {
      return true;
    }
    lang=MyPetBukkitUtil.getPlayerLanguage((Player)sender);
  }
  if (args.length < 1) {
    return false;
  }
  String option=args[0];
  if (option.equalsIgnoreCase("String_Node_Str") && args.length >= 3) {
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    String name="String_Node_Str";
    for (int i=2; i < args.length; i++) {
      if (!name.equals("String_Node_Str")) {
        name+="String_Node_Str";
      }
      name+=args[i];
    }
    name=MyPetBukkitUtil.setColors(name);
    Pattern regex=Pattern.compile("String_Node_Str");
    Matcher regexMatcher=regex.matcher(name);
    if (regexMatcher.find()) {
      name+=MyPetBukkitUtil.setColors("String_Node_Str");
    }
    myPet.setPetName(name);
    sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ name);
  }
 else   if (option.equalsIgnoreCase("String_Node_Str") && args.length >= 3) {
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    String value=args[2];
    if (args.length == 3 || (args.length >= 4 && args[3].equalsIgnoreCase("String_Node_Str"))) {
      if (MyPetUtil.isDouble(value)) {
        double Exp=Double.parseDouble(value);
        Exp=Exp < 0 ? 0 : Exp;
        if (myPet.getExperience().getExp() > Exp) {
          myPet.getSkills().reset();
          myPet.getExperience().reset();
          myPet.getExperience().addExp(Exp);
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str"+ myPet.getExperience().getLevel()+ "String_Node_Str");
        }
 else {
          myPet.getExperience().addExp(Exp - myPet.getExperience().getExp());
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str");
        }
      }
    }
 else     if (args.length >= 4 && args[3].equalsIgnoreCase("String_Node_Str")) {
      if (MyPetUtil.isDouble(value)) {
        double Exp=Double.parseDouble(value);
        Exp=Exp < 0 ? 0 : Exp;
        myPet.getExperience().addExp(Exp);
        sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str");
      }
    }
 else     if (args.length >= 4 && args[3].equalsIgnoreCase("String_Node_Str")) {
      if (MyPetUtil.isDouble(value)) {
        double Exp=Double.parseDouble(value);
        Exp=Exp < 0 ? 0 : Exp;
        Exp=Exp <= myPet.getExperience().getExp() ? Exp : myPet.getExperience().getExp();
        if (Exp <= myPet.getExperience().getCurrentExp()) {
          myPet.getExperience().removeExp(Exp);
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ value+ "String_Node_Str");
        }
 else {
          Exp=myPet.getExperience().getExp() - Exp;
          myPet.getSkills().reset();
          myPet.getExperience().reset();
          myPet.getExperience().addExp(Exp);
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str"+ myPet.getExperience().getLevel()+ "String_Node_Str");
        }
      }
    }
  }
 else   if (option.equalsIgnoreCase("String_Node_Str") && args.length >= 2) {
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    if (args.length >= 3 && args[2].equalsIgnoreCase("String_Node_Str")) {
      sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ myPet.getRespawnTime()+ "String_Node_Str");
    }
 else     if (myPet.getStatus() == PetState.Dead) {
      if (args.length >= 3 && MyPetUtil.isInt(args[2])) {
        int respawnTime=Integer.parseInt(args[2]);
        if (respawnTime >= 0) {
          myPet.setRespawnTime(respawnTime);
        }
      }
 else {
        myPet.setRespawnTime(0);
      }
      sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ myPet.getRespawnTime()+ "String_Node_Str");
    }
 else {
      sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str");
    }
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    MyPetPlugin.getPlugin().reloadConfig();
    MyPetConfiguration.config=MyPetPlugin.getPlugin().getConfig();
    MyPetConfiguration.loadConfiguration();
    DebugLogger.info("String_Node_Str");
    sender.sendMessage(MyPetBukkitUtil.setColors("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"));
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    DebugLogger.info("String_Node_Str" + MyPetVersion.getMyPetVersion() + "String_Node_Str"+ MyPetVersion.getMyPetBuild());
    sender.sendMessage("String_Node_Str" + MyPetVersion.getMyPetVersion() + "String_Node_Str"+ MyPetVersion.getMyPetBuild());
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    MyPetSkillTreeMobType.clearMobTypes();
    String[] petTypes=new String[MyPetType.values().length];
    for (int i=0; i < MyPetType.values().length; i++) {
      petTypes[i]=MyPetType.values()[i].getTypeName();
    }
    MyPetSkillTreeMobType.clearMobTypes();
    MyPetSkillTreeLoaderNBT.getSkilltreeLoader().loadSkillTrees(MyPetPlugin.getPlugin().getDataFolder().getPath() + File.separator + "String_Node_Str",petTypes);
    MyPetSkillTreeLoaderYAML.getSkilltreeLoader().loadSkillTrees(MyPetPlugin.getPlugin().getDataFolder().getPath() + File.separator + "String_Node_Str",petTypes);
    MyPetSkillTreeLoaderJSON.getSkilltreeLoader().loadSkillTrees(MyPetPlugin.getPlugin().getDataFolder().getPath() + File.separator + "String_Node_Str",petTypes);
    for (    MyPet myPet : MyPetList.getAllActiveMyPets()) {
      myPet.getSkills().reset();
      int lvl=myPet.getExperience().getLevel();
      MyPetSkillTree skillTree=myPet.getSkillTree();
      if (skillTree != null) {
        for (        MyPetSkillTreeLevel level : skillTree.getLevelList()) {
          if (level.getLevel() > lvl) {
            continue;
          }
          for (          ISkillInfo skill : level.getSkills()) {
            myPet.getSkills().getSkill(skill.getName()).upgrade(skill,true);
          }
        }
        for (        ISkillInstance skill : myPet.getSkills().getSkills()) {
          if (skill.isActive()) {
            myPet.sendMessageToOwner(MyPetBukkitUtil.setColors("String_Node_Str" + skill.getFormattedValue()).replace("String_Node_Str",skill.getName()));
          }
        }
      }
    }
    sender.sendMessage(MyPetBukkitUtil.setColors("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"));
    DebugLogger.info("String_Node_Str");
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    if (args.length < 3) {
      return false;
    }
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    MyPetSkillTreeMobType skillTreeMobType=MyPetSkillTreeMobType.getMobTypeByName(myPet.getPetType().getTypeName());
    if (skillTreeMobType.hasSkillTree(args[2])) {
      MyPetSkillTree skillTree=skillTreeMobType.getSkillTree(args[2]);
      if (myPet.setSkilltree(skillTree)) {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName()).replace("String_Node_Str",skillTree.getName())));
      }
 else {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      }
    }
 else {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",args[2])));
    }
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    if (args.length < 3) {
      return false;
    }
    MyPetType myPetType=MyPetType.getMyPetTypeByName(args[2]);
    if (myPetType != null) {
      Player owner=Bukkit.getPlayer(args[1]);
      if (owner == null || !owner.isOnline()) {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",owner.getName())));
        return true;
      }
      MyPetPlayer newOwner=MyPetPlayer.getMyPetPlayer(owner.getName());
      if (!newOwner.hasMyPet()) {
        InactiveMyPet inactiveMyPet=new InactiveMyPet(newOwner);
        inactiveMyPet.setPetType(myPetType);
        inactiveMyPet.setPetName(myPetType.getTypeName());
        inactiveMyPet.setLocation(owner.getLocation());
        CompoundTag compoundTag=inactiveMyPet.getInfo();
        if (args.length > 3) {
          for (int i=3; i < args.length; i++) {
            if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String size=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isInt(size)) {
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",Integer.parseInt(size)));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String catTypeString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isInt(catTypeString)) {
                int catType=Integer.parseInt(catTypeString);
                catType=Math.min(Math.max(0,catType),3);
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",catType));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String professionString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isInt(professionString)) {
                int profession=Integer.parseInt(professionString);
                profession=Math.min(Math.max(0,profession),5);
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",profession));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String colorString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isByte(colorString)) {
                byte color=Byte.parseByte(colorString);
                color=color > 15 ? 15 : color < 0 ? 0 : color;
                compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",color));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String colorString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isByte(colorString)) {
                byte color=Byte.parseByte(colorString);
                color=color > 15 ? 15 : color < 0 ? 0 : color;
                compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",color));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String blocks=args[i].replace("String_Node_Str","String_Node_Str");
              String[] blockInfo=blocks.split("String_Node_Str");
              if (blockInfo.length >= 1 && MyPetUtil.isInt(blockInfo[0]) && MyPetBukkitUtil.isValidMaterial(Integer.parseInt(blockInfo[0]))) {
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",Integer.parseInt(blockInfo[0])));
              }
              if (blockInfo.length >= 2 && MyPetUtil.isInt(blockInfo[1])) {
                int blockData=Integer.parseInt(blockInfo[1]);
                blockData=Math.min(Math.max(0,blockData),15);
                MyPetLogger.write("String_Node_Str" + blockData);
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",blockData));
              }
            }
          }
        }
        MyPet myPet=MyPetList.setMyPetActive(inactiveMyPet);
        myPet.createPet();
        MyPetWorldGroup wg=MyPetWorldGroup.getGroup(owner.getWorld().getName());
        myPet.setWorldGroup(wg.getName());
        myPet.getOwner().setMyPetForWorldGroup(wg.getName(),myPet.getUUID());
      }
 else {
        sender.sendMessage(newOwner.getName() + "String_Node_Str");
      }
    }
  }
  return true;
}

Fixed version (ground truth):
public boolean onCommand(CommandSender sender,Command command,String label,String[] args){
  String lang="String_Node_Str";
  if (sender instanceof Player) {
    if (!MyPetPermissions.has((Player)sender,"String_Node_Str",false)) {
      return true;
    }
    lang=MyPetBukkitUtil.getPlayerLanguage((Player)sender);
  }
  if (args.length < 1) {
    return false;
  }
  String option=args[0];
  if (option.equalsIgnoreCase("String_Node_Str") && args.length >= 3) {
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    String name="String_Node_Str";
    for (int i=2; i < args.length; i++) {
      if (!name.equals("String_Node_Str")) {
        name+="String_Node_Str";
      }
      name+=args[i];
    }
    name=MyPetBukkitUtil.setColors(name);
    Pattern regex=Pattern.compile("String_Node_Str");
    Matcher regexMatcher=regex.matcher(name);
    if (regexMatcher.find()) {
      name+=MyPetBukkitUtil.setColors("String_Node_Str");
    }
    myPet.setPetName(name);
    sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ name);
  }
 else   if (option.equalsIgnoreCase("String_Node_Str") && args.length >= 3) {
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    String value=args[2];
    if (args.length == 3 || (args.length >= 4 && args[3].equalsIgnoreCase("String_Node_Str"))) {
      if (MyPetUtil.isDouble(value)) {
        double Exp=Double.parseDouble(value);
        Exp=Exp < 0 ? 0 : Exp;
        if (myPet.getExperience().getExp() > Exp) {
          myPet.getSkills().reset();
          myPet.getExperience().reset();
          myPet.getExperience().addExp(Exp);
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str"+ myPet.getExperience().getLevel()+ "String_Node_Str");
        }
 else {
          myPet.getExperience().addExp(Exp - myPet.getExperience().getExp());
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str");
        }
      }
    }
 else     if (args.length >= 4 && args[3].equalsIgnoreCase("String_Node_Str")) {
      if (MyPetUtil.isDouble(value)) {
        double Exp=Double.parseDouble(value);
        Exp=Exp < 0 ? 0 : Exp;
        myPet.getExperience().addExp(Exp);
        sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str");
      }
    }
 else     if (args.length >= 4 && args[3].equalsIgnoreCase("String_Node_Str")) {
      if (MyPetUtil.isDouble(value)) {
        double Exp=Double.parseDouble(value);
        Exp=Exp < 0 ? 0 : Exp;
        Exp=Exp <= myPet.getExperience().getExp() ? Exp : myPet.getExperience().getExp();
        if (Exp <= myPet.getExperience().getCurrentExp()) {
          myPet.getExperience().removeExp(Exp);
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ value+ "String_Node_Str");
        }
 else {
          Exp=myPet.getExperience().getExp() - Exp;
          myPet.getSkills().reset();
          myPet.getExperience().reset();
          myPet.getExperience().addExp(Exp);
          sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ Exp+ "String_Node_Str"+ myPet.getExperience().getLevel()+ "String_Node_Str");
        }
      }
    }
  }
 else   if (option.equalsIgnoreCase("String_Node_Str") && args.length >= 2) {
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    if (args.length >= 3 && args[2].equalsIgnoreCase("String_Node_Str")) {
      sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ myPet.getRespawnTime()+ "String_Node_Str");
    }
 else     if (myPet.getStatus() == PetState.Dead) {
      if (args.length >= 3 && MyPetUtil.isInt(args[2])) {
        int respawnTime=Integer.parseInt(args[2]);
        if (respawnTime >= 0) {
          myPet.setRespawnTime(respawnTime);
        }
      }
 else {
        myPet.setRespawnTime(0);
      }
      sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"+ myPet.getRespawnTime()+ "String_Node_Str");
    }
 else {
      sender.sendMessage("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str");
    }
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    MyPetPlugin.getPlugin().reloadConfig();
    MyPetConfiguration.config=MyPetPlugin.getPlugin().getConfig();
    MyPetConfiguration.loadConfiguration();
    DebugLogger.info("String_Node_Str");
    sender.sendMessage(MyPetBukkitUtil.setColors("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"));
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    DebugLogger.info("String_Node_Str" + MyPetVersion.getMyPetVersion() + "String_Node_Str"+ MyPetVersion.getMyPetBuild());
    sender.sendMessage("String_Node_Str" + MyPetVersion.getMyPetVersion() + "String_Node_Str"+ MyPetVersion.getMyPetBuild());
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    MyPetSkillTreeMobType.clearMobTypes();
    String[] petTypes=new String[MyPetType.values().length];
    for (int i=0; i < MyPetType.values().length; i++) {
      petTypes[i]=MyPetType.values()[i].getTypeName();
    }
    for (    MyPet myPet : MyPetList.getAllActiveMyPets()) {
      myPet.getSkills().reset();
    }
    MyPetSkillTreeMobType.clearMobTypes();
    MyPetSkillTreeLoaderNBT.getSkilltreeLoader().loadSkillTrees(MyPetPlugin.getPlugin().getDataFolder().getPath() + File.separator + "String_Node_Str",petTypes);
    MyPetSkillTreeLoaderYAML.getSkilltreeLoader().loadSkillTrees(MyPetPlugin.getPlugin().getDataFolder().getPath() + File.separator + "String_Node_Str",petTypes);
    MyPetSkillTreeLoaderJSON.getSkilltreeLoader().loadSkillTrees(MyPetPlugin.getPlugin().getDataFolder().getPath() + File.separator + "String_Node_Str",petTypes);
    for (    MyPetType mobType : MyPetType.values()) {
      MyPetSkillTreeMobType skillTreeMobType=MyPetSkillTreeMobType.getMobTypeByName(mobType.getTypeName());
      MyPetSkillTreeLoader.addDefault(skillTreeMobType);
      MyPetSkillTreeLoader.manageInheritance(skillTreeMobType);
    }
    for (    MyPet myPet : MyPetList.getAllActiveMyPets()) {
      myPet.getSkills().reset();
      MyPetSkillTree skillTree=myPet.getSkillTree();
      if (skillTree != null) {
        String skilltreeName=skillTree.getName();
        if (MyPetSkillTreeMobType.hasMobType(myPet.getPetType().getTypeName())) {
          MyPetSkillTreeMobType mobType=MyPetSkillTreeMobType.getMobTypeByPetType(myPet.getPetType());
          if (mobType.hasSkillTree(skilltreeName)) {
            skillTree=mobType.getSkillTree(skilltreeName);
          }
 else {
            skillTree=null;
          }
        }
 else {
          skillTree=null;
        }
      }
      myPet.setSkilltree(skillTree);
      if (skillTree != null) {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",myPet.getOwner())).replace("String_Node_Str",myPet.getPetName()).replace("String_Node_Str",(myPet.getSkillTree() == null ? "String_Node_Str" : myPet.getSkillTree().getDisplayName())));
        for (        ISkillInstance skill : myPet.getSkills().getSkills()) {
          if (skill.isActive()) {
            myPet.sendMessageToOwner(MyPetBukkitUtil.setColors("String_Node_Str" + skill.getFormattedValue()).replace("String_Node_Str",skill.getName()));
          }
        }
      }
    }
    for (    InactiveMyPet myPet : MyPetList.getAllInactiveMyPets()) {
      MyPetSkillTree skillTree=myPet.getSkillTree();
      if (skillTree != null) {
        String skilltreeName=skillTree.getName();
        if (MyPetSkillTreeMobType.getMobTypeByPetType(myPet.getPetType()) != null) {
          MyPetSkillTreeMobType mobType=MyPetSkillTreeMobType.getMobTypeByPetType(myPet.getPetType());
          if (mobType.hasSkillTree(skilltreeName)) {
            skillTree=mobType.getSkillTree(skilltreeName);
          }
 else {
            skillTree=null;
          }
        }
 else {
          skillTree=null;
        }
      }
      myPet.setSkillTree(skillTree);
    }
    sender.sendMessage(MyPetBukkitUtil.setColors("String_Node_Str" + ChatColor.AQUA + "String_Node_Str"+ ChatColor.RESET+ "String_Node_Str"));
    DebugLogger.info("String_Node_Str");
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    if (args.length < 3) {
      return false;
    }
    Player petOwner=Bukkit.getServer().getPlayer(args[1]);
    if (petOwner == null || !petOwner.isOnline()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
 else     if (!MyPetList.hasMyPet(petOwner)) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      return true;
    }
    MyPet myPet=MyPetList.getMyPet(petOwner);
    MyPetSkillTreeMobType skillTreeMobType=MyPetSkillTreeMobType.getMobTypeByName(myPet.getPetType().getTypeName());
    if (skillTreeMobType.hasSkillTree(args[2])) {
      MyPetSkillTree skillTree=skillTreeMobType.getSkillTree(args[2]);
      if (myPet.setSkilltree(skillTree)) {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName()).replace("String_Node_Str",skillTree.getName())));
      }
 else {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",petOwner.getName())));
      }
    }
 else {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",args[2])));
    }
  }
 else   if (option.equalsIgnoreCase("String_Node_Str")) {
    if (args.length < 3) {
      return false;
    }
    MyPetType myPetType=MyPetType.getMyPetTypeByName(args[2]);
    if (myPetType != null) {
      Player owner=Bukkit.getPlayer(args[1]);
      if (owner == null || !owner.isOnline()) {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",lang).replace("String_Node_Str",owner.getName())));
        return true;
      }
      MyPetPlayer newOwner=MyPetPlayer.getMyPetPlayer(owner.getName());
      if (!newOwner.hasMyPet()) {
        InactiveMyPet inactiveMyPet=new InactiveMyPet(newOwner);
        inactiveMyPet.setPetType(myPetType);
        inactiveMyPet.setPetName(myPetType.getTypeName());
        inactiveMyPet.setLocation(owner.getLocation());
        CompoundTag compoundTag=inactiveMyPet.getInfo();
        if (args.length > 3) {
          for (int i=3; i < args.length; i++) {
            if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].equalsIgnoreCase("String_Node_Str")) {
              compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",true));
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String size=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isInt(size)) {
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",Integer.parseInt(size)));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String catTypeString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isInt(catTypeString)) {
                int catType=Integer.parseInt(catTypeString);
                catType=Math.min(Math.max(0,catType),3);
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",catType));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String professionString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isInt(professionString)) {
                int profession=Integer.parseInt(professionString);
                profession=Math.min(Math.max(0,profession),5);
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",profession));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String colorString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isByte(colorString)) {
                byte color=Byte.parseByte(colorString);
                color=color > 15 ? 15 : color < 0 ? 0 : color;
                compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",color));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String colorString=args[i].replace("String_Node_Str","String_Node_Str");
              if (MyPetUtil.isByte(colorString)) {
                byte color=Byte.parseByte(colorString);
                color=color > 15 ? 15 : color < 0 ? 0 : color;
                compoundTag.getValue().put("String_Node_Str",new ByteTag("String_Node_Str",color));
              }
            }
 else             if (args[i].startsWith("String_Node_Str")) {
              String blocks=args[i].replace("String_Node_Str","String_Node_Str");
              String[] blockInfo=blocks.split("String_Node_Str");
              if (blockInfo.length >= 1 && MyPetUtil.isInt(blockInfo[0]) && MyPetBukkitUtil.isValidMaterial(Integer.parseInt(blockInfo[0]))) {
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",Integer.parseInt(blockInfo[0])));
              }
              if (blockInfo.length >= 2 && MyPetUtil.isInt(blockInfo[1])) {
                int blockData=Integer.parseInt(blockInfo[1]);
                blockData=Math.min(Math.max(0,blockData),15);
                MyPetLogger.write("String_Node_Str" + blockData);
                compoundTag.getValue().put("String_Node_Str",new IntTag("String_Node_Str",blockData));
              }
            }
          }
        }
        MyPet myPet=MyPetList.setMyPetActive(inactiveMyPet);
        myPet.createPet();
        MyPetWorldGroup wg=MyPetWorldGroup.getGroup(owner.getWorld().getName());
        myPet.setWorldGroup(wg.getName());
        myPet.getOwner().setMyPetForWorldGroup(wg.getName(),myPet.getUUID());
      }
 else {
        sender.sendMessage(newOwner.getName() + "String_Node_Str");
      }
    }
  }
  return true;
}