Program: 83588
Project: 83588
Buggy source:
@Override public boolean onCommand(CommandSender sender,Command cmd,String commandLabel,String[] args){
  try {
    Player player=null;
    if (sender instanceof Player) {
      player=(Player)sender;
      if (!perms.HasPermission(player,"String_Node_Str" + cmd.getName())) {
        if (sender instanceof Player)         sender.sendMessage("String_Node_Str");
        return true;
      }
    }
    if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      String playername="String_Node_Str";
      if (sender instanceof Player)       playername=player.getDisplayName();
      if (args.length > 0)       playername=args[0];
      for (      String p : PlayTime.keySet()) {
        if (p.equalsIgnoreCase(playername)) {
          if (sender instanceof Player)           player.sendMessage(p + "String_Node_Str" + Mills2Time(GetPlaytime(p)));
 else           log.info(p + "String_Node_Str" + Mills2Time(GetPlaytime(p)));
          return true;
        }
      }
      for (      String p : StartTime.keySet()) {
        if (p.equalsIgnoreCase(playername)) {
          sender.sendMessage(p + "String_Node_Str" + Mills2Time(GetPlaytime(p)));
          return true;
        }
      }
      File path=new File(mainDirectory + File.separator + "String_Node_Str"+ File.separator+ playername);
      if (path.exists()) {
        loadPlaytime(playername);
        sender.sendMessage(playername + "String_Node_Str" + Mills2Time(GetPlaytime(playername)));
      }
      sender.sendMessage(playername + "String_Node_Str");
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      sender.sendMessage("String_Node_Str" + CheckRanks(getServer().getOnlinePlayers()) + "String_Node_Str");
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String rankname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + rankname);
      BuyRank(player,rankname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String rankname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + rankname);
      RentRank(player,rankname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      String sCmd="String_Node_Str";
      int iPage=-1;
      if (args.length > 0)       if (!isParsableToInt(args[0]))       sCmd=args[0];
 else       iPage=Integer.parseInt(args[0]);
      if ((args.length > 1) && (isParsableToInt(args[1])))       iPage=Integer.parseInt(args[1]);
      int perPage=5;
      int curItem=-1;
      int startItem=((iPage - 1) * perPage);
      sender.sendMessage("String_Node_Str");
      for (      Rank r : Ranks.keySet()) {
        if (hideUnavaible)         if (!perms.inGroup(player,r.GetOldGroup().getWorld(),r.GetOldGroup().getName()) && !r.GetOldGroup().getName().equals("String_Node_Str")) {
          DebugPrint("String_Node_Str" + r.name + "String_Node_Str"+ player.getName());
          continue;
        }
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (r.time <= 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (r.cost < 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (r.rentCost < 0)         continue;
        curItem+=1;
        if (iPage >= 0) {
          if (curItem <= startItem)           continue;
          if (curItem > iPage * perPage)           continue;
        }
        String msg="String_Node_Str" + r.name + "String_Node_Str";
        if (r.time > 0)         msg+="String_Node_Str" + Mills2Time(r.time) + "String_Node_Str";
        if (r.cost > 0)         msg+="String_Node_Str" + r.amount + "String_Node_Str"+ Material.getMaterial(r.cost)+ "String_Node_Str";
        if (r.cost == 0)         msg+="String_Node_Str" + Method.format(r.amount) + "String_Node_Str";
        if (r.rentCost > 0)         msg+="String_Node_Str" + r.rentAmount + "String_Node_Str"+ Material.getMaterial(r.rentCost)+ "String_Node_Str";
        if (r.rentCost == 0)         msg+="String_Node_Str" + Method.format(r.rentAmount) + "String_Node_Str";
        if (r.GetOldGroup() != null)         msg+="String_Node_Str" + r.GetOldGroup().getName() + "String_Node_Str";
        sender.sendMessage(msg);
        if (r.desc != "String_Node_Str")         sender.sendMessage("String_Node_Str" + r.desc);
      }
      sender.sendMessage("String_Node_Str");
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String abilityname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + abilityname);
      BuyAbility(player,abilityname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String abilityname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + abilityname);
      RentAbility(player,abilityname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      String sCmd="String_Node_Str";
      int iPage=-1;
      if (args.length > 0)       if (!isParsableToInt(args[0]))       sCmd=args[0];
 else       iPage=Integer.parseInt(args[0]);
      if ((args.length > 1) && (isParsableToInt(args[1])))       iPage=Integer.parseInt(args[1]);
      int perPage=5;
      int curItem=-1;
      int startItem=((iPage - 1) * perPage);
      String catFilter="String_Node_Str";
      HashSet<String> cats=new HashSet<String>();
      for (      Ability ab : Abilities.keySet()) {
        for (        String cat : ab.Categories) {
          cats.add(cat);
          if (sCmd.equalsIgnoreCase(cat))           catFilter=cat;
        }
      }
      if (sCmd.equalsIgnoreCase("String_Node_Str")) {
        HashSet<String> catlist=new HashSet<String>();
        for (        String cat : cats) {
          catlist.add("String_Node_Str" + cat + "String_Node_Str");
        }
        sender.sendMessage("String_Node_Str");
        sender.sendMessage("String_Node_Str" + catlist.toString());
        sender.sendMessage("String_Node_Str");
        return true;
      }
      sender.sendMessage("String_Node_Str");
      for (      Ability ab : Abilities.keySet()) {
        if (hideUnavaible)         if (!perms.HasPermission(player,ab.permission,player.getWorld().getName())) {
          DebugPrint("String_Node_Str" + ab.name + "String_Node_Str"+ player.getName());
          continue;
        }
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (ab.time <= 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (ab.cost < 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (ab.rentCost < 0)         continue;
        if (catFilter != "String_Node_Str")         if (!ab.Categories.contains(catFilter))         continue;
        curItem+=1;
        if (iPage >= 0) {
          if (curItem <= startItem)           continue;
          if (curItem > iPage * perPage)           continue;
        }
        String msg="String_Node_Str" + ab.name + "String_Node_Str";
        if (ab.time > 0)         msg+="String_Node_Str" + Mills2Time(ab.time) + "String_Node_Str";
        if (ab.cost > 0)         msg+="String_Node_Str" + ab.amount + "String_Node_Str"+ Material.getMaterial(ab.cost)+ "String_Node_Str";
        if (ab.cost == 0)         msg+="String_Node_Str" + Method.format(ab.amount) + "String_Node_Str";
        if (ab.rentCost > 0)         msg+="String_Node_Str" + ab.rentAmount + "String_Node_Str"+ Material.getMaterial(ab.rentCost)+ "String_Node_Str";
        if (ab.rentCost == 0)         msg+="String_Node_Str" + Method.format(ab.rentAmount) + "String_Node_Str";
        sender.sendMessage(msg);
        if (ab.desc != "String_Node_Str")         sender.sendMessage("String_Node_Str" + ab.desc);
        msg="String_Node_Str";
        HashSet<String> catlist=new HashSet<String>();
        for (        String cat : cats) {
          catlist.add("String_Node_Str" + cat + "String_Node_Str");
        }
        sender.sendMessage("String_Node_Str" + catlist.toString());
      }
      sender.sendMessage("String_Node_Str");
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (args.length < 1) {
        sender.sendMessage("String_Node_Str");
        sender.sendMessage("String_Node_Str" + this.getDescription().getVersion());
        sender.sendMessage("String_Node_Str" + this.debug);
        sender.sendMessage("String_Node_Str" + this.permissions);
        sender.sendMessage("String_Node_Str" + this.hideUnavaible);
        sender.sendMessage("String_Node_Str");
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        Ranks.clear();
        Ranks=new HashMap<Rank,Long>();
        loadConfig();
        sender.sendMessage("String_Node_Str");
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        String sCmd="String_Node_Str";
        if (args.length > 1)         sCmd=args[1];
        sender.sendMessage("String_Node_Str");
        for (        Rank r : Ranks.keySet()) {
          if (sCmd.equalsIgnoreCase("String_Node_Str"))           if (r.time <= 0)           continue;
          if (sCmd.equalsIgnoreCase("String_Node_Str"))           if (r.cost < 0)           continue;
          if (sCmd.equalsIgnoreCase("String_Node_Str"))           if (r.rentCost < 0)           continue;
          String msg="String_Node_Str" + r.name + "String_Node_Str";
          if (r.time > 0)           msg+="String_Node_Str" + Mills2Time(r.time) + "String_Node_Str";
          if (r.cost > 0)           msg+="String_Node_Str" + r.amount + "String_Node_Str"+ Material.getMaterial(r.cost)+ "String_Node_Str";
          if (r.cost == 0)           msg+="String_Node_Str" + Method.format(r.amount) + "String_Node_Str";
          msg+="String_Node_Str" + r.GetGroup().getName() + "String_Node_Str";
          if (r.GetOldGroup() != null)           msg+="String_Node_Str" + r.GetOldGroup().getName() + "String_Node_Str";
          sender.sendMessage(msg);
        }
        sender.sendMessage("String_Node_Str");
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        if (args.length < 2) {
          sender.sendMessage("String_Node_Str");
          return true;
        }
        sender.sendMessage("String_Node_Str");
        for (        Rank r : Ranks.keySet()) {
          if (r.name.equalsIgnoreCase(args[1])) {
            String msg="String_Node_Str" + r.name + "String_Node_Str";
            if (r.time > 0)             msg+="String_Node_Str" + Mills2Time(r.time) + "String_Node_Str";
            if (r.cost > 0)             msg+="String_Node_Str" + r.amount + "String_Node_Str"+ Material.getMaterial(r.cost)+ "String_Node_Str";
            if (r.cost == 0)             msg+="String_Node_Str" + Method.format(r.amount) + "String_Node_Str";
            msg+="String_Node_Str" + r.GetGroup().getName() + "String_Node_Str";
            if (r.GetOldGroup() != null)             msg+="String_Node_Str" + r.GetOldGroup().getName() + "String_Node_Str";
            sender.sendMessage(msg);
          }
          sender.sendMessage("String_Node_Str");
          return true;
        }
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        if (args.length < 3) {
          sender.sendMessage("String_Node_Str");
          return true;
        }
        if (args[1].equalsIgnoreCase("String_Node_Str")) {
          if (args[2].equalsIgnoreCase("String_Node_Str"))           debug=true;
 else           debug=false;
          sender.sendMessage("String_Node_Str");
          saveConfig();
        }
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        Class<Rank> rClass=Rank.class;
        Field[] methods=rClass.getFields();
        for (        Field f : methods) {
          for (          Rank r : Ranks.keySet()) {
            try {
              DebugPrint(r.name + "String_Node_Str" + f.getName()+ "String_Node_Str"+ f.get(r));
            }
 catch (            IllegalArgumentException e) {
              ThrowSimpleError(e);
            }
catch (            IllegalAccessException e) {
              ThrowSimpleError(e);
            }
          }
        }
        return true;
      }
    }
  }
 catch (  Exception e) {
    Map<String,String> ErrorInfo=new LinkedHashMap<String,String>();
    ErrorInfo.put("String_Node_Str","String_Node_Str");
    ErrorInfo.put("String_Node_Str",cmd.getName());
    ErrorInfo.put("String_Node_Str",commandLabel);
    ;
    ErrorInfo.put("String_Node_Str",Integer.toString(args.length));
    ErrorInfo.put("String_Node_Str",arrayToString(args,"String_Node_Str"));
    ErrorInfo.put("String_Node_Str",StracktraceToString(e));
    ErrorLog(ErrorInfo);
  }
  return false;
}

Fixed version (ground truth):
@Override public boolean onCommand(CommandSender sender,Command cmd,String commandLabel,String[] args){
  try {
    Player player=null;
    if (sender instanceof Player) {
      player=(Player)sender;
      if (!perms.HasPermission(player,"String_Node_Str" + cmd.getName())) {
        if (sender instanceof Player)         sender.sendMessage("String_Node_Str");
        return true;
      }
    }
    if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      String playername="String_Node_Str";
      if (sender instanceof Player)       playername=player.getDisplayName();
      if (args.length > 0)       playername=args[0];
      for (      String p : PlayTime.keySet()) {
        if (p.equalsIgnoreCase(playername)) {
          if (sender instanceof Player)           player.sendMessage(p + "String_Node_Str" + Mills2Time(GetPlaytime(p)));
 else           log.info(p + "String_Node_Str" + Mills2Time(GetPlaytime(p)));
          return true;
        }
      }
      for (      String p : StartTime.keySet()) {
        if (p.equalsIgnoreCase(playername)) {
          sender.sendMessage(p + "String_Node_Str" + Mills2Time(GetPlaytime(p)));
          return true;
        }
      }
      File path=new File(mainDirectory + File.separator + "String_Node_Str"+ File.separator+ playername);
      if (path.exists()) {
        loadPlaytime(playername);
        sender.sendMessage(playername + "String_Node_Str" + Mills2Time(GetPlaytime(playername)));
      }
      sender.sendMessage(playername + "String_Node_Str");
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      sender.sendMessage("String_Node_Str" + CheckRanks(getServer().getOnlinePlayers()) + "String_Node_Str");
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String rankname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + rankname);
      BuyRank(player,rankname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String rankname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + rankname);
      RentRank(player,rankname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      String sCmd="String_Node_Str";
      int iPage=-1;
      if (args.length > 0)       if (!isParsableToInt(args[0]))       sCmd=args[0];
 else       iPage=Integer.parseInt(args[0]);
      if ((args.length > 1) && (isParsableToInt(args[1])))       iPage=Integer.parseInt(args[1]);
      int perPage=5;
      int curItem=-1;
      int startItem=((iPage - 1) * perPage);
      sender.sendMessage("String_Node_Str");
      for (      Rank r : Ranks.keySet()) {
        if (hideUnavaible)         if (!perms.inGroup(player,r.GetOldGroup().getWorld(),r.GetOldGroup().getName()) && !r.GetOldGroup().getName().equals("String_Node_Str")) {
          DebugPrint("String_Node_Str" + r.name + "String_Node_Str"+ player.getName());
          continue;
        }
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (r.time <= 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (r.cost < 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (r.rentCost < 0)         continue;
        curItem+=1;
        if (iPage >= 0) {
          if (curItem <= startItem)           continue;
          if (curItem > iPage * perPage)           continue;
        }
        String msg="String_Node_Str" + r.name + "String_Node_Str";
        if (r.time > 0)         msg+="String_Node_Str" + Mills2Time(r.time) + "String_Node_Str";
        if (r.cost > 0)         msg+="String_Node_Str" + r.amount + "String_Node_Str"+ Material.getMaterial(r.cost)+ "String_Node_Str";
        if (r.cost == 0)         msg+="String_Node_Str" + Method.format(r.amount) + "String_Node_Str";
        if (r.rentCost > 0)         msg+="String_Node_Str" + r.rentAmount + "String_Node_Str"+ Material.getMaterial(r.rentCost)+ "String_Node_Str";
        if (r.rentCost == 0)         msg+="String_Node_Str" + Method.format(r.rentAmount) + "String_Node_Str";
        if (r.GetOldGroup() != null)         msg+="String_Node_Str" + r.GetOldGroup().getName() + "String_Node_Str";
        sender.sendMessage(msg);
        if (r.desc != "String_Node_Str")         sender.sendMessage("String_Node_Str" + r.desc);
      }
      sender.sendMessage("String_Node_Str");
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String abilityname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + abilityname);
      BuyAbility(player,abilityname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (!(sender instanceof Player)) {
        log.info("String_Node_Str");
        return false;
      }
      if (args.length < 1)       return false;
      String abilityname=args[0];
      DebugPrint(player.getName() + "String_Node_Str" + abilityname);
      RentAbility(player,abilityname);
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      String sCmd="String_Node_Str";
      int iPage=-1;
      if (args.length > 0)       if (!isParsableToInt(args[0]))       sCmd=args[0];
 else       iPage=Integer.parseInt(args[0]);
      if ((args.length > 1) && (isParsableToInt(args[1])))       iPage=Integer.parseInt(args[1]);
      int perPage=5;
      int curItem=-1;
      int startItem=((iPage - 1) * perPage);
      String catFilter="String_Node_Str";
      HashSet<String> cats=new HashSet<String>();
      for (      Ability ab : Abilities.keySet()) {
        for (        String cat : ab.Categories) {
          cats.add(cat);
          if (sCmd.equalsIgnoreCase(cat))           catFilter=cat;
        }
      }
      if (sCmd.equalsIgnoreCase("String_Node_Str")) {
        HashSet<String> catlist=new HashSet<String>();
        for (        String cat : cats) {
          catlist.add("String_Node_Str" + cat + "String_Node_Str");
        }
        sender.sendMessage("String_Node_Str");
        sender.sendMessage("String_Node_Str" + catlist.toString());
        sender.sendMessage("String_Node_Str");
        return true;
      }
      sender.sendMessage("String_Node_Str");
      for (      Ability ab : Abilities.keySet()) {
        if (hideUnavaible)         if (!perms.HasPermission(player,ab.permission,player.getWorld().getName())) {
          DebugPrint("String_Node_Str" + ab.name + "String_Node_Str"+ player.getName());
          continue;
        }
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (ab.time <= 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (ab.cost < 0)         continue;
        if (sCmd.equalsIgnoreCase("String_Node_Str"))         if (ab.rentCost < 0)         continue;
        if (catFilter != "String_Node_Str")         if (!ab.Categories.contains(catFilter))         continue;
        curItem+=1;
        if (iPage >= 0) {
          if (curItem <= startItem)           continue;
          if (curItem > iPage * perPage)           continue;
        }
        String msg="String_Node_Str" + ab.name + "String_Node_Str";
        if (ab.time > 0)         msg+="String_Node_Str" + Mills2Time(ab.time) + "String_Node_Str";
        if (ab.cost > 0)         msg+="String_Node_Str" + ab.amount + "String_Node_Str"+ Material.getMaterial(ab.cost)+ "String_Node_Str";
        if (ab.cost == 0)         msg+="String_Node_Str" + Method.format(ab.amount) + "String_Node_Str";
        if (ab.rentCost > 0)         msg+="String_Node_Str" + ab.rentAmount + "String_Node_Str"+ Material.getMaterial(ab.rentCost)+ "String_Node_Str";
        if (ab.rentCost == 0)         msg+="String_Node_Str" + Method.format(ab.rentAmount) + "String_Node_Str";
        sender.sendMessage(msg);
        if (ab.desc != "String_Node_Str")         sender.sendMessage("String_Node_Str" + ab.desc);
        msg="String_Node_Str";
        HashSet<String> catlist=new HashSet<String>();
        for (        String cat : ab.Categories) {
          catlist.add("String_Node_Str" + cat + "String_Node_Str");
        }
        sender.sendMessage("String_Node_Str" + catlist.toString());
      }
      sender.sendMessage("String_Node_Str");
      return true;
    }
 else     if (cmd.getName().equalsIgnoreCase("String_Node_Str")) {
      if (args.length < 1) {
        sender.sendMessage("String_Node_Str");
        sender.sendMessage("String_Node_Str" + this.getDescription().getVersion());
        sender.sendMessage("String_Node_Str" + this.debug);
        sender.sendMessage("String_Node_Str" + this.permissions);
        sender.sendMessage("String_Node_Str" + this.hideUnavaible);
        sender.sendMessage("String_Node_Str");
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        Ranks.clear();
        Ranks=new HashMap<Rank,Long>();
        loadConfig();
        sender.sendMessage("String_Node_Str");
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        String sCmd="String_Node_Str";
        if (args.length > 1)         sCmd=args[1];
        sender.sendMessage("String_Node_Str");
        for (        Rank r : Ranks.keySet()) {
          if (sCmd.equalsIgnoreCase("String_Node_Str"))           if (r.time <= 0)           continue;
          if (sCmd.equalsIgnoreCase("String_Node_Str"))           if (r.cost < 0)           continue;
          if (sCmd.equalsIgnoreCase("String_Node_Str"))           if (r.rentCost < 0)           continue;
          String msg="String_Node_Str" + r.name + "String_Node_Str";
          if (r.time > 0)           msg+="String_Node_Str" + Mills2Time(r.time) + "String_Node_Str";
          if (r.cost > 0)           msg+="String_Node_Str" + r.amount + "String_Node_Str"+ Material.getMaterial(r.cost)+ "String_Node_Str";
          if (r.cost == 0)           msg+="String_Node_Str" + Method.format(r.amount) + "String_Node_Str";
          msg+="String_Node_Str" + r.GetGroup().getName() + "String_Node_Str";
          if (r.GetOldGroup() != null)           msg+="String_Node_Str" + r.GetOldGroup().getName() + "String_Node_Str";
          sender.sendMessage(msg);
        }
        sender.sendMessage("String_Node_Str");
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        if (args.length < 2) {
          sender.sendMessage("String_Node_Str");
          return true;
        }
        sender.sendMessage("String_Node_Str");
        for (        Rank r : Ranks.keySet()) {
          if (r.name.equalsIgnoreCase(args[1])) {
            String msg="String_Node_Str" + r.name + "String_Node_Str";
            if (r.time > 0)             msg+="String_Node_Str" + Mills2Time(r.time) + "String_Node_Str";
            if (r.cost > 0)             msg+="String_Node_Str" + r.amount + "String_Node_Str"+ Material.getMaterial(r.cost)+ "String_Node_Str";
            if (r.cost == 0)             msg+="String_Node_Str" + Method.format(r.amount) + "String_Node_Str";
            msg+="String_Node_Str" + r.GetGroup().getName() + "String_Node_Str";
            if (r.GetOldGroup() != null)             msg+="String_Node_Str" + r.GetOldGroup().getName() + "String_Node_Str";
            sender.sendMessage(msg);
          }
          sender.sendMessage("String_Node_Str");
          return true;
        }
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        if (args.length < 3) {
          sender.sendMessage("String_Node_Str");
          return true;
        }
        if (args[1].equalsIgnoreCase("String_Node_Str")) {
          if (args[2].equalsIgnoreCase("String_Node_Str"))           debug=true;
 else           debug=false;
          sender.sendMessage("String_Node_Str");
          saveConfig();
        }
        return true;
      }
 else       if (args[0].equalsIgnoreCase("String_Node_Str")) {
        Class<Rank> rClass=Rank.class;
        Field[] methods=rClass.getFields();
        for (        Field f : methods) {
          for (          Rank r : Ranks.keySet()) {
            try {
              DebugPrint(r.name + "String_Node_Str" + f.getName()+ "String_Node_Str"+ f.get(r));
            }
 catch (            IllegalArgumentException e) {
              ThrowSimpleError(e);
            }
catch (            IllegalAccessException e) {
              ThrowSimpleError(e);
            }
          }
        }
        return true;
      }
    }
  }
 catch (  Exception e) {
    Map<String,String> ErrorInfo=new LinkedHashMap<String,String>();
    ErrorInfo.put("String_Node_Str","String_Node_Str");
    ErrorInfo.put("String_Node_Str",cmd.getName());
    ErrorInfo.put("String_Node_Str",commandLabel);
    ;
    ErrorInfo.put("String_Node_Str",Integer.toString(args.length));
    ErrorInfo.put("String_Node_Str",arrayToString(args,"String_Node_Str"));
    ErrorInfo.put("String_Node_Str",StracktraceToString(e));
    ErrorLog(ErrorInfo);
  }
  return false;
}