Program: 44680
Project: 44680
Buggy source:
@EventHandler(priority=EventPriority.NORMAL) public void onPlayerInteract(PlayerInteractEvent event){
  if (!event.isCancelled()) {
    ItemStack is=event.getPlayer().getItemInHand();
    Player player=event.getPlayer();
    if (is.getTypeId() == 383 && event.getClickedBlock() != null && event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getTypeId() == 52) {
      if (plugin.hasPermissions(player,"String_Node_Str") && plugin.bl.intmobs.containsKey(new Integer(is.getDurability()))) {
        String type=plugin.bl.intmobs.get(new Integer(is.getDurability()));
        Block theSpawner=event.getClickedBlock();
        if (plugin.hasPermissions(player,"String_Node_Str" + type.toLowerCase())) {
          if (plugin.useiconomy && plugin.getEggMobPrice(type) > 0) {
            if (!player.hasPermission("String_Node_Str")) {
              if (plugin.iConomy.getBalance(player.getName()) < plugin.getEggMobPrice(type)) {
                player.sendMessage(ChatColor.DARK_GREEN + "String_Node_Str" + plugin.iConomy.format(plugin.getEggMobPrice(type))+ "String_Node_Str"+ ChatColor.RED+ type.toLowerCase()+ ChatColor.DARK_GREEN+ "String_Node_Str");
                event.setCancelled(true);
                return;
              }
            }
          }
          if (plugin.setSpawner(theSpawner,type)) {
            player.sendMessage(ChatColor.DARK_GREEN + "String_Node_Str" + ChatColor.RED+ type.toLowerCase()+ ChatColor.DARK_GREEN+ "String_Node_Str");
            if (player.getGameMode() == GameMode.SURVIVAL) {
              is.setAmount(is.getAmount() - 1);
            }
            if (plugin.useiconomy && plugin.getEggMobPrice(type) > 0) {
              if (!player.hasPermission("String_Node_Str")) {
                if (plugin.iConomy.getBalance(player.getName()) < plugin.getEggMobPrice(type)) {
                  plugin.iConomy.withdrawPlayer(player.getName(),plugin.getEggMobPrice(type));
                  player.sendMessage(ChatColor.DARK_GREEN + "String_Node_Str" + plugin.iConomy.format(plugin.getEggMobPrice(type))+ "String_Node_Str");
                }
              }
            }
          }
 else {
            player.sendMessage(ChatColor.DARK_RED + "String_Node_Str" + type.toLowerCase()+ "String_Node_Str");
          }
          event.setCancelled(true);
        }
 else {
          if (type != null && !plugin.hasPermissions(player,"String_Node_Str" + type.toLowerCase())) {
            if (plugin.hasPermissions(player,"String_Node_Str")) {
              player.sendMessage(plugin.eggthrowmessage);
            }
            event.setCancelled(true);
          }
 else           if (type == null && !plugin.hasPermissions(player,"String_Node_Str")) {
            if (plugin.hasPermissions(player,"String_Node_Str")) {
              player.sendMessage(plugin.eggthrowmessage);
            }
            event.setCancelled(true);
          }
        }
      }
    }
 else     if (is.getTypeId() == 383 && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
      String type=plugin.bl.intmobs.get(new Integer(is.getDurability()));
      if (type != null && !plugin.hasPermissions(player,"String_Node_Str" + type.toLowerCase())) {
        if (plugin.hasPermissions(player,"String_Node_Str")) {
          player.sendMessage(plugin.eggthrowmessage);
        }
        event.setCancelled(true);
      }
 else       if (type == null && !plugin.hasPermissions(player,"String_Node_Str")) {
        event.setCancelled(true);
      }
    }
 else     if (plugin.usespout != null && is.getType().getId() == plugin.tool && event.getClickedBlock() != null && event.getClickedBlock().getTypeId() == 52) {
      SpoutPlayer splayer=SpoutManager.getPlayer(player);
      if (splayer.isSpoutCraftEnabled() && plugin.hasPermissions(player,"String_Node_Str")) {
        CreatureSpawner theSpawner=(CreatureSpawner)event.getClickedBlock().getState();
        String monster=theSpawner.getCreatureTypeName().toLowerCase();
        splayer.getMainScreen().closePopup();
        plugin.ss.createMonsterGUI("String_Node_Str" + monster + "String_Node_Str",!plugin.hasPermissions(splayer,"String_Node_Str"),splayer);
      }
    }
  }
}

