Program: 10212
Project: 10212
Buggy source:
@Override public String getAttribute(Attribute attribute){
  if (attribute == null)   return "String_Node_Str";
  if (offlinePlayer == null)   return null;
  if (attribute.startsWith("String_Node_Str")) {
    return Element.TRUE.getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    dB.log(debug());
    return new Element(Boolean.TRUE.toString()).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(ChatColor.stripColor(debug())).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(debug()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(prefix).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new dList(PlayerTags.playerChatHistory.get(getName())).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    int x=1;
    if (attribute.hasContext(1) && aH.matchesInteger(attribute.getContext(1)))     x=attribute.getIntContext(1);
    if (!PlayerTags.playerChatHistory.containsKey(getName()))     return null;
 else     return new Element(PlayerTags.playerChatHistory.get(getName()).get(x - 1)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String flag_name;
    if (attribute.hasContext(1))     flag_name=attribute.getContext(1);
 else     return null;
    if (attribute.getAttribute(2).equalsIgnoreCase("String_Node_Str") || attribute.startsWith("String_Node_Str"))     return new Element(!FlagManager.playerHasFlag(this,flag_name)).getAttribute(attribute.fulfill(2));
    if (attribute.getAttribute(2).equalsIgnoreCase("String_Node_Str") && !FlagManager.playerHasFlag(this,flag_name))     return new Element(0).getAttribute(attribute.fulfill(2));
    if (FlagManager.playerHasFlag(this,flag_name))     return new dList(DenizenAPI.getCurrentInstance().flagManager().getPlayerFlag(this,flag_name)).getAttribute(attribute.fulfill(1));
    return new Element(identify()).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str")) {
    String flag_name;
    if (attribute.hasContext(1))     flag_name=attribute.getContext(1);
 else     return null;
    return new Element(FlagManager.playerHasFlag(this,flag_name)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    dList allFlags=new dList(DenizenAPI.getCurrentInstance().flagManager().listPlayerFlags(this));
    dList searchFlags=null;
    if (!allFlags.isEmpty() && attribute.hasContext(1)) {
      searchFlags=new dList();
      String search=attribute.getContext(1).toLowerCase();
      if (search.startsWith("String_Node_Str")) {
        try {
          Pattern pattern=Pattern.compile(search.substring(6));
          for (          String flag : allFlags)           if (pattern.matcher(flag).matches())           searchFlags.add(flag);
        }
 catch (        Exception e) {
          dB.echoError(e);
        }
      }
 else {
        for (        String flag : allFlags)         if (flag.toLowerCase().contains(search))         searchFlags.add(flag);
      }
    }
    return searchFlags == null ? allFlags.getAttribute(attribute.fulfill(1)) : searchFlags.getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String outcome="String_Node_Str";
    if (attribute.hasContext(1)) {
      try {
        outcome=DenizenAPI.getCurrentInstance().getSaves().getString("String_Node_Str" + getName() + "String_Node_Str"+ dScript.valueOf(attribute.getContext(1)).getName()+ "String_Node_Str");
      }
 catch (      Exception e) {
        outcome="String_Node_Str";
      }
    }
    return new Element(outcome).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (Depends.economy != null) {
      if (attribute.startsWith("String_Node_Str"))       return new Element(Depends.economy.currencyNameSingular()).getAttribute(attribute.fulfill(2));
      if (attribute.startsWith("String_Node_Str"))       return new Element(Depends.economy.currencyNamePlural()).getAttribute(attribute.fulfill(2));
      return new Element(Depends.economy.getBalance(getName())).getAttribute(attribute.fulfill(1));
    }
 else {
      dB.echoError("String_Node_Str");
      return null;
    }
  }
  if (attribute.startsWith("String_Node_Str")) {
    int range=50;
    int attribs=1;
    if (attribute.getAttribute(2).startsWith("String_Node_Str") && attribute.hasContext(2) && aH.matchesInteger(attribute.getContext(2))) {
      attribs=2;
      range=attribute.getIntContext(2);
    }
    List<Entity> entities=getPlayerEntity().getNearbyEntities(range,range,range);
    ArrayList<LivingEntity> possibleTargets=new ArrayList<LivingEntity>();
    for (    Entity entity : entities) {
      if (entity instanceof LivingEntity) {
        if (attribute.hasContext(1)) {
          String context=attribute.getContext(1);
          if (context.toLowerCase().startsWith("String_Node_Str"))           context=context.substring(3);
          for (          String ent : context.split("String_Node_Str")) {
            boolean valid=false;
            if (ent.equalsIgnoreCase("String_Node_Str") && CitizensAPI.getNPCRegistry().isNPC(entity)) {
              valid=true;
            }
 else             if (dEntity.matches(ent)) {
              if (dEntity.valueOf(ent).isGeneric()) {
                if (!CitizensAPI.getNPCRegistry().isNPC(entity)) {
                  valid=true;
                }
              }
 else {
                valid=true;
              }
            }
            if (valid)             possibleTargets.add((LivingEntity)entity);
          }
        }
 else {
          possibleTargets.add((LivingEntity)entity);
          entity.getType();
        }
      }
    }
    BlockIterator bi;
    try {
      bi=new BlockIterator(getPlayerEntity(),range);
    }
 catch (    IllegalStateException e) {
      return null;
    }
    Block b;
    Location l;
    int bx, by, bz;
    double ex, ey, ez;
    while (bi.hasNext()) {
      b=bi.next();
      bx=b.getX();
      by=b.getY();
      bz=b.getZ();
      if (b.getType() != Material.AIR) {
        break;
      }
 else {
        for (        LivingEntity possibleTarget : possibleTargets) {
          l=possibleTarget.getLocation();
          ex=l.getX();
          ey=l.getY();
          ez=l.getZ();
          if ((bx - .50 <= ex && ex <= bx + 1.50) && (bz - .50 <= ez && ez <= bz + 1.50) && (by - 1 <= ey && ey <= by + 2.5)) {
            return new dEntity(possibleTarget).getAttribute(attribute.fulfill(attribs));
          }
        }
      }
    }
    return null;
  }
  if (attribute.startsWith("String_Node_Str")) {
    List<String> players=new ArrayList<String>();
    if (attribute.startsWith("String_Node_Str")) {
      for (      Player player : Bukkit.getOnlinePlayers())       players.add(player.getName());
      return new dList(players).getAttribute(attribute.fulfill(2));
    }
 else     if (attribute.startsWith("String_Node_Str")) {
      for (      OfflinePlayer player : Bukkit.getOfflinePlayers()) {
        if (!player.isOnline())         players.add("String_Node_Str" + player.getUniqueId().toString());
      }
      return new dList(players).getAttribute(attribute.fulfill(2));
    }
 else {
      for (      OfflinePlayer player : Bukkit.getOfflinePlayers())       players.add("String_Node_Str" + player.getUniqueId().toString());
      return new dList(players).getAttribute(attribute.fulfill(1));
    }
  }
  if (attribute.startsWith("String_Node_Str") && !isOnline())   return new Element(getName()).getAttribute(attribute.fulfill(1));
 else   if (attribute.startsWith("String_Node_Str") && !isOnline())   return new Element(offlinePlayer.getUniqueId().toString()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getSaveName()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new dLocation(getOfflinePlayer().getBedSpawnLocation()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str") && !isOnline()) {
    return getLocation().getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))     return new Element(getOfflinePlayer().getFirstPlayed()).getAttribute(attribute.fulfill(1));
 else     return new Duration(getOfflinePlayer().getFirstPlayed() / 50).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(true).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isHealthScaled()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getHealthScale()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Duration((long)getMaximumAir()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Duration((long)getRemainingAir()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getOfflinePlayer().isBanned()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(isOnline()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getOfflinePlayer().isOp()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getOfflinePlayer().isWhitelisted()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))     return new Element(getOfflinePlayer().getLastPlayed()).getAttribute(attribute.fulfill(1));
 else     return new Duration(getOfflinePlayer().getLastPlayed() / 50).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (Depends.permissions == null) {
      dB.echoError("String_Node_Str");
      return null;
    }
    dList list=new dList();
    for (    String group : Depends.permissions.getGroups()) {
      if (Depends.permissions.playerInGroup(null,offlinePlayer,group)) {
        list.add(group);
      }
    }
    return list.getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (Depends.permissions == null) {
      dB.echoError("String_Node_Str");
      return null;
    }
    String group=attribute.getContext(1);
    if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.playerInGroup((World)null,getName(),group)).getAttribute(attribute.fulfill(2));
 else     if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.playerInGroup(attribute.getContext(2),getName(),group)).getAttribute(attribute.fulfill(2));
 else     if (isOnline())     return new Element(Depends.permissions.playerInGroup(getPlayerEntity(),group)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    String permission=attribute.getContext(1);
    if (Depends.permissions == null) {
      dB.echoError("String_Node_Str");
      return null;
    }
    if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.has((World)null,getName(),permission)).getAttribute(attribute.fulfill(2));
 else     if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.has(attribute.getContext(2),getName(),permission)).getAttribute(attribute.fulfill(2));
 else     if (isOnline())     return new Element(getPlayerEntity().hasPermission(permission)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return getInventory().getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return getEnderChest().getAttribute(attribute.fulfill(1));
  if (!isOnline())   return new Element(identify()).getAttribute(attribute);
  if (attribute.startsWith("String_Node_Str"))   return new dInventory(getPlayerEntity().getOpenInventory().getTopInventory()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new dItem(getPlayerEntity().getItemOnCursor()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(getPlayerEntity().getInventory().getHeldItemSlot() + 1).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (getPlayerEntity().hasMetadata("String_Node_Str"))     return getSelectedNPC().getAttribute(attribute.fulfill(1));
 else     return null;
  }
  if (attribute.startsWith("String_Node_Str") && !attribute.startsWith("String_Node_Str"))   return new dEntity(getPlayerEntity()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str"))     return new Element(getPlayerEntity().getAddress().toString()).getAttribute(attribute.fulfill(1));
    return new Element(getPlayerEntity().getAddress().getHostName()).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getDisplayName()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getPlayerListName()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getName()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    dScript script=dScript.valueOf(attribute.getContext(1));
    if (script == null)     return Element.FALSE.getAttribute(attribute.fulfill(1));
    return new Element(FinishCommand.getScriptCompletes(getName(),script.getName()) > 0).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    dScript script=dScript.valueOf(attribute.getContext(1));
    if (script == null)     return Element.FALSE.getAttribute(attribute.fulfill(1));
    return new Element(FailCommand.getScriptFails(getName(),script.getName()) > 0).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new dLocation(getPlayerEntity().getCompassTarget()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getAllowFlight()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getFlySpeed()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    double maxHunger=getPlayerEntity().getMaxHealth();
    if (attribute.hasContext(2))     maxHunger=attribute.getIntContext(2);
    if (getPlayerEntity().getFoodLevel() / maxHunger < .10)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     if (getPlayerEntity().getFoodLevel() / maxHunger < .40)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     if (getPlayerEntity().getFoodLevel() / maxHunger < .75)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     if (getPlayerEntity().getFoodLevel() / maxHunger < 1)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getSaturation()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getFoodLevel()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getMaximumAir()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getRemainingAir()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str"))     return new Element(getPlayerEntity().getGameMode().getValue()).getAttribute(attribute.fulfill(1));
    return new Element(getPlayerEntity().getGameMode().name()).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isBlocking()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isFlying()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isSleeping()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isSneaking()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isSprinting()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    Statistic statistic=Statistic.valueOf(attribute.getContext(1).toUpperCase());
    if (attribute.getAttribute(2).startsWith("String_Node_Str")) {
      if (statistic == null)       return null;
      dObject obj=ObjectFetcher.pickObjectFor(attribute.getContext(2));
      if (obj instanceof dMaterial)       return new Element(getPlayerEntity().getStatistic(statistic,((dMaterial)obj).getMaterial())).getAttribute(attribute.fulfill(2));
 else       if (obj instanceof dEntity)       return new Element(getPlayerEntity().getStatistic(statistic,((dEntity)obj).getEntityType())).getAttribute(attribute.fulfill(2));
 else       return null;
    }
    if (statistic == null)     return null;
    return new Element(getPlayerEntity().getStatistic(statistic)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Duration(getPlayerEntity().getSleepTicks() / 20).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getPlayerTime()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getWalkSpeed()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    if (getPlayerEntity().getPlayerWeather() != null)     return new Element(getPlayerEntity().getPlayerWeather().name()).getAttribute(attribute.fulfill(1));
 else     return null;
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getLevel()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getExpToLevel()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getTotalExperience()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getExp() * 100).getAttribute(attribute.fulfill(1));
  for (  Property property : PropertyParser.getProperties(this)) {
    String returned=property.getAttribute(attribute);
    if (returned != null)     return returned;
  }
  return new dEntity(getPlayerEntity()).getAttribute(attribute);
}

Fixed version (ground truth):
@Override public String getAttribute(Attribute attribute){
  if (attribute == null)   return "String_Node_Str";
  if (offlinePlayer == null)   return null;
  if (attribute.startsWith("String_Node_Str")) {
    return Element.TRUE.getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    dB.log(debug());
    return new Element(Boolean.TRUE.toString()).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(ChatColor.stripColor(debug())).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(debug()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(prefix).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new dList(PlayerTags.playerChatHistory.get(getName())).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    int x=1;
    if (attribute.hasContext(1) && aH.matchesInteger(attribute.getContext(1)))     x=attribute.getIntContext(1);
    if (!PlayerTags.playerChatHistory.containsKey(getName()))     return null;
 else     return new Element(PlayerTags.playerChatHistory.get(getName()).get(x - 1)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String flag_name;
    if (attribute.hasContext(1))     flag_name=attribute.getContext(1);
 else     return null;
    if (attribute.getAttribute(2).equalsIgnoreCase("String_Node_Str") || attribute.startsWith("String_Node_Str"))     return new Element(!FlagManager.playerHasFlag(this,flag_name)).getAttribute(attribute.fulfill(2));
    if (attribute.getAttribute(2).equalsIgnoreCase("String_Node_Str") && !FlagManager.playerHasFlag(this,flag_name))     return new Element(0).getAttribute(attribute.fulfill(2));
    if (FlagManager.playerHasFlag(this,flag_name))     return new dList(DenizenAPI.getCurrentInstance().flagManager().getPlayerFlag(this,flag_name)).getAttribute(attribute.fulfill(1));
    return new Element(identify()).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str")) {
    String flag_name;
    if (attribute.hasContext(1))     flag_name=attribute.getContext(1);
 else     return null;
    return new Element(FlagManager.playerHasFlag(this,flag_name)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    dList allFlags=new dList(DenizenAPI.getCurrentInstance().flagManager().listPlayerFlags(this));
    dList searchFlags=null;
    if (!allFlags.isEmpty() && attribute.hasContext(1)) {
      searchFlags=new dList();
      String search=attribute.getContext(1).toLowerCase();
      if (search.startsWith("String_Node_Str")) {
        try {
          Pattern pattern=Pattern.compile(search.substring(6));
          for (          String flag : allFlags)           if (pattern.matcher(flag).matches())           searchFlags.add(flag);
        }
 catch (        Exception e) {
          dB.echoError(e);
        }
      }
 else {
        for (        String flag : allFlags)         if (flag.toLowerCase().contains(search))         searchFlags.add(flag);
      }
    }
    return searchFlags == null ? allFlags.getAttribute(attribute.fulfill(1)) : searchFlags.getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String outcome="String_Node_Str";
    if (attribute.hasContext(1)) {
      try {
        outcome=DenizenAPI.getCurrentInstance().getSaves().getString("String_Node_Str" + getName() + "String_Node_Str"+ dScript.valueOf(attribute.getContext(1)).getName()+ "String_Node_Str");
      }
 catch (      Exception e) {
        outcome="String_Node_Str";
      }
    }
    return new Element(outcome).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (Depends.economy != null) {
      if (attribute.startsWith("String_Node_Str"))       return new Element(Depends.economy.currencyNameSingular()).getAttribute(attribute.fulfill(2));
      if (attribute.startsWith("String_Node_Str"))       return new Element(Depends.economy.currencyNamePlural()).getAttribute(attribute.fulfill(2));
      return new Element(Depends.economy.getBalance(getName())).getAttribute(attribute.fulfill(1));
    }
 else {
      dB.echoError("String_Node_Str");
      return null;
    }
  }
  if (attribute.startsWith("String_Node_Str")) {
    int range=50;
    int attribs=1;
    if (attribute.getAttribute(2).startsWith("String_Node_Str") && attribute.hasContext(2) && aH.matchesInteger(attribute.getContext(2))) {
      attribs=2;
      range=attribute.getIntContext(2);
    }
    List<Entity> entities=getPlayerEntity().getNearbyEntities(range,range,range);
    ArrayList<LivingEntity> possibleTargets=new ArrayList<LivingEntity>();
    for (    Entity entity : entities) {
      if (entity instanceof LivingEntity) {
        if (attribute.hasContext(1)) {
          String context=attribute.getContext(1);
          if (context.toLowerCase().startsWith("String_Node_Str"))           context=context.substring(3);
          for (          String ent : context.split("String_Node_Str")) {
            boolean valid=false;
            if (ent.equalsIgnoreCase("String_Node_Str") && Depends.citizens != null && CitizensAPI.getNPCRegistry().isNPC(entity)) {
              valid=true;
            }
 else             if (dEntity.matches(ent)) {
              if (dEntity.valueOf(ent).isGeneric()) {
                if (Depends.citizens == null || !CitizensAPI.getNPCRegistry().isNPC(entity)) {
                  valid=true;
                }
              }
 else {
                valid=true;
              }
            }
            if (valid)             possibleTargets.add((LivingEntity)entity);
          }
        }
 else {
          possibleTargets.add((LivingEntity)entity);
          entity.getType();
        }
      }
    }
    BlockIterator bi;
    try {
      bi=new BlockIterator(getPlayerEntity(),range);
    }
 catch (    IllegalStateException e) {
      return null;
    }
    Block b;
    Location l;
    int bx, by, bz;
    double ex, ey, ez;
    while (bi.hasNext()) {
      b=bi.next();
      bx=b.getX();
      by=b.getY();
      bz=b.getZ();
      if (b.getType() != Material.AIR) {
        break;
      }
 else {
        for (        LivingEntity possibleTarget : possibleTargets) {
          l=possibleTarget.getLocation();
          ex=l.getX();
          ey=l.getY();
          ez=l.getZ();
          if ((bx - .50 <= ex && ex <= bx + 1.50) && (bz - .50 <= ez && ez <= bz + 1.50) && (by - 1 <= ey && ey <= by + 2.5)) {
            return new dEntity(possibleTarget).getAttribute(attribute.fulfill(attribs));
          }
        }
      }
    }
    return null;
  }
  if (attribute.startsWith("String_Node_Str")) {
    List<String> players=new ArrayList<String>();
    if (attribute.startsWith("String_Node_Str")) {
      for (      Player player : Bukkit.getOnlinePlayers())       players.add(player.getName());
      return new dList(players).getAttribute(attribute.fulfill(2));
    }
 else     if (attribute.startsWith("String_Node_Str")) {
      for (      OfflinePlayer player : Bukkit.getOfflinePlayers()) {
        if (!player.isOnline())         players.add("String_Node_Str" + player.getUniqueId().toString());
      }
      return new dList(players).getAttribute(attribute.fulfill(2));
    }
 else {
      for (      OfflinePlayer player : Bukkit.getOfflinePlayers())       players.add("String_Node_Str" + player.getUniqueId().toString());
      return new dList(players).getAttribute(attribute.fulfill(1));
    }
  }
  if (attribute.startsWith("String_Node_Str") && !isOnline())   return new Element(getName()).getAttribute(attribute.fulfill(1));
 else   if (attribute.startsWith("String_Node_Str") && !isOnline())   return new Element(offlinePlayer.getUniqueId().toString()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getSaveName()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new dLocation(getOfflinePlayer().getBedSpawnLocation()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str") && !isOnline()) {
    return getLocation().getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))     return new Element(getOfflinePlayer().getFirstPlayed()).getAttribute(attribute.fulfill(1));
 else     return new Duration(getOfflinePlayer().getFirstPlayed() / 50).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(true).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isHealthScaled()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getHealthScale()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Duration((long)getMaximumAir()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Duration((long)getRemainingAir()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getOfflinePlayer().isBanned()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(isOnline()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getOfflinePlayer().isOp()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getOfflinePlayer().isWhitelisted()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))     return new Element(getOfflinePlayer().getLastPlayed()).getAttribute(attribute.fulfill(1));
 else     return new Duration(getOfflinePlayer().getLastPlayed() / 50).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (Depends.permissions == null) {
      dB.echoError("String_Node_Str");
      return null;
    }
    dList list=new dList();
    for (    String group : Depends.permissions.getGroups()) {
      if (Depends.permissions.playerInGroup(null,offlinePlayer,group)) {
        list.add(group);
      }
    }
    return list.getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (Depends.permissions == null) {
      dB.echoError("String_Node_Str");
      return null;
    }
    String group=attribute.getContext(1);
    if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.playerInGroup((World)null,getName(),group)).getAttribute(attribute.fulfill(2));
 else     if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.playerInGroup(attribute.getContext(2),getName(),group)).getAttribute(attribute.fulfill(2));
 else     if (isOnline())     return new Element(Depends.permissions.playerInGroup(getPlayerEntity(),group)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    String permission=attribute.getContext(1);
    if (Depends.permissions == null) {
      dB.echoError("String_Node_Str");
      return null;
    }
    if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.has((World)null,getName(),permission)).getAttribute(attribute.fulfill(2));
 else     if (attribute.getAttribute(2).startsWith("String_Node_Str"))     return new Element(Depends.permissions.has(attribute.getContext(2),getName(),permission)).getAttribute(attribute.fulfill(2));
 else     if (isOnline())     return new Element(getPlayerEntity().hasPermission(permission)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return getInventory().getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return getEnderChest().getAttribute(attribute.fulfill(1));
  if (!isOnline())   return new Element(identify()).getAttribute(attribute);
  if (attribute.startsWith("String_Node_Str"))   return new dInventory(getPlayerEntity().getOpenInventory().getTopInventory()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new dItem(getPlayerEntity().getItemOnCursor()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(getPlayerEntity().getInventory().getHeldItemSlot() + 1).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (getPlayerEntity().hasMetadata("String_Node_Str"))     return getSelectedNPC().getAttribute(attribute.fulfill(1));
 else     return null;
  }
  if (attribute.startsWith("String_Node_Str") && !attribute.startsWith("String_Node_Str"))   return new dEntity(getPlayerEntity()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str"))     return new Element(getPlayerEntity().getAddress().toString()).getAttribute(attribute.fulfill(1));
    return new Element(getPlayerEntity().getAddress().getHostName()).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getDisplayName()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getPlayerListName()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getName()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    dScript script=dScript.valueOf(attribute.getContext(1));
    if (script == null)     return Element.FALSE.getAttribute(attribute.fulfill(1));
    return new Element(FinishCommand.getScriptCompletes(getName(),script.getName()) > 0).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    dScript script=dScript.valueOf(attribute.getContext(1));
    if (script == null)     return Element.FALSE.getAttribute(attribute.fulfill(1));
    return new Element(FailCommand.getScriptFails(getName(),script.getName()) > 0).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new dLocation(getPlayerEntity().getCompassTarget()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getAllowFlight()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getFlySpeed()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    double maxHunger=getPlayerEntity().getMaxHealth();
    if (attribute.hasContext(2))     maxHunger=attribute.getIntContext(2);
    if (getPlayerEntity().getFoodLevel() / maxHunger < .10)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     if (getPlayerEntity().getFoodLevel() / maxHunger < .40)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     if (getPlayerEntity().getFoodLevel() / maxHunger < .75)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     if (getPlayerEntity().getFoodLevel() / maxHunger < 1)     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
 else     return new Element("String_Node_Str").getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getSaturation()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getFoodLevel()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getMaximumAir()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getRemainingAir()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    attribute=attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str"))     return new Element(getPlayerEntity().getGameMode().getValue()).getAttribute(attribute.fulfill(1));
    return new Element(getPlayerEntity().getGameMode().name()).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isBlocking()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isFlying()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isSleeping()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isSneaking()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().isSprinting()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    Statistic statistic=Statistic.valueOf(attribute.getContext(1).toUpperCase());
    if (attribute.getAttribute(2).startsWith("String_Node_Str")) {
      if (statistic == null)       return null;
      dObject obj=ObjectFetcher.pickObjectFor(attribute.getContext(2));
      if (obj instanceof dMaterial)       return new Element(getPlayerEntity().getStatistic(statistic,((dMaterial)obj).getMaterial())).getAttribute(attribute.fulfill(2));
 else       if (obj instanceof dEntity)       return new Element(getPlayerEntity().getStatistic(statistic,((dEntity)obj).getEntityType())).getAttribute(attribute.fulfill(2));
 else       return null;
    }
    if (statistic == null)     return null;
    return new Element(getPlayerEntity().getStatistic(statistic)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Duration(getPlayerEntity().getSleepTicks() / 20).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getPlayerTime()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getWalkSpeed()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    if (getPlayerEntity().getPlayerWeather() != null)     return new Element(getPlayerEntity().getPlayerWeather().name()).getAttribute(attribute.fulfill(1));
 else     return null;
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getLevel()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getExpToLevel()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getTotalExperience()).getAttribute(attribute.fulfill(2));
  if (attribute.startsWith("String_Node_Str"))   return new Element(getPlayerEntity().getExp() * 100).getAttribute(attribute.fulfill(1));
  for (  Property property : PropertyParser.getProperties(this)) {
    String returned=property.getAttribute(attribute);
    if (returned != null)     return returned;
  }
  return new dEntity(getPlayerEntity()).getAttribute(attribute);
}