Program: 1584
Project: 1584
Buggy source:
/** 
 * Commands sent from in-game are parsed and evaluated here.
 * @param player
 * @param split
 */
public void onPlayerCommand(CommandSender sender,String[] split){
  Messaging.save(sender);
  boolean isPlayer=(sender instanceof Player);
  Player player=(sender instanceof Player) ? (Player)sender : null;
  if (split[0].equalsIgnoreCase("String_Node_Str")) {
switch (split.length) {
case 1:
      if (isPlayer)       showBalance("String_Node_Str",player,true);
 else {
        Messaging.send("String_Node_Str");
      }
    return;
case 2:
  if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
    if (!iConomy.hasPermissions(sender,"String_Node_Str") || !isPlayer) {
      return;
    }
    showRank(player,player.getName());
    return;
  }
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
  if (!iConomy.hasPermissions(player,"String_Node_Str")) {
    return;
  }
  showTop(sender,5);
  return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
  return;
}
Collection<Double> money=iConomy.getBank().getAccounts().values();
double totalMoney=0;
int totalPlayers=money.size();
for (Object o : money.toArray()) {
  totalMoney+=(Double)o;
}
Messaging.send(Template.color("String_Node_Str"));
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new Object[]{iConomy.getBank().getCurrency(),iConomy.getBank().format(totalMoney)}));
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new Object[]{iConomy.getBank().getCurrency(),iConomy.getBank().format(totalMoney / totalPlayers)}));
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new Object[]{iConomy.getBank().getCurrency(),totalPlayers}));
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"})) {
showHelp(player);
return;
}
 else {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
if (iConomy.getBank().hasAccount(split[1])) {
showBalance(split[1],sender,false);
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[1]}));
}
return;
}
case 3:
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
if (iConomy.getBank().hasAccount(split[2])) {
showRank(sender,split[2]);
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(player,"String_Node_Str")) {
return;
}
try {
showTop(sender,Integer.parseInt(split[2]) < 0 ? 5 : Integer.parseInt(split[2]));
}
 catch (Exception e) {
showTop(sender,5);
}
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
if (iConomy.getBank().hasAccount(split[2])) {
if (isPlayer) showReset(split[2],player,false);
 else {
showReset(split[2],null,true);
}
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
return;
}
break;
case 4:
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str") || !isPlayer) {
return;
}
String name="String_Node_Str";
double amount=0.0;
if (iConomy.getBank().hasAccount(split[2])) {
name=split[2];
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
return;
}
try {
amount=Double.parseDouble(split[3]);
if (amount < 0.01) {
throw new NumberFormatException();
}
}
 catch (NumberFormatException ex) {
Messaging.send("String_Node_Str" + amount);
Messaging.send("String_Node_Str");
return;
}
showPayment(player.getName(),name,amount);
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
String name="String_Node_Str";
double amount=0.0;
if (iConomy.getBank().hasAccount(split[2])) {
name=split[2];
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
try {
amount=Double.parseDouble(split[3]);
}
 catch (NumberFormatException e) {
Messaging.send("String_Node_Str" + split[3]);
Messaging.send("String_Node_Str");
}
if (isPlayer) showGrant(name,player,amount,false);
 else {
showGrant(name,null,amount,true);
}
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(player,"String_Node_Str")) {
return;
}
String name="String_Node_Str";
double amount=0.0;
if (iConomy.getBank().hasAccount(split[2])) {
name=split[2];
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
try {
amount=Double.parseDouble(split[3]);
}
 catch (NumberFormatException e) {
Messaging.send("String_Node_Str" + split[3]);
Messaging.send("String_Node_Str");
}
if (isPlayer) showSet(name,player,amount,false);
 else {
showSet(name,null,amount,true);
}
return;
}
break;
}
showHelp(player);
}
return;
}

Fixed version (ground truth):
/** 
 * Commands sent from in-game are parsed and evaluated here.
 * @param player
 * @param split
 */