Fixed version (ground truth):
@EventHandler(priority=EventPriority.NORMAL) public void onPlayerInteract(PlayerInteractEvent event){
  if (!event.isCancelled()) {
    ItemStack is=event.getPlayer().getItemInHand();
    Player player=event.getPlayer();
    if (is.getTypeId() == 383 && event.getClickedBlock() != null && event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getTypeId() == 52) {
      if (plugin.hasPermissions(player,"String_Node_Str") && plugin.bl.intmobs.containsKey(new Integer(is.getDurability()))) {
        String type=plugin.bl.intmobs.get(new Integer(is.getDurability()));
        Block theSpawner=event.getClickedBlock();
        if (plugin.hasPermissions(player,"String_Node_Str" + type.toLowerCase())) {
          if (plugin.useiconomy && plugin.getEggMobPrice(type) > 0) {
            if (!player.hasPermission("String_Node_Str")) {
              if (plugin.iConomy.getBalance(player.getName()) < plugin.getEggMobPrice(type)) {
                player.sendMessage(ChatColor.DARK_GREEN + "String_Node_Str" + plugin.iConomy.format(plugin.getEggMobPrice(type))+ "String_Node_Str"+ ChatColor.RED+ type.toLowerCase()+ ChatColor.DARK_GREEN+ "String_Node_Str");
                event.setCancelled(true);
                return;
              }
            }
          }
          if (plugin.setSpawner(theSpawner,type)) {
            player.sendMessage(ChatColor.DARK_GREEN + "String_Node_Str" + ChatColor.RED+ type.toLowerCase()+ ChatColor.DARK_GREEN+ "String_Node_Str");
            if (player.getGameMode() == GameMode.SURVIVAL) {
              if (is.getAmount() == 1) {
                player.setItemInHand(new ItemStack(0));
              }
 else {
                is.setAmount(is.getAmount() - 1);
              }
            }
            if (plugin.useiconomy && plugin.getEggMobPrice(type) > 0) {
              if (!player.hasPermission("String_Node_Str")) {
                if (plugin.iConomy.getBalance(player.getName()) < plugin.getEggMobPrice(type)) {
                  plugin.iConomy.withdrawPlayer(player.getName(),plugin.getEggMobPrice(type));
                  player.sendMessage(ChatColor.DARK_GREEN + "String_Node_Str" + plugin.iConomy.format(plugin.getEggMobPrice(type))+ "String_Node_Str");
                }
              }
            }
          }
 else {
            player.sendMessage(ChatColor.DARK_RED + "String_Node_Str" + type.toLowerCase()+ "String_Node_Str");
          }
          event.setCancelled(true);
        }
 else {
          if (type != null && !plugin.hasPermissions(player,"String_Node_Str" + type.toLowerCase())) {
            if (plugin.hasPermissions(player,"String_Node_Str")) {
              player.sendMessage(plugin.eggthrowmessage);
            }
            event.setCancelled(true);
          }
 else           if (type == null && !plugin.hasPermissions(player,"String_Node_Str")) {
            if (plugin.hasPermissions(player,"String_Node_Str")) {
              player.sendMessage(plugin.eggthrowmessage);
            }
            event.setCancelled(true);
          }
        }
      }
    }
 else     if (is.getTypeId() == 383 && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
      String type=plugin.bl.intmobs.get(new Integer(is.getDurability()));
      if (type != null && !plugin.hasPermissions(player,"String_Node_Str" + type.toLowerCase())) {
        if (plugin.hasPermissions(player,"String_Node_Str")) {
          player.sendMessage(plugin.eggthrowmessage);
        }
        event.setCancelled(true);
      }
 else       if (type == null && !plugin.hasPermissions(player,"String_Node_Str")) {
        event.setCancelled(true);
      }
    }
 else     if (plugin.usespout != null && is.getType().getId() == plugin.tool && event.getClickedBlock() != null && event.getClickedBlock().getTypeId() == 52) {
      SpoutPlayer splayer=SpoutManager.getPlayer(player);
      if (splayer.isSpoutCraftEnabled() && plugin.hasPermissions(player,"String_Node_Str")) {
        CreatureSpawner theSpawner=(CreatureSpawner)event.getClickedBlock().getState();
        String monster=theSpawner.getCreatureTypeName().toLowerCase();
        splayer.getMainScreen().closePopup();
        plugin.ss.createMonsterGUI("String_Node_Str" + monster + "String_Node_Str",!plugin.hasPermissions(splayer,"String_Node_Str"),splayer);
      }
    }
  }
}