public void onPlayerCommand(CommandSender sender,String[] split){
  Messaging.save(sender);
  boolean isPlayer=(sender instanceof Player);
  Player player=(sender instanceof Player) ? (Player)sender : null;
  if (split[0].equalsIgnoreCase("String_Node_Str")) {
switch (split.length) {
case 1:
      if (isPlayer)       showBalance("String_Node_Str",player,true);
 else {
        Messaging.send("String_Node_Str");
      }
    return;
case 2:
  if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
    if (!iConomy.hasPermissions(sender,"String_Node_Str") || !isPlayer) {
      return;
    }
    showRank(player,player.getName());
    return;
  }
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
  if (!iConomy.hasPermissions(player,"String_Node_Str")) {
    return;
  }
  showTop(sender,5);
  return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
  return;
}
Collection<Double> money=iConomy.getBank().getAccounts().values();
double totalMoney=0;
int totalPlayers=money.size();
for (Object o : money.toArray()) {
  totalMoney+=(Double)o;
}
Messaging.send(Template.color("String_Node_Str"));
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new Object[]{iConomy.getBank().getCurrency(),iConomy.getBank().format(totalMoney)}));
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new Object[]{iConomy.getBank().getCurrency(),iConomy.getBank().format(totalMoney / totalPlayers)}));
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new Object[]{iConomy.getBank().getCurrency(),totalPlayers}));
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"})) {
showHelp(player);
return;
}
 else {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
Player online=iConomy.getBukkitServer().getPlayer(split[1]);
if (online != null) {
split[1]=online.getName();
}
if (iConomy.getBank().hasAccount(split[1])) {
showBalance(split[1],sender,false);
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[1]}));
}
return;
}
case 3:
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
if (iConomy.getBank().hasAccount(split[2])) {
showRank(sender,split[2]);
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(player,"String_Node_Str")) {
return;
}
try {
showTop(sender,Integer.parseInt(split[2]) < 0 ? 5 : Integer.parseInt(split[2]));
}
 catch (Exception e) {
showTop(sender,5);
}
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
if (iConomy.getBank().hasAccount(split[2])) {
if (isPlayer) showReset(split[2],player,false);
 else {
showReset(split[2],null,true);
}
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
return;
}
break;
case 4:
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str") || !isPlayer) {
return;
}
String name="String_Node_Str";
double amount=0.0;
if (iConomy.getBank().hasAccount(split[2])) {
name=split[2];
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
return;
}
try {
amount=Double.parseDouble(split[3]);
if (amount < 0.01) {
throw new NumberFormatException();
}
}
 catch (NumberFormatException ex) {
Messaging.send("String_Node_Str" + amount);
Messaging.send("String_Node_Str");
return;
}
showPayment(player.getName(),name,amount);
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(sender,"String_Node_Str")) {
return;
}
String name="String_Node_Str";
double amount=0.0;
if (iConomy.getBank().hasAccount(split[2])) {
name=split[2];
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
try {
amount=Double.parseDouble(split[3]);
}
 catch (NumberFormatException e) {
Messaging.send("String_Node_Str" + split[3]);
Messaging.send("String_Node_Str");
}
if (isPlayer) showGrant(name,player,amount,false);
 else {
showGrant(name,null,amount,true);
}
return;
}
if (Misc.is(split[1],new String[]{"String_Node_Str","String_Node_Str"})) {
if (!iConomy.hasPermissions(player,"String_Node_Str")) {
return;
}
String name="String_Node_Str";
double amount=0.0;
if (iConomy.getBank().hasAccount(split[2])) {
name=split[2];
}
 else {
Messaging.send(Template.parse("String_Node_Str",new String[]{"String_Node_Str"},new String[]{split[2]}));
}
try {
amount=Double.parseDouble(split[3]);
}
 catch (NumberFormatException e) {
Messaging.send("String_Node_Str" + split[3]);
Messaging.send("String_Node_Str");
}
if (isPlayer) showSet(name,player,amount,false);
 else {
showSet(name,null,amount,true);
}
return;
}
break;
}
showHelp(player);
}
return;
}