Program: 79963
Project: 79963
Buggy source:
public static void setupItems() throws Exception {
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.GRANDMAS_WALKING_STICK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.LOG),null,null,new ItemStack(Material.LOG),null,null,new ItemStack(Material.LOG),null}).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.GRANDPAS_WALKING_STICK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),new ItemStack(Material.LOG),new ItemStack(Material.LEATHER),null,new ItemStack(Material.LOG),null,null,new ItemStack(Material.LOG),null}).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.PORTABLE_CRAFTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.BOOK),new ItemStack(Material.WORKBENCH),null,null,null,null,null,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.PORTABLE_CRAFTER,true)) {
        p.openWorkbench(p.getLocation(),true);
        p.getWorld().playSound(p.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.FORTUNE_COOKIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.COOKIE),new ItemStack(Material.PAPER),null,null,null,null,null,null,null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ENHANCED_CRAFTING_TABLE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.WORKBENCH),null,null,new ItemStack(Material.DISPENSER),null},new ItemStack[0],Material.WORKBENCH).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          final Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (int j=0; j < inv.getContents().length; j++) {
              if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],true)) {
                if (SlimefunItem.getByItem(inputs.get(i)[j]) instanceof SlimefunBackpack) {
                  if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],false)) {
                    craft=false;
                    break;
                  }
                }
 else {
                  craft=false;
                  break;
                }
              }
            }
            if (craft) {
              final ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i)).clone();
              if (Slimefun.hasUnlocked(p,adding,true)) {
                Inventory inv2=Bukkit.createInventory(null,9,"String_Node_Str");
                for (int j=0; j < inv.getContents().length; j++) {
                  inv2.setItem(j,inv.getContents()[j] != null ? (inv.getContents()[j].getAmount() > 1 ? new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1) : null) : null);
                }
                if (InvUtils.fits(inv2,adding)) {
                  SlimefunItem sfItem=SlimefunItem.getByItem(adding);
                  if (sfItem instanceof SlimefunBackpack) {
                    ItemStack backpack=null;
                    for (int j=0; j < 9; j++) {
                      if (inv.getContents()[j] != null) {
                        if (inv.getContents()[j].getType() != Material.AIR) {
                          if (SlimefunItem.getByItem(inv.getContents()[j]) instanceof SlimefunBackpack) {
                            backpack=inv.getContents()[j];
                            break;
                          }
                        }
                      }
                    }
                    String id="String_Node_Str";
                    int size=((SlimefunBackpack)sfItem).size;
                    if (backpack != null) {
                      for (                      String line : backpack.getItemMeta().getLore()) {
                        if (line.startsWith(ChatColor.translateAlternateColorCodes('&',"String_Node_Str")) && line.contains("String_Node_Str")) {
                          id=line.replace(ChatColor.translateAlternateColorCodes('&',"String_Node_Str"),"String_Node_Str");
                          Config cfg=new Config(new File("String_Node_Str" + id.split("String_Node_Str")[0] + "String_Node_Str"));
                          cfg.setValue("String_Node_Str" + id.split("String_Node_Str")[1] + "String_Node_Str",size);
                          cfg.save();
                          break;
                        }
                      }
                    }
                    if (id.equals("String_Node_Str")) {
                      for (int line=0; line < adding.getItemMeta().getLore().size(); line++) {
                        if (adding.getItemMeta().getLore().get(line).equals(ChatColor.translateAlternateColorCodes('&',"String_Node_Str"))) {
                          ItemMeta im=adding.getItemMeta();
                          List<String> lore=im.getLore();
                          lore.set(line,lore.get(line).replace("String_Node_Str",Backpacks.createBackpack(p,size)));
                          im.setLore(lore);
                          adding.setItemMeta(im);
                          break;
                        }
                      }
                    }
 else {
                      for (int line=0; line < adding.getItemMeta().getLore().size(); line++) {
                        if (adding.getItemMeta().getLore().get(line).equals(ChatColor.translateAlternateColorCodes('&',"String_Node_Str"))) {
                          ItemMeta im=adding.getItemMeta();
                          List<String> lore=im.getLore();
                          lore.set(line,lore.get(line).replace("String_Node_Str",id));
                          im.setLore(lore);
                          adding.setItemMeta(im);
                          break;
                        }
                      }
                    }
                  }
                  for (int j=0; j < 9; j++) {
                    if (inv.getContents()[j] != null) {
                      if (inv.getContents()[j].getType() != Material.AIR) {
                        if (inv.getContents()[j].getType().toString().endsWith("String_Node_Str"))                         inv.setItem(j,new ItemStack(Material.BUCKET));
 else                         if (inv.getContents()[j].getAmount() > 1)                         inv.setItem(j,new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1));
 else                         inv.setItem(j,null);
                      }
                    }
                  }
                  p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                  inv.addItem(adding);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.PORTABLE_DUSTBIN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT)}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.PORTABLE_DUSTBIN,true)) {
        e.setCancelled(true);
        p.openInventory(Bukkit.createInventory(null,9 * 3,ChatColor.DARK_RED + "String_Node_Str"));
        p.playSound(p.getLocation(),Sound.BLOCK_ANVIL_LAND,1,1);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.BEEF_JERKY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SALT,new ItemStack(Material.COOKED_BEEF),null,null,null,null,null,null,null},new String[]{"String_Node_Str"},new Integer[]{20}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.GRIND_STONE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.FENCE),null,null,new CustomItem(Material.DISPENSER,"String_Node_Str",0),null},new ItemStack[]{new ItemStack(Material.BLAZE_ROD),new ItemStack(Material.BLAZE_POWDER,4),new ItemStack(Material.BONE),new CustomItem(Material.INK_SACK,15,4),new ItemStack(Material.GRAVEL),new ItemStack(Material.FLINT),new ItemStack(Material.NETHER_STALK),new CustomItem(SlimefunItems.MAGIC_LUMP_1,2),new ItemStack(Material.EYE_OF_ENDER),new CustomItem(SlimefunItems.ENDER_LUMP_1,2),new ItemStack(Material.COBBLESTONE),new ItemStack(Material.GRAVEL),new ItemStack(Material.WHEAT),SlimefunItems.WHEAT_FLOUR,new ItemStack(Material.DIRT),SlimefunItems.STONE_CHUNK},Material.FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                ItemStack output=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,output)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(output);
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ARMOR_FORGE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.ANVIL),null,null,new CustomItem(Material.DISPENSER,"String_Node_Str",0),null},new ItemStack[]{},Material.ANVIL).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          final Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (int j=0; j < inv.getContents().length; j++) {
              if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],true)) {
                craft=false;
                break;
              }
            }
            if (craft) {
              final ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i));
              if (Slimefun.hasUnlocked(p,adding,true)) {
                if (InvUtils.fits(inv,adding)) {
                  for (                  ItemStack removing : inputs.get(i)) {
                    if (removing != null)                     inv.removeItem(removing);
                  }
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_ANVIL_USE,1,1);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(p.getLocation(),Sound.BLOCK_ANVIL_USE,1F,2F);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(p.getLocation(),Sound.BLOCK_ANVIL_USE,1F,2F);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ORE_CRUSHER,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.NETHER_FENCE),null,new ItemStack(Material.IRON_FENCE),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.IRON_FENCE)},new ItemStack[]{new ItemStack(Material.IRON_ORE),new CustomItem(SlimefunItems.IRON_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1),new ItemStack(Material.GOLD_ORE),new CustomItem(SlimefunItems.GOLD_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1),new ItemStack(Material.NETHERRACK,16),SlimefunItems.SULFATE,SlimefunItems.SIFTED_ORE,SlimefunItems.CRUSHED_ORE,SlimefunItems.CRUSHED_ORE,SlimefunItems.PULVERIZED_ORE,SlimefunItems.PURE_ORE_CLUSTER,SlimefunItems.TINY_URANIUM,new ItemStack(Material.COBBLESTONE,8),new ItemStack(Material.SAND,1),new ItemStack(Material.GOLD_INGOT),SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_4K,SlimefunItems.GOLD_DUST},Material.NETHER_FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(convert.getAmount());
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,1);
                  ;
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.COMPRESSOR,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.NETHER_FENCE),null,new ItemStack(Material.PISTON_BASE),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.PISTON_BASE)},new ItemStack[]{new ItemStack(Material.COAL,8),SlimefunItems.CARBON,new CustomItem(SlimefunItems.STEEL_INGOT,8),SlimefunItems.STEEL_PLATE,new CustomItem(SlimefunItems.CARBON,4),SlimefunItems.COMPRESSED_CARBON,new CustomItem(SlimefunItems.STONE_CHUNK,4),new ItemStack(Material.COBBLESTONE),new CustomItem(SlimefunItems.REINFORCED_ALLOY_INGOT,8),SlimefunItems.REINFORCED_PLATE},Material.NETHER_FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          final Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                final ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(convert.getAmount());
                  inv.removeItem(removing);
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_PISTON_EXTEND,1,1);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(p.getLocation(),Sound.BLOCK_PISTON_CONTRACT,1F,2F);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(p.getLocation(),Sound.BLOCK_PISTON_EXTEND,1F,2F);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGIC_LUMP_1,"String_Node_Str",RecipeType.GRIND_STONE,new ItemStack[]{null,null,null,null,new ItemStack(Material.NETHER_STALK),null,null,null,null},new CustomItem(SlimefunItems.MAGIC_LUMP_1,2)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGIC_LUMP_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MAGIC_LUMP_1,SlimefunItems.MAGIC_LUMP_1,null,SlimefunItems.MAGIC_LUMP_1,SlimefunItems.MAGIC_LUMP_1,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGIC_LUMP_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MAGIC_LUMP_2,SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,SlimefunItems.MAGIC_LUMP_2,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ENDER_LUMP_1,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,null,new ItemStack(Material.EYE_OF_ENDER),null,null,null,null},new CustomItem(SlimefunItems.ENDER_LUMP_1,2)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ENDER_LUMP_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,SlimefunItems.ENDER_LUMP_1,null,SlimefunItems.ENDER_LUMP_1,SlimefunItems.ENDER_LUMP_1,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ENDER_LUMP_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ENDER_LUMP_2,SlimefunItems.ENDER_LUMP_2,null,SlimefunItems.ENDER_LUMP_2,SlimefunItems.ENDER_LUMP_2,null,null,null,null}).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.ENDER_BACKPACK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.LEATHER),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.LEATHER),new ItemStack(Material.CHEST),new ItemStack(Material.LEATHER),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.LEATHER),SlimefunItems.ENDER_LUMP_2}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.ENDER_BACKPACK,true)) {
        e.setCancelled(true);
        p.openInventory(p.getEnderChest());
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ENDERMEN_TELEPORT,1,1);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_HELMET,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.EYE_OF_ENDER),SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN),null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_CHESTPLATE,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,null,SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),new ItemStack(Material.EYE_OF_ENDER),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_LEGGINGS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.EYE_OF_ENDER),SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_BOOTS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,SlimefunItems.ENDER_LUMP_1,null,SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.MAGIC_EYE_OF_ENDER,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.ENDER_PEARL),new ItemStack(Material.EYE_OF_ENDER),new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_2}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.MAGIC_EYE_OF_ENDER,true)) {
        e.setCancelled(true);
        PlayerInventory.update(p);
        if (p.getInventory().getHelmet() != null && p.getInventory().getChestplate() != null && p.getInventory().getLeggings() != null && p.getInventory().getBoots() != null) {
          if (SlimefunManager.isItemSimiliar(p.getInventory().getHelmet(),SlimefunItems.ENDER_HELMET,true) && SlimefunManager.isItemSimiliar(p.getInventory().getChestplate(),SlimefunItems.ENDER_CHESTPLATE,true) && SlimefunManager.isItemSimiliar(p.getInventory().getLeggings(),SlimefunItems.ENDER_LEGGINGS,true)&& SlimefunManager.isItemSimiliar(p.getInventory().getBoots(),SlimefunItems.ENDER_BOOTS,true)) {
            p.launchProjectile(EnderPearl.class);
            p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ENDERMEN_TELEPORT,1,1);
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.MAGIC_SUGAR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.REDSTONE),new ItemStack(Material.GLOWSTONE_DUST),null,null,null,null,null,null},new String[]{"String_Node_Str"},new Integer[]{4}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.MAGIC_SUGAR,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_GENERIC_EAT,1,1);
        p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,600,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.MONSTER_JERKY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SALT,new ItemStack(Material.ROTTEN_FLESH),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_HELMET,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT),null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_CHESTPLATE,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_LEGGINGS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT)},new PotionEffect[]{new PotionEffect(PotionEffectType.SPEED,300,2)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_BOOTS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT)},new PotionEffect[]{new PotionEffect(PotionEffectType.JUMP,300,5)}).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.SWORD_OF_BEHEADING,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.EMERALD),null,SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.EMERALD),SlimefunItems.MAGIC_LUMP_2,null,new ItemStack(Material.BLAZE_ROD),null},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},new Integer[]{70,40,25,40,40}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGICAL_BOOK_COVER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.BOOK),SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.BASIC_CIRCUIT_BOARD,"String_Node_Str",RecipeType.MOB_DROP,new ItemStack[]{null,null,null,null,new CustomItem(Material.MONSTER_EGG,"String_Node_Str",99),null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.ADVANCED_CIRCUIT_BOARD,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.REDSTONE_BLOCK),SlimefunItems.BASIC_CIRCUIT_BOARD,new ItemStack(Material.REDSTONE_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK)}).register(true);
  new SlimefunGadget(Categories.TOOLS,SlimefunItems.GOLD_PAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.STONE),new ItemStack(Material.BOWL),new ItemStack(Material.STONE),new ItemStack(Material.STONE),new ItemStack(Material.STONE),new ItemStack(Material.STONE)},new ItemStack[]{new ItemStack(Material.GRAVEL),new ItemStack(Material.FLINT),new ItemStack(Material.GRAVEL),new ItemStack(Material.CLAY_BALL),new ItemStack(Material.GRAVEL),SlimefunItems.SIFTED_ORE},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"},new Integer[]{47,28,15}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.GOLD_PAN,true)) {
        if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.GRAVEL) {
          List<ItemStack> drops=new ArrayList<ItemStack>();
          if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))           drops.add(SlimefunItems.SIFTED_ORE);
 else           if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))           drops.add(new ItemStack(Material.CLAY_BALL));
 else           if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))           drops.add(new ItemStack(Material.FLINT));
          if (CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(),e.getClickedBlock(),true)) {
            e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(),Effect.STEP_SOUND,e.getClickedBlock().getType());
            e.getClickedBlock().setType(Material.AIR);
            for (            ItemStack drop : drops) {
              e.getClickedBlock().getWorld().dropItemNaturally(e.getClickedBlock().getLocation(),drop);
            }
          }
        }
        e.setCancelled(true);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.SIFTED_ORE,"String_Node_Str",RecipeType.GOLD_PAN,new ItemStack[]{new ItemStack(Material.GRAVEL),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.SMELTERY,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.NETHER_FENCE),null,new ItemStack(Material.NETHER_BRICK),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.NETHER_BRICK),null,new ItemStack(Material.FLINT_AND_STEEL),null},new ItemStack[]{SlimefunItems.IRON_DUST,new ItemStack(Material.IRON_INGOT)},Material.NETHER_FENCE,new String[]{"String_Node_Str"},new Integer[]{34}).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (            ItemStack converting : inputs.get(i)) {
              if (converting != null) {
                for (int j=0; j < inv.getContents().length; j++) {
                  if (j == (inv.getContents().length - 1) && !SlimefunManager.isItemSimiliar(converting,inv.getContents()[j],true,SlimefunManager.DataType.ALWAYS)) {
                    craft=false;
                    break;
                  }
 else                   if (SlimefunManager.isItemSimiliar(inv.getContents()[j],converting,true,SlimefunManager.DataType.ALWAYS))                   break;
                }
              }
            }
            if (craft) {
              ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i));
              if (Slimefun.hasUnlocked(p,adding,true)) {
                if (InvUtils.fits(inv,adding)) {
                  for (                  ItemStack removing : inputs.get(i)) {
                    if (removing != null)                     inv.removeItem(removing);
                  }
                  inv.addItem(adding);
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_LAVA_POP,1,1);
                  p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                  Block raw_disp=b.getRelative(BlockFace.DOWN);
                  Hopper resf=null;
                  if (raw_disp.getRelative(BlockFace.EAST).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.EAST).getState();
                  }
 else                   if (raw_disp.getRelative(BlockFace.WEST).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.WEST).getState();
                  }
 else                   if (raw_disp.getRelative(BlockFace.NORTH).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.NORTH).getState();
                  }
 else                   if (raw_disp.getRelative(BlockFace.SOUTH).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.SOUTH).getState();
                  }
                  boolean isIgniteChamberInstalled=false;
                  if (resf != null) {
                    if (resf.getCustomName().equalsIgnoreCase(SlimefunItems.IGNITION_CHAMBER.getItemMeta().getDisplayName()))                     isIgniteChamberInstalled=true;
                  }
                  if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str"))) {
                    if (isIgniteChamberInstalled) {
                      if (resf.getInventory().contains(Material.FLINT_AND_STEEL)) {
                        ItemStack item=resf.getInventory().getItem(resf.getInventory().first(Material.FLINT_AND_STEEL));
                        item.setDurability((short)(item.getDurability() + 1));
                        if (item.getDurability() >= 64) {
                          item.setAmount(0);
                          p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ITEM_BREAK,1,1);
                          item.setAmount(0);
                        }
                        p.getWorld().playSound(p.getLocation(),Sound.ITEM_FLINTANDSTEEL_USE,1,1);
                      }
 else {
                        Messages.local.sendTranslation(p,"String_Node_Str",true);
                        BlockBreaker.nullify(b.getRelative(BlockFace.DOWN).getRelative(BlockFace.DOWN));
                      }
                    }
 else {
                      BlockBreaker.nullify(b.getRelative(BlockFace.DOWN).getRelative(BlockFace.DOWN));
                    }
                  }
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MACHINES_1,SlimefunItems.IGNITION_CHAMBER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_PLATE,SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.STEEL_PLATE,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_PLATE,SlimefunItems.ELECTRIC_MOTOR,null,new ItemStack(Material.HOPPER),null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.PRESSURE_CHAMBER,"String_Node_Str",new ItemStack[]{new ItemStack(Material.STEP),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.STEP),new ItemStack(Material.PISTON_BASE),new ItemStack(Material.GLASS),new ItemStack(Material.PISTON_BASE),new ItemStack(Material.PISTON_BASE),new ItemStack(Material.CAULDRON_ITEM),new ItemStack(Material.PISTON_BASE)},new ItemStack[]{SlimefunItems.CARBON_CHUNK,SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.RAW_CARBONADO,SlimefunItems.CARBONADO},Material.CAULDRON).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.UP).getRelative(BlockFace.UP).getState();
          final Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                final ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(convert.getAmount());
                  inv.removeItem(removing);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
                  p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                  p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                  p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(b.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
                      p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                      p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                      p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(b.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
                          p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                          p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                          p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                              p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                              p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.BATTERY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.REDSTONE),null,SlimefunItems.ZINC_INGOT,SlimefunItems.SULFATE,SlimefunItems.COPPER_INGOT,SlimefunItems.ZINC_INGOT,SlimefunItems.SULFATE,SlimefunItems.COPPER_INGOT}).register(true);
  SlimefunManager.registerArmorSet(new ItemStack(Material.GLOWSTONE),new ItemStack[]{SlimefunItems.GLOWSTONE_HELMET,SlimefunItems.GLOWSTONE_CHESTPLATE,SlimefunItems.GLOWSTONE_LEGGINGS,SlimefunItems.GLOWSTONE_BOOTS},"String_Node_Str",new PotionEffect[][]{new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)}},true,true);
  SlimefunManager.registerArmorSet(SlimefunItems.DAMASCUS_STEEL_INGOT,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_HELMET,SlimefunItems.DAMASCUS_STEEL_CHESTPLATE,SlimefunItems.DAMASCUS_STEEL_LEGGINGS,SlimefunItems.DAMASCUS_STEEL_BOOTS},"String_Node_Str",true,false);
  SlimefunManager.registerArmorSet(SlimefunItems.REINFORCED_ALLOY_INGOT,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_HELMET,SlimefunItems.REINFORCED_ALLOY_CHESTPLATE,SlimefunItems.REINFORCED_ALLOY_LEGGINGS,SlimefunItems.REINFORCED_ALLOY_BOOTS},"String_Node_Str",true,false);
  SlimefunManager.registerArmorSet(new ItemStack(Material.CACTUS),new ItemStack[]{SlimefunItems.CACTUS_HELMET,SlimefunItems.CACTUS_CHESTPLATE,SlimefunItems.CACTUS_LEGGINGS,SlimefunItems.CACTUS_BOOTS},"String_Node_Str",true,false);
  new Alloy(SlimefunItems.REINFORCED_ALLOY_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.SOLDER_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.GOLD_24K,null,null,null}).register(true);
  new Alloy(SlimefunItems.HARDENED_METAL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.ALUMINUM_BRONZE_INGOT,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.DAMASCUS_STEEL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.STEEL_INGOT,SlimefunItems.IRON_DUST,SlimefunItems.CARBON,new ItemStack(Material.IRON_INGOT),null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.STEEL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.IRON_DUST,SlimefunItems.CARBON,new ItemStack(Material.IRON_INGOT),null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.BRONZE_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.COPPER_DUST,SlimefunItems.TIN_DUST,SlimefunItems.COPPER_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.DURALUMIN_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.ALUMINUM_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.BILLON_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.SILVER_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.SILVER_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.BRASS_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.COPPER_DUST,SlimefunItems.ZINC_DUST,SlimefunItems.COPPER_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.ALUMINUM_BRASS_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.BRASS_INGOT,SlimefunItems.ALUMINUM_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.ALUMINUM_BRONZE_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.BRONZE_INGOT,SlimefunItems.ALUMINUM_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.CORINTHIAN_BRONZE_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.SILVER_DUST,SlimefunItems.GOLD_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.BRONZE_INGOT,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.SOLDER_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.LEAD_DUST,SlimefunItems.TIN_DUST,SlimefunItems.LEAD_INGOT,null,null,null,null,null,null}).register(true);
  new ReplacingAlloy(SlimefunItems.SYNTHETIC_SAPPHIRE,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,new ItemStack(Material.GLASS),new ItemStack(Material.THIN_GLASS),SlimefunItems.ALUMINUM_INGOT,new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),null,null,null,null}).register(true);
  new ReplacingItem(Categories.RESOURCES,SlimefunItems.SYNTHETIC_DIAMOND,"String_Node_Str",RecipeType.PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.CARBON_CHUNK,null,null,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.RAW_CARBONADO,"String_Node_Str",new ItemStack[]{SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.CARBON_CHUNK,new ItemStack(Material.THIN_GLASS),null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.NICKEL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.IRON_DUST,new ItemStack(Material.IRON_INGOT),SlimefunItems.COPPER_DUST,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.COBALT_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.IRON_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.NICKEL_INGOT,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.CARBONADO,"String_Node_Str",RecipeType.PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.RAW_CARBONADO,null,null,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.FERROSILICON,"String_Node_Str",new ItemStack[]{new ItemStack(Material.IRON_INGOT),SlimefunItems.IRON_DUST,SlimefunItems.SILICON,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.IRON_DUST,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{new ItemStack(Material.IRON_ORE),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.IRON_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1)).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_DUST,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{new ItemStack(Material.GOLD_ORE),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.GOLD_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1)).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.COPPER_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.TIN_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.LEAD_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SILVER_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ALUMINUM_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ZINC_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.MAGNESIUM_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.COPPER_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.COPPER_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.TIN_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.TIN_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SILVER_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.SILVER_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.LEAD_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.LEAD_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ALUMINUM_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.ALUMINUM_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ZINC_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.ZINC_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.MAGNESIUM_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.MAGNESIUM_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SULFATE,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{new ItemStack(Material.NETHERRACK,16),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.CARBON,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new ItemStack(Material.COAL,8),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.WHEAT_FLOUR,"String_Node_Str",RecipeType.GRIND_STONE,new ItemStack[]{null,null,null,null,new ItemStack(Material.WHEAT),null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.STEEL_PLATE,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new CustomItem(SlimefunItems.STEEL_INGOT,8),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.COMPRESSED_CARBON,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new CustomItem(SlimefunItems.CARBON,4),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.CARBON_CHUNK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,new ItemStack(Material.FLINT),SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.STEEL_THRUSTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.REDSTONE),null,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.STEEL_PLATE,new ItemStack(Material.FIREBALL),SlimefunItems.STEEL_PLATE}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.POWER_CRYSTAL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.REDSTONE),SlimefunItems.SYNTHETIC_SAPPHIRE,new ItemStack(Material.REDSTONE),SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.SYNTHETIC_SAPPHIRE,new ItemStack(Material.REDSTONE),SlimefunItems.SYNTHETIC_SAPPHIRE,new ItemStack(Material.REDSTONE)}).register(true);
  new Jetpack(SlimefunItems.DURALUMIN_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.DURALUMIN_INGOT,null,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.35).register(true);
  new Jetpack(SlimefunItems.SOLDER_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.SOLDER_INGOT,null,SlimefunItems.SOLDER_INGOT,SlimefunItems.SOLDER_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.SOLDER_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.4).register(true);
  new Jetpack(SlimefunItems.BILLON_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.BILLON_INGOT,null,SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BILLON_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.45).register(true);
  new Jetpack(SlimefunItems.STEEL_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.5).register(true);
  new Jetpack(SlimefunItems.DAMASCUS_STEEL_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.55).register(true);
  new Jetpack(SlimefunItems.REINFORCED_ALLOY_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.6).register(true);
  new Jetpack(SlimefunItems.CARBONADO_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.CARBON_CHUNK,null,SlimefunItems.CARBON_CHUNK,SlimefunItems.CARBONADO,SlimefunItems.POWER_CRYSTAL,SlimefunItems.CARBONADO,SlimefunItems.STEEL_THRUSTER,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.7).register(true);
  new SlimefunItem(Categories.TECH,SlimefunItems.PARACHUTE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CHAIN,null,SlimefunItems.CHAIN,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.CHAIN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,null},new CustomItem(SlimefunItems.CHAIN,8)).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.HOOK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,null,null}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.GRAPPLING_HOOK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.HOOK,SlimefunItems.HOOK,null,SlimefunItems.CHAIN,SlimefunItems.HOOK,SlimefunItems.CHAIN,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.GRAPPLING_HOOK,true)) {
        if (e.getClickedBlock() == null && !Variables.jump.containsKey(p.getUniqueId())) {
          Variables.jump.put(p.getUniqueId(),p.getItemInHand().getType() != Material.SHEARS);
          e.setCancelled(true);
          if (p.getItemInHand().getType() == Material.LEASH)           PlayerInventory.consumeItemInHand(p);
          Vector direction=p.getEyeLocation().getDirection().multiply(2.0);
          Projectile projectile=p.getWorld().spawn(p.getEyeLocation().add(direction.getX(),direction.getY(),direction.getZ()),Arrow.class);
          projectile.setShooter(p);
          projectile.setVelocity(direction);
          Arrow arrow=(Arrow)projectile;
          Bat b=(Bat)p.getWorld().spawnEntity(p.getLocation(),EntityType.BAT);
          b.setCanPickupItems(false);
          b.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY,100000,100000));
          b.setLeashHolder(arrow);
          Variables.damage.put(p.getUniqueId(),true);
          Variables.remove.put(p.getUniqueId(),new Entity[]{b,arrow});
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.MAGIC_WORKBENCH,"String_Node_Str",new ItemStack[]{null,null,null,null,null,null,new ItemStack(Material.BOOKSHELF),new ItemStack(Material.WORKBENCH),new ItemStack(Material.DISPENSER)},new ItemStack[0],Material.WORKBENCH).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=null;
          if (b.getRelative(1,0,0).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(1,0,0).getState();
 else           if (b.getRelative(0,0,1).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(0,0,1).getState();
 else           if (b.getRelative(-1,0,0).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(-1,0,0).getState();
 else           if (b.getRelative(0,0,-1).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(0,0,-1).getState();
          final Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (int j=0; j < inv.getContents().length; j++) {
              if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],true)) {
                craft=false;
                break;
              }
            }
            if (craft) {
              final ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i));
              if (Slimefun.hasUnlocked(p,adding,true)) {
                Inventory inv2=Bukkit.createInventory(null,9,"String_Node_Str");
                for (int j=0; j < inv.getContents().length; j++) {
                  inv2.setItem(j,inv.getContents()[j] != null ? (inv.getContents()[j].getAmount() > 1 ? new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1) : null) : null);
                }
                if (InvUtils.fits(inv2,adding)) {
                  for (int j=0; j < 9; j++) {
                    if (inv.getContents()[j] != null) {
                      if (inv.getContents()[j].getType() != Material.AIR) {
                        if (inv.getContents()[j].getAmount() > 1)                         inv.setItem(j,new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1));
 else                         inv.setItem(j,null);
                      }
                    }
                  }
                  p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                  p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                  p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                      p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                      p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                          p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                          p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                              p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_ELEMENTAL,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,SlimefunItems.MAGICAL_BOOK_COVER,SlimefunItems.MAGIC_LUMP_3,null,new ItemStack(Material.STICK),SlimefunItems.MAGICAL_BOOK_COVER,SlimefunItems.MAGIC_LUMP_3,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_WIND,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.FEATHER),SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.STAFF_ELEMENTAL,new ItemStack(Material.FEATHER),SlimefunItems.STAFF_ELEMENTAL,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.STAFF_WIND,true)) {
        if (p.getFoodLevel() >= 2) {
          if (p.getItemInHand().getType() != Material.SHEARS) {
            FoodLevelChangeEvent event=new FoodLevelChangeEvent(p,p.getFoodLevel() - 2);
            Bukkit.getPluginManager().callEvent(event);
            p.setFoodLevel(event.getFoodLevel());
          }
          p.setVelocity(p.getEyeLocation().getDirection().multiply(4));
          p.getWorld().playSound(p.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
          p.getWorld().playEffect(p.getLocation(),Effect.SMOKE,1);
          p.setFallDistance(0.0f);
        }
 else {
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_WATER,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.WATER_LILY),SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.STAFF_ELEMENTAL,new ItemStack(Material.WATER_LILY),SlimefunItems.STAFF_ELEMENTAL,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.STAFF_WATER,true)) {
        p.setFireTicks(0);
        Messages.local.sendTranslation(p,"String_Node_Str",true);
        return true;
      }
 else       return false;
    }
  }
);
  new MultiTool(SlimefunItems.DURALUMIN_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DURALUMIN_INGOT,null,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.DURALUMIN_INGOT,null,SlimefunItems.DURALUMIN_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.SOLDER_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLDER_INGOT,null,SlimefunItems.SOLDER_INGOT,SlimefunItems.SOLDER_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.SOLDER_INGOT,null,SlimefunItems.SOLDER_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.BILLON_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BILLON_INGOT,null,SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.BILLON_INGOT,null,SlimefunItems.BILLON_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.STEEL_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.DAMASCUS_STEEL_INGOT,null,SlimefunItems.DAMASCUS_STEEL_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.CARBONADO_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,null,SlimefunItems.CARBONADO,SlimefunItems.CARBONADO,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.CARBONADO,null,SlimefunItems.CARBONADO,null},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","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ORE_WASHER,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.DISPENSER),null,null,new ItemStack(Material.FENCE),null,null,new ItemStack(Material.CAULDRON_ITEM),null},new ItemStack[]{SlimefunItems.SIFTED_ORE,SlimefunItems.IRON_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.GOLD_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.COPPER_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.TIN_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.ZINC_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.ALUMINUM_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.MAGNESIUM_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.LEAD_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.SILVER_DUST},Material.FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.UP).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            if (current != null) {
              if (SlimefunManager.isItemSimiliar(current,SlimefunItems.SIFTED_ORE,true)) {
                ItemStack adding=SlimefunItems.IRON_DUST;
                if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.GOLD_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.ALUMINUM_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.COPPER_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.ZINC_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.TIN_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.MAGNESIUM_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.LEAD_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.SILVER_DUST;
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.WATER);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1,1);
                  if (InvUtils.fits(inv,SlimefunItems.STONE_CHUNK))                   inv.addItem(SlimefunItems.STONE_CHUNK);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
 else               if (SlimefunManager.isItemSimiliar(current,new ItemStack(Material.SAND,4),false)) {
                ItemStack adding=SlimefunItems.SALT;
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(4);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.WATER);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1,1);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
 else               if (SlimefunManager.isItemSimiliar(current,SlimefunItems.PULVERIZED_ORE,true)) {
                ItemStack adding=SlimefunItems.PURE_ORE_CLUSTER;
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.WATER);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1,1);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_24K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_22K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_22K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_20K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_20K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_18K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_18K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_16K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_16K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_14K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_14K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_12K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_12K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_10K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_10K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_8K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_8K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_6K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_6K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_4K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_4K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.STONE_CHUNK,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SILICON,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{new ItemStack(Material.QUARTZ_BLOCK),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.SOLAR_PANEL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),SlimefunItems.SILICON,SlimefunItems.SILICON,SlimefunItems.SILICON,SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON}).register(true);
  new SolarHelmet(Categories.TECH,SlimefunItems.SOLAR_HELMET,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.SOLAR_PANEL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.MEDIUM_CAPACITOR,null,SlimefunItems.MEDIUM_CAPACITOR},new String[]{"String_Node_Str"},new Double[]{0.1}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.LAVA_CRYSTAL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.RUNE_FIRE,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.MAGIC_LUMP_1}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_FIRE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,null,SlimefunItems.LAVA_CRYSTAL,null,SlimefunItems.STAFF_ELEMENTAL,null,SlimefunItems.STAFF_ELEMENTAL,null,null}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.AUTO_SMELT_PICKAXE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LAVA_CRYSTAL,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.LAVA_CRYSTAL,null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.AUTO_SMELT_PICKAXE,true)) {
        if (e.getBlock().getType().equals(Material.SKULL))         return true;
        int j=-1;
        for (int i=0; i < e.getBlock().getDrops().size(); i++) {
          if (((List<ItemStack>)e.getBlock().getDrops()).get(i) != null) {
            j++;
            drops.add(e.getBlock().getType().toString().endsWith("String_Node_Str") ? new CustomItem(((List<ItemStack>)e.getBlock().getDrops()).get(i),fortune) : ((List<ItemStack>)e.getBlock().getDrops()).get(i));
            if (RecipeCalculator.getSmeltedOutput(drops.get(i).getType()) != null) {
              e.getBlock().getWorld().playEffect(e.getBlock().getLocation(),Effect.MOBSPAWNER_FLAMES,1);
              drops.set(j,new CustomItem(RecipeCalculator.getSmeltedOutput(drops.get(i).getType()),drops.get(i).getAmount()));
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.TALISMAN,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.MAGIC_LUMP_2,SlimefunItems.GOLD_8K,SlimefunItems.MAGIC_LUMP_2,null,new ItemStack(Material.EMERALD),null,SlimefunItems.MAGIC_LUMP_2,SlimefunItems.GOLD_8K,SlimefunItems.MAGIC_LUMP_2},new String[]{"String_Node_Str"},new Boolean[]{false}).register(true);
  new Talisman(SlimefunItems.TALISMAN_ANVIL,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.ANVIL),SlimefunItems.TALISMAN,new ItemStack(Material.ANVIL),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,false,"String_Node_Str",new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_MINER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.TALISMAN,SlimefunItems.SIFTED_ORE,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,false,"String_Node_Str",20,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_HUNTER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.TALISMAN,SlimefunItems.MONSTER_JERKY,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,false,"String_Node_Str",20,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_LAVA,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.TALISMAN,new ItemStack(Material.LAVA_BUCKET),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.FIRE_RESISTANCE,3600,4)).register(true);
  new Talisman(SlimefunItems.TALISMAN_WATER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.WATER_BUCKET),SlimefunItems.TALISMAN,new ItemStack(Material.FISHING_ROD),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.WATER_BREATHING,3600,4)).register(true);
  new Talisman(SlimefunItems.TALISMAN_ANGEL,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.FEATHER),SlimefunItems.TALISMAN,new ItemStack(Material.FEATHER),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,true,"String_Node_Str",75,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_FIRE,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.TALISMAN,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.FIRE_RESISTANCE,3600,4)).register(true);
  new Talisman(SlimefunItems.TALISMAN_MAGICIAN,"String_Node_Str",new ItemStack[]{SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3,new ItemStack(Material.ENCHANTMENT_TABLE),SlimefunItems.TALISMAN,new ItemStack(Material.ENCHANTMENT_TABLE),SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3},false,false,"String_Node_Str",80,new PotionEffect[0]).register(true);
  for (  Enchantment e : Enchantment.values()) {
    for (int i=1; i <= e.getMaxLevel(); i++) {
      Slimefun.setItemVariable("String_Node_Str","String_Node_Str" + e.getName() + "String_Node_Str"+ i,true);
    }
  }
  new Talisman(SlimefunItems.TALISMAN_TRAVELLER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.STAFF_WIND,SlimefunItems.TALISMAN_ANGEL,SlimefunItems.STAFF_WIND,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,false,"String_Node_Str",60,new PotionEffect(PotionEffectType.SPEED,3600,2)).register(true);
  new Talisman(SlimefunItems.TALISMAN_WARRIOR,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.TALISMAN,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.INCREASE_DAMAGE,3600,2)).register(true);
  new Talisman(SlimefunItems.TALISMAN_KNIGHT,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.GILDED_IRON,SlimefunItems.TALISMAN_WARRIOR,SlimefunItems.GILDED_IRON,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},"String_Node_Str",30,new PotionEffect(PotionEffectType.REGENERATION,100,3)).register(true);
  new Alloy(SlimefunItems.GILDED_IRON,"String_Node_Str",new ItemStack[]{SlimefunItems.GOLD_24K,SlimefunItems.IRON_DUST,null,null,null,null,null,null,null}).register(true);
  new ReplacingAlloy(SlimefunItems.SYNTHETIC_EMERALD,"String_Node_Str",new ItemStack[]{SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.ALUMINUM_DUST,SlimefunItems.ALUMINUM_INGOT,new ItemStack(Material.THIN_GLASS),null,null,null,null,null}).register(true);
  SlimefunManager.registerArmorSet(SlimefunItems.CHAIN,new ItemStack[]{new ItemStack(Material.CHAINMAIL_HELMET),new ItemStack(Material.CHAINMAIL_CHESTPLATE),new ItemStack(Material.CHAINMAIL_LEGGINGS),new ItemStack(Material.CHAINMAIL_BOOTS)},"String_Node_Str",true,true);
  new Talisman(SlimefunItems.TALISMAN_WHIRLWIND,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.STAFF_WIND,SlimefunItems.TALISMAN_TRAVELLER,SlimefunItems.STAFF_WIND,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,true,"String_Node_Str",60,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_WIZARD,"String_Node_Str",new ItemStack[]{SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.TALISMAN_MAGICIAN,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3},false,false,"String_Node_Str",60,new PotionEffect[0]).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.LUMBER_AXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.SYNTHETIC_DIAMOND,null,SlimefunItems.SYNTHETIC_EMERALD,SlimefunItems.GILDED_IRON,null,null,SlimefunItems.GILDED_IRON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.LUMBER_AXE,true)) {
        if (e.getBlock().getType() == Material.LOG || e.getBlock().getType() == Material.LOG_2) {
          List<Location> logs=new ArrayList<Location>();
          TreeCalculator.getTree(e.getBlock().getLocation(),e.getBlock().getLocation(),logs);
          if (logs.contains(e.getBlock()))           logs.remove(e.getBlock());
          for (          Location b : logs) {
            if (CSCoreLib.getLib().getProtectionManager().canBuild(e.getPlayer().getUniqueId(),b.getBlock())) {
              b.getWorld().playEffect(b,Effect.STEP_SOUND,b.getBlock().getType());
              for (              ItemStack drop : b.getBlock().getDrops()) {
                b.getWorld().dropItemNaturally(b,drop);
              }
              b.getBlock().setType(Material.AIR);
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.SALT,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{null,null,null,null,new ItemStack(Material.SAND,4),null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.HEAVY_CREAM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.MILK_BUCKET),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.HEAVY_CREAM,2)).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.CHEESE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.MILK_BUCKET),SlimefunItems.SALT,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.BUTTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HEAVY_CREAM,SlimefunItems.SALT,null,null,null,null,null,null,null}).register(true);
  SlimefunManager.registerArmorSet(SlimefunItems.GILDED_IRON,new ItemStack[]{SlimefunItems.GILDED_IRON_HELMET,SlimefunItems.GILDED_IRON_CHESTPLATE,SlimefunItems.GILDED_IRON_LEGGINGS,SlimefunItems.GILDED_IRON_BOOTS},"String_Node_Str",true,false);
  new SlimefunArmorPiece(Categories.ARMOR,SlimefunItems.SCUBA_HELMET,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new ItemStack(Material.THIN_GLASS),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),null,null,null},new PotionEffect[]{new PotionEffect(PotionEffectType.WATER_BREATHING,300,1)}).register(true);
  new SlimefunArmorPiece(Categories.ARMOR,SlimefunItems.HAZMATSUIT_CHESTPLATE,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new MaterialData(Material.WOOL,(byte)1).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1)},new PotionEffect[]{new PotionEffect(PotionEffectType.FIRE_RESISTANCE,300,1)}).register(true);
  new SlimefunItem(Categories.ARMOR,SlimefunItems.HAZMATSUIT_LEGGINGS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)1).toItemStack(1)}).register(true);
  new SlimefunItem(Categories.ARMOR,SlimefunItems.RUBBER_BOOTS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new MaterialData(Material.WOOL,(byte)15).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)15).toItemStack(1)}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.CRUSHED_ORE,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.PULVERIZED_ORE,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{SlimefunItems.CRUSHED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.PURE_ORE_CLUSTER,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.PULVERIZED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.TINY_URANIUM,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{SlimefunItems.PURE_ORE_CLUSTER,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.SMALL_URANIUM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.URANIUM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SMALL_URANIUM,SlimefunItems.SMALL_URANIUM,null,SlimefunItems.SMALL_URANIUM,SlimefunItems.SMALL_URANIUM,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.REDSTONE_ALLOY,"String_Node_Str",new ItemStack[]{new ItemStack(Material.REDSTONE),new ItemStack(Material.REDSTONE_BLOCK),SlimefunItems.FERROSILICON,SlimefunItems.HARDENED_METAL_INGOT,null,null,null,null,null}).register(true);
  SlimefunManager.registerArmorSet(SlimefunItems.GOLD_12K,new ItemStack[]{SlimefunItems.GOLD_HELMET,SlimefunItems.GOLD_CHESTPLATE,SlimefunItems.GOLD_LEGGINGS,SlimefunItems.GOLD_BOOTS},"String_Node_Str",true,false);
  new SlimefunItem(Categories.MISC,SlimefunItems.CLOTH,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.WOOL),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.CLOTH,8)).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.RAG,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH,new ItemStack(Material.STRING),null,new ItemStack(Material.STRING),SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.RAG,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playEffect(p.getLocation(),Effect.STEP_SOUND,Material.WOOL);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,0));
        p.setFireTicks(0);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.BANDAGE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.RAG,new ItemStack(Material.STRING),SlimefunItems.RAG,null,null,null,null,null,null},new CustomItem(SlimefunItems.BANDAGE,4),new String[]{"String_Node_Str"},new Boolean[]{true}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.BANDAGE,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playEffect(p.getLocation(),Effect.STEP_SOUND,Material.WOOL);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,1));
        p.setFireTicks(0);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.SPLINT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.STICK),new ItemStack(Material.STICK),new ItemStack(Material.STICK),null,new ItemStack(Material.IRON_INGOT),null},new CustomItem(SlimefunItems.SPLINT,4),new String[]{"String_Node_Str"},new Boolean[]{true}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.SPLINT,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_SKELETON_HURT,1,1);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,0));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.CAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,null,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT},new CustomItem(SlimefunItems.CAN,4)).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.VITAMINS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.APPLE),new ItemStack(Material.RED_MUSHROOM),new ItemStack(Material.SUGAR),null,null,null,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.VITAMINS,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_GENERIC_EAT,1,1);
        if (p.hasPotionEffect(PotionEffectType.POISON))         p.removePotionEffect(PotionEffectType.POISON);
        if (p.hasPotionEffect(PotionEffectType.WITHER))         p.removePotionEffect(PotionEffectType.WITHER);
        if (p.hasPotionEffect(PotionEffectType.SLOW))         p.removePotionEffect(PotionEffectType.SLOW);
        if (p.hasPotionEffect(PotionEffectType.SLOW_DIGGING))         p.removePotionEffect(PotionEffectType.SLOW_DIGGING);
        if (p.hasPotionEffect(PotionEffectType.WEAKNESS))         p.removePotionEffect(PotionEffectType.WEAKNESS);
        if (p.hasPotionEffect(PotionEffectType.CONFUSION))         p.removePotionEffect(PotionEffectType.CONFUSION);
        if (p.hasPotionEffect(PotionEffectType.BLINDNESS))         p.removePotionEffect(PotionEffectType.BLINDNESS);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,2));
        p.setFireTicks(0);
        e.setCancelled(true);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.MEDICINE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.VITAMINS,new ItemStack(Material.GLASS_BOTTLE),SlimefunItems.HEAVY_CREAM,null,null,null,null,null,null}).register(true);
  new SlimefunArmorPiece(Categories.TECH,SlimefunItems.NIGHT_VISION_GOGGLES,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.COAL_BLOCK),new ItemStack(Material.COAL_BLOCK),new ItemStack(Material.COAL_BLOCK),new MaterialData(Material.STAINED_GLASS_PANE,(byte)5).toItemStack(1),new ItemStack(Material.COAL_BLOCK),new MaterialData(Material.STAINED_GLASS_PANE,(byte)5).toItemStack(1),new ItemStack(Material.COAL_BLOCK),null,new ItemStack(Material.COAL_BLOCK)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,20)}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.PICKAXE_OF_CONTAINMENT,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON,null,SlimefunItems.GILDED_IRON,null,null,SlimefunItems.GILDED_IRON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.PICKAXE_OF_CONTAINMENT,true)) {
        if (e.getBlock().getType() != Material.MOB_SPAWNER)         return true;
        ItemStack spawner=SlimefunItems.BROKEN_SPAWNER.clone();
        ItemMeta im=spawner.getItemMeta();
        List<String> lore=im.getLore();
        for (int i=0; i < lore.size(); i++) {
          if (lore.get(i).contains("String_Node_Str"))           lore.set(i,lore.get(i).replace("String_Node_Str",StringUtils.format(((CreatureSpawner)e.getBlock().getState()).getSpawnedType().toString())));
        }
        im.setLore(lore);
        spawner.setItemMeta(im);
        e.getBlock().getLocation().getWorld().dropItemNaturally(e.getBlock().getLocation(),spawner);
        e.setExpToDrop(0);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.HERCULES_PICKAXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.HERCULES_PICKAXE,true) && e.getBlock().getType().toString().endsWith("String_Node_Str")) {
        if (e.getBlock().getType() == Material.IRON_ORE)         drops.add(new CustomItem(SlimefunItems.IRON_DUST,2));
 else         if (e.getBlock().getType() == Material.GOLD_ORE)         drops.add(new CustomItem(SlimefunItems.GOLD_DUST,2));
 else {
          for (          ItemStack drop : e.getBlock().getDrops()) {
            drops.add(new CustomItem(drop,2));
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.SAW_MILL,"String_Node_Str",new ItemStack[]{null,null,null,new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG),new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG),new ItemStack(Material.WORKBENCH),new ItemStack(Material.LOG)},new ItemStack[]{},Material.WORKBENCH).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.SAW_MILL,true)) {
          if (b.getRelative(BlockFace.UP).getType() == Material.LOG)           BlockBreaker.breakBlock(p,b.getRelative(BlockFace.UP),Arrays.asList(new ItemStack[]{new CustomItem(Material.WOOD,b.getRelative(BlockFace.UP).getData() % 4,8)}),true);
 else           if (b.getRelative(BlockFace.UP).getType() == Material.LOG_2)           BlockBreaker.breakBlock(p,b.getRelative(BlockFace.UP),Arrays.asList(new ItemStack[]{new CustomItem(Material.WOOD,(b.getRelative(BlockFace.UP).getData() % 2) + 4,8)}),true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,new CustomItem(Material.FIRE,"String_Node_Str",0),"String_Node_Str",new ItemStack[]{null,null,null,new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG_2),new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG),new ItemStack(Material.WORKBENCH),new ItemStack(Material.LOG)},new ItemStack[]{},Material.WORKBENCH,true).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_HELMET_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_CHESTPLATE_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_LEGGINGS_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL)},new PotionEffect[]{new PotionEffect(PotionEffectType.SPEED,300,2)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_BOOTS_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL)},new PotionEffect[]{new PotionEffect(PotionEffectType.JUMP,300,5)}).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.BLADE_OF_VAMPIRES,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new MaterialData(Material.SKULL_ITEM,(byte)1).toItemStack(1),null,null,new MaterialData(Material.SKULL_ITEM,(byte)1).toItemStack(1),null,null,new ItemStack(Material.BLAZE_ROD),null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.DIGITAL_MINER,"String_Node_Str",new ItemStack[]{SlimefunItems.SOLAR_PANEL,new ItemStack(Material.CHEST),SlimefunItems.SOLAR_PANEL,new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.DISPENSER),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.HOPPER),new ItemStack(Material.IRON_BLOCK)},new ItemStack[0],Material.DISPENSER).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.DIGITAL_MINER,true)) {
          Chest chest=(Chest)b.getRelative(BlockFace.UP).getState();
          final Inventory inv=chest.getInventory();
          List<Location> ores=new ArrayList<Location>();
          for (int x=b.getX() - 4; x < b.getX() + 4; x++) {
            for (int z=b.getZ() - 4; z < b.getZ() + 4; z++) {
              for (int y=b.getY(); y > 0; y--) {
                if (b.getWorld().getBlockAt(x,y,z).getType().toString().endsWith("String_Node_Str")) {
                  ores.add(b.getWorld().getBlockAt(x,y,z).getLocation());
                }
              }
            }
          }
          if (!ores.isEmpty()) {
            final Material ore=ores.get(0).getBlock().getType();
            final ItemStack adding=new ItemStack(ore);
            ores.get(0).getBlock().setType(Material.AIR);
            ores.clear();
            if (InvUtils.fits(inv,adding)) {
              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                @Override public void run(){
                                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                                  p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                                  inv.addItem(adding);
                                }
                              }
,20L);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
              }
,20L);
            }
 else             Messages.local.sendTranslation(p,"String_Node_Str",true);
          }
 else           Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ADVANCED_DIGITAL_MINER,"String_Node_Str",new ItemStack[]{SlimefunItems.SOLAR_PANEL,new ItemStack(Material.CHEST),SlimefunItems.SOLAR_PANEL,SlimefunItems.GOLD_24K_BLOCK,new ItemStack(Material.DISPENSER),SlimefunItems.GOLD_24K_BLOCK,SlimefunItems.GOLD_24K_BLOCK,new ItemStack(Material.HOPPER),SlimefunItems.GOLD_24K_BLOCK},new ItemStack[0],Material.DISPENSER).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.ADVANCED_DIGITAL_MINER,true)) {
          Chest chest=(Chest)b.getRelative(BlockFace.UP).getState();
          final Inventory inv=chest.getInventory();
          List<Location> ores=new ArrayList<Location>();
          for (int x=b.getX() - 6; x < b.getX() + 6; x++) {
            for (int z=b.getZ() - 6; z < b.getZ() + 6; z++) {
              for (int y=b.getY(); y > 0; y--) {
                if (b.getWorld().getBlockAt(x,y,z).getType().toString().endsWith("String_Node_Str")) {
                  ores.add(b.getWorld().getBlockAt(x,y,z).getLocation());
                }
              }
            }
          }
          if (!ores.isEmpty()) {
            final Material ore=ores.get(0).getBlock().getType();
            ItemStack drop=new ItemStack(ore);
            if (ore == Material.COAL_ORE)             drop=new CustomItem(new ItemStack(Material.COAL),4);
 else             if (ore == Material.IRON_ORE)             drop=new CustomItem(SlimefunItems.IRON_DUST,2);
 else             if (ore == Material.GOLD_ORE)             drop=new CustomItem(SlimefunItems.GOLD_DUST,2);
 else             if (ore == Material.REDSTONE_ORE)             drop=new CustomItem(new ItemStack(Material.REDSTONE),8);
 else             if (ore == Material.QUARTZ_ORE)             drop=new CustomItem(new ItemStack(Material.QUARTZ),4);
 else             if (ore == Material.LAPIS_ORE)             drop=new CustomItem(new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),12);
 else {
              for (              ItemStack drops : ores.get(0).getBlock().getDrops()) {
                if (!drops.getType().isBlock())                 drop=new CustomItem(drops,2);
              }
            }
            final ItemStack adding=drop;
            ores.get(0).getBlock().setType(Material.AIR);
            ores.clear();
            if (InvUtils.fits(inv,adding)) {
              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
              }
,20L);
            }
 else             Messages.local.sendTranslation(p,"String_Node_Str",true);
          }
 else           Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.GOLD_24K_BLOCK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K}).register(true);
  new SlimefunGadget(Categories.MACHINES_1,SlimefunItems.COMPOSTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.WOOD_STEP),null,new ItemStack(Material.WOOD_STEP),new ItemStack(Material.WOOD_STEP),null,new ItemStack(Material.WOOD_STEP),new ItemStack(Material.WOOD_STEP),new ItemStack(Material.CAULDRON_ITEM),new ItemStack(Material.WOOD_STEP)},new ItemStack[]{new CustomItem(Material.LEAVES,0,8),new ItemStack(Material.DIRT),new CustomItem(Material.LEAVES_2,0,8),new ItemStack(Material.DIRT),new CustomItem(Material.SAPLING,0,8),new ItemStack(Material.DIRT),new ItemStack(Material.STONE,4),new ItemStack(Material.NETHERRACK),new ItemStack(Material.SAND,2),new ItemStack(Material.SOUL_SAND),new ItemStack(Material.WHEAT,4),new ItemStack(Material.NETHER_STALK)}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    final Player p,    ItemStack item){
      if (e.getClickedBlock() != null) {
        SlimefunItem machine=BlockStorage.check(e.getClickedBlock());
        if (machine != null && machine.getName().equals("String_Node_Str")) {
          final ItemStack input=p.getItemInHand();
          final Block b=e.getClickedBlock();
          for (          ItemStack convert : RecipeType.getRecipeInputs(machine)) {
            if (convert != null && SlimefunManager.isItemSimiliar(input,convert,true)) {
              ItemStack removing=input.clone();
              removing.setAmount(convert.getAmount());
              p.getInventory().removeItem(removing);
              final ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  if (input.getType().isBlock())                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      if (input.getType().isBlock())                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          if (input.getType().isBlock())                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              if (input.getType().isBlock())                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                @Override public void run(){
                                  if (input.getType().isBlock())                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                    @Override public void run(){
                                      if (input.getType().isBlock())                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                        @Override public void run(){
                                          if (input.getType().isBlock())                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                            @Override public void run(){
                                              if (input.getType().isBlock())                                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                                @Override public void run(){
                                                  if (input.getType().isBlock())                                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                                    @Override public void run(){
                                                      if (input.getType().isBlock())                                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                                        @Override public void run(){
                                                          if (input.getType().isBlock())                                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                                          p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                                                          b.getWorld().dropItemNaturally(b.getRelative(BlockFace.UP).getLocation(),adding);
                                                        }
                                                      }
,30L);
                                                    }
                                                  }
,30L);
                                                }
                                              }
,30L);
                                            }
                                          }
,30L);
                                        }
                                      }
,30L);
                                    }
                                  }
,30L);
                                }
                              }
,30L);
                            }
                          }
,30L);
                        }
                      }
,30L);
                    }
                  }
,30L);
                }
              }
,30L);
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
          return true;
        }
      }
      return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.FARMER_SHOES,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.HAY_BLOCK),null,new ItemStack(Material.HAY_BLOCK),new ItemStack(Material.HAY_BLOCK),null,new ItemStack(Material.HAY_BLOCK)}).register(true);
  @SuppressWarnings("String_Node_Str") final String[] explosiveblacklist=Slimefun.getItemValue("String_Node_Str","String_Node_Str") != null ? ((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).toArray(new String[((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).size()]) : new String[]{"String_Node_Str"};
  new SlimefunItem(Categories.TOOLS,SlimefunItems.EXPLOSIVE_PICKAXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.TNT),SlimefunItems.SYNTHETIC_DIAMOND,new ItemStack(Material.TNT),null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null},new String[]{"String_Node_Str"},new Object[]{Arrays.asList("String_Node_Str")}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.EXPLOSIVE_PICKAXE,true)) {
        e.getBlock().getWorld().createExplosion(e.getBlock().getLocation(),0.0F);
        e.getBlock().getWorld().playSound(e.getBlock().getLocation(),Sound.ENTITY_GENERIC_EXPLODE,1F,1F);
        for (int x=-1; x <= 1; x++) {
          for (int y=-1; y <= 1; y++) {
            for (int z=-1; z <= 1; z++) {
              Block b=e.getBlock().getRelative(x,y,z);
              if (b.getType() != Material.AIR && !StringUtils.equals(b.getType().toString(),explosiveblacklist)) {
                if (CSCoreLib.getLib().getProtectionManager().canBuild(e.getPlayer().getUniqueId(),b)) {
                  if (SlimefunStartup.instance.isCoreProtectInstalled())                   SlimefunStartup.instance.getCoreProtectAPI().logRemoval(e.getPlayer().getName(),b.getLocation(),b.getType(),b.getData());
                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,b.getType());
                  SlimefunItem sfItem=BlockStorage.check(b);
                  boolean allow=true;
                  if (sfItem != null && !(sfItem instanceof HandledBlock)) {
                    if (SlimefunItem.blockhandler.containsKey(sfItem.getName())) {
                      allow=SlimefunItem.blockhandler.get(sfItem.getName()).onBreak(e.getPlayer(),e.getBlock(),sfItem,UnregisterReason.PLAYER_BREAK);
                    }
                    if (allow) {
                      drops.add(BlockStorage.retrieve(e.getBlock()));
                    }
                  }
 else                   if (b.getType().equals(Material.SKULL)) {
                    b.breakNaturally();
                  }
 else                   if (b.getType().name().endsWith("String_Node_Str")) {
                    b.breakNaturally();
                  }
 else {
                    for (                    ItemStack drop : b.getDrops()) {
                      b.getWorld().dropItemNaturally(b.getLocation(),(b.getType().toString().endsWith("String_Node_Str") && !b.getType().equals(Material.IRON_ORE) && !b.getType().equals(Material.GOLD_ORE)) ? new CustomItem(drop,fortune) : drop);
                    }
                    b.setType(Material.AIR);
                  }
                }
              }
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.AUTOMATED_PANNING_MACHINE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.TRAP_DOOR),null,null,new ItemStack(Material.CAULDRON_ITEM),null},new ItemStack[]{new ItemStack(Material.GRAVEL),new ItemStack(Material.FLINT),new ItemStack(Material.GRAVEL),new ItemStack(Material.CLAY_BALL),new ItemStack(Material.GRAVEL),SlimefunItems.SIFTED_ORE},Material.TRAP_DOOR).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        final ItemStack input=p.getItemInHand();
        ItemStack output=null;
        if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))         output=SlimefunItems.SIFTED_ORE;
 else         if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))         output=new ItemStack(Material.CLAY_BALL);
 else         if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))         output=new ItemStack(Material.FLINT);
        final ItemStack drop=output;
        if (input != null) {
          if (input.getType() == Material.GRAVEL) {
            PlayerInventory.consumeItemInHand(p);
            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
              @Override public void run(){
                b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                  @Override public void run(){
                    b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                    Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                      @Override public void run(){
                        b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                        Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                          @Override public void run(){
                            b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                              @Override public void run(){
                                b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                  @Override public void run(){
                                    b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                                    if (drop != null)                                     b.getWorld().dropItemNaturally(b.getLocation(),drop);
                                    p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                                  }
                                }
,30L);
                              }
                            }
,30L);
                          }
                        }
,30L);
                      }
                    }
,30L);
                  }
                }
,30L);
              }
            }
,30L);
            return true;
          }
        }
        Messages.local.sendTranslation(p,"String_Node_Str",true);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.BOOTS_OF_THE_STOMPER,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.WOOL),null,new ItemStack(Material.WOOL),new ItemStack(Material.PISTON_BASE),null,new ItemStack(Material.PISTON_BASE)}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.PICKAXE_OF_THE_SEEKER,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.COMPASS),SlimefunItems.SYNTHETIC_DIAMOND,new ItemStack(Material.COMPASS),null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.PICKAXE_OF_THE_SEEKER,true)) {
        Block closest=null;
        for (int x=-4; x <= 4; x++) {
          for (int y=-4; y <= 4; y++) {
            for (int z=-4; z <= 4; z++) {
              if (p.getLocation().getBlock().getRelative(x,y,z).getType().toString().endsWith("String_Node_Str")) {
                if (closest == null)                 closest=p.getLocation().getBlock().getRelative(x,y,z);
 else                 if (p.getLocation().distance(closest.getLocation()) < p.getLocation().distance(p.getLocation().getBlock().getRelative(x,y,z).getLocation()))                 closest=p.getLocation().getBlock().getRelative(x,y,z);
              }
            }
          }
        }
        if (closest == null)         Messages.local.sendTranslation(p,"String_Node_Str",true);
 else {
          double l=closest.getX() + 0.5 - p.getLocation().getX();
          double w=closest.getZ() + 0.5 - p.getLocation().getZ();
          float yaw, pitch;
          double c=Math.sqrt(l * l + w * w);
          double alpha1=-Math.asin(l / c) / Math.PI * 180;
          double alpha2=Math.acos(w / c) / Math.PI * 180;
          if (alpha2 > 90)           yaw=(float)(180 - alpha1);
 else           yaw=(float)alpha1;
          pitch=(float)((-Math.atan((closest.getY() - 0.5 - p.getLocation().getY()) / Math.sqrt(l * l + w * w))) * 180F / Math.PI);
          p.teleport(new Location(p.getWorld(),p.getLocation().getX(),p.getLocation().getY(),p.getLocation().getZ(),yaw,pitch));
        }
        if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
          if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1)))           PlayerInventory.damageItemInHand(e.getPlayer());
        }
 else         PlayerInventory.damageItemInHand(e.getPlayer());
        PlayerInventory.update(e.getPlayer());
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunBackpack(9,Categories.PORTABLE,SlimefunItems.BACKPACK_SMALL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),null,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_6K,new ItemStack(Material.CHEST),SlimefunItems.GOLD_6K,new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER)}).register(true);
  new SlimefunBackpack(18,Categories.PORTABLE,SlimefunItems.BACKPACK_MEDIUM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),null,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_10K,SlimefunItems.BACKPACK_SMALL,SlimefunItems.GOLD_10K,new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER)}).register(true);
  new SlimefunBackpack(27,Categories.PORTABLE,SlimefunItems.BACKPACK_LARGE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),null,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_14K,SlimefunItems.BACKPACK_MEDIUM,SlimefunItems.GOLD_14K,new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER)}).register(true);
  new SlimefunBackpack(36,Categories.PORTABLE,SlimefunItems.WOVEN_BACKPACK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,null,SlimefunItems.CLOTH,SlimefunItems.GOLD_16K,SlimefunItems.BACKPACK_LARGE,SlimefunItems.GOLD_16K,SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH}).register(true);
  new SlimefunGadget(Categories.MACHINES_1,SlimefunItems.CRUCIBLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.HARD_CLAY),null,new ItemStack(Material.HARD_CLAY),new ItemStack(Material.HARD_CLAY),null,new ItemStack(Material.HARD_CLAY),new ItemStack(Material.HARD_CLAY),new ItemStack(Material.FLINT_AND_STEEL),new ItemStack(Material.HARD_CLAY)},new ItemStack[]{new ItemStack(Material.COBBLESTONE,16),new ItemStack(Material.LAVA_BUCKET),new ItemStack(Material.LEAVES,16),new ItemStack(Material.WATER_BUCKET),new ItemStack(Material.HARD_CLAY,12),new ItemStack(Material.LAVA_BUCKET)}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    final Player p,    ItemStack item){
      if (e.getClickedBlock() != null) {
        SlimefunItem machine=BlockStorage.check(e.getClickedBlock());
        if (machine != null && machine.getName().equals("String_Node_Str")) {
          final ItemStack input=p.getItemInHand();
          final Block block=e.getClickedBlock().getRelative(BlockFace.UP);
          for (          ItemStack convert : RecipeType.getRecipeInputs(machine)) {
            if (input != null) {
              if (SlimefunManager.isItemSimiliar(input,convert,true)) {
                e.setCancelled(true);
                ItemStack removing=input.clone();
                removing.setAmount(convert.getAmount());
                p.getInventory().removeItem(removing);
                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                  @Override public void run(){
                    if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                      block.setType(Material.LAVA);
                      block.setData((byte)7);
                      block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                    }
 else                     if (input.getType() == Material.LEAVES) {
                      block.setType(Material.WATER);
                      block.setData((byte)7);
                      block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                    }
                    Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                      @Override public void run(){
                        if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                          block.setType(Material.LAVA);
                          block.setData((byte)6);
                          block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                        }
 else                         if (input.getType() == Material.LEAVES) {
                          block.setType(Material.WATER);
                          block.setData((byte)6);
                          block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                        }
                        Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                          @Override public void run(){
                            if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                              block.setType(Material.LAVA);
                              block.setData((byte)5);
                              block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                            }
 else                             if (input.getType() == Material.LEAVES) {
                              block.setType(Material.WATER);
                              block.setData((byte)5);
                              block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                            }
                            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                              @Override public void run(){
                                if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                  block.setType(Material.LAVA);
                                  block.setData((byte)4);
                                  block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                }
 else                                 if (input.getType() == Material.LEAVES) {
                                  block.setType(Material.WATER);
                                  block.setData((byte)4);
                                  block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                }
                                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                  @Override public void run(){
                                    if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                      block.setType(Material.LAVA);
                                      block.setData((byte)3);
                                      block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                    }
 else                                     if (input.getType() == Material.LEAVES) {
                                      block.setType(Material.WATER);
                                      block.setData((byte)3);
                                      block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                    }
                                    Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                      @Override public void run(){
                                        if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                          block.setType(Material.LAVA);
                                          block.setData((byte)2);
                                          block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                        }
 else                                         if (input.getType() == Material.LEAVES) {
                                          block.setType(Material.WATER);
                                          block.setData((byte)2);
                                          block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                        }
                                        Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                          @Override public void run(){
                                            if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                              block.setType(Material.LAVA);
                                              block.setData((byte)1);
                                              block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                            }
 else                                             if (input.getType() == Material.LEAVES) {
                                              block.setType(Material.WATER);
                                              block.setData((byte)1);
                                              block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                            }
                                            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                              @Override public void run(){
                                                if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                                  block.setType(Material.STATIONARY_LAVA);
                                                  block.setData((byte)0);
                                                  block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                                }
 else                                                 if (input.getType() == Material.LEAVES) {
                                                  block.setType(Material.WATER);
                                                  block.setData((byte)0);
                                                  block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                                }
                                              }
                                            }
,50L);
                                          }
                                        }
,50L);
                                      }
                                    }
,50L);
                                  }
                                }
,50L);
                              }
                            }
,50L);
                          }
                        }
,50L);
                      }
                    }
,50L);
                  }
                }
,50L);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
          return true;
        }
      }
      return false;
    }
  }
);
  new SlimefunBackpack(45,Categories.PORTABLE,SlimefunItems.GILDED_BACKPACK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_22K,null,SlimefunItems.GOLD_22K,new ItemStack(Material.LEATHER),SlimefunItems.WOVEN_BACKPACK,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_22K,null,SlimefunItems.GOLD_22K}).register(true);
  new Alloy(Categories.TECH_MISC,SlimefunItems.MAGNET,"String_Node_Str",new ItemStack[]{SlimefunItems.NICKEL_INGOT,SlimefunItems.ALUMINUM_DUST,SlimefunItems.IRON_DUST,SlimefunItems.COBALT_INGOT,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFUSED_MAGNET,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.ENDER_LUMP_2,SlimefunItems.MAGNET,SlimefunItems.ENDER_LUMP_2,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.COBALT_PICKAXE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COBALT_INGOT,SlimefunItems.COBALT_INGOT,SlimefunItems.COBALT_INGOT,null,SlimefunItems.NICKEL_INGOT,null,null,SlimefunItems.NICKEL_INGOT,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.NECROTIC_SKULL,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,null,new MaterialData(Material.SKULL_ITEM,(byte)1).toItemStack(1),null,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ESSENCE_OF_AFTERLIFE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_AIR,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_EARTH,SlimefunItems.NECROTIC_SKULL,SlimefunItems.RUNE_FIRE,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_WATER,SlimefunItems.ENDER_LUMP_3}).register(true);
  new SoulboundBackpack(36,Categories.PORTABLE,SlimefunItems.BOUND_BACKPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.ENDER_LUMP_2,null,SlimefunItems.ENDER_LUMP_2,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.GILDED_BACKPACK,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.ENDER_LUMP_2,null,SlimefunItems.ENDER_LUMP_2}).register(true);
  new JetBoots(SlimefunItems.DURALUMIN_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.35).register(true);
  new JetBoots(SlimefunItems.SOLDER_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.SOLDER_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.SOLDER_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.4).register(true);
  new JetBoots(SlimefunItems.BILLON_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.BILLON_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BILLON_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.45).register(true);
  new JetBoots(SlimefunItems.STEEL_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.5).register(true);
  new JetBoots(SlimefunItems.DAMASCUS_STEEL_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.55).register(true);
  new JetBoots(SlimefunItems.REINFORCED_ALLOY_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.6).register(true);
  new JetBoots(SlimefunItems.CARBONADO_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.CARBONADO,SlimefunItems.POWER_CRYSTAL,SlimefunItems.CARBONADO,SlimefunItems.STEEL_THRUSTER,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.7).register(true);
  new JetBoots(SlimefunItems.ARMORED_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.STEEL_PLATE,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_PLATE,SlimefunItems.STEEL_THRUSTER,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.45).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.SEISMIC_AXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,null,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.STAFF_ELEMENTAL,null,null,SlimefunItems.STAFF_ELEMENTAL,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.SEISMIC_AXE,true)) {
        List<Block> blocks=p.getLineOfSight((HashSet<Material>)null,10);
        for (int i=0; i < blocks.size(); i++) {
          Block b=blocks.get(i);
          Location ground=b.getLocation();
          if (b.getType() == null || b.getType() == Material.AIR) {
            for (int y=ground.getBlockY(); y > 0; y--) {
              if (b.getWorld().getBlockAt(b.getX(),y,b.getZ()) != null) {
                if (b.getWorld().getBlockAt(b.getX(),y,b.getZ()).getType() != null) {
                  if (b.getWorld().getBlockAt(b.getX(),y,b.getZ()).getType() != Material.AIR) {
                    ground=new Location(b.getWorld(),b.getX(),y,b.getZ());
                    break;
                  }
                }
              }
            }
          }
          b.getWorld().playEffect(ground,Effect.STEP_SOUND,ground.getBlock().getType());
          if (ground.getBlock().getRelative(BlockFace.UP).getType() == null || ground.getBlock().getRelative(BlockFace.UP).getType() == Material.AIR) {
            FallingBlock block=ground.getWorld().spawnFallingBlock(ground.getBlock().getRelative(BlockFace.UP).getLocation(),ground.getBlock().getType(),ground.getBlock().getData());
            block.setDropItem(false);
            block.setVelocity(new Vector(0,0.4 + i * 0.01,0));
            Variables.blocks.add(block.getUniqueId());
          }
          for (          Entity n : ground.getChunk().getEntities()) {
            if (n instanceof LivingEntity) {
              if (n.getLocation().distance(ground) <= 2.0D && n.getUniqueId() != p.getUniqueId()) {
                Vector vector=n.getLocation().toVector().subtract(p.getLocation().toVector()).normalize().multiply(1.4);
                vector.setY(0.9);
                n.setVelocity(vector);
                if (p.getWorld().getPVP()) {
                  EntityDamageByEntityEvent event=new EntityDamageByEntityEvent(p,n,DamageCause.ENTITY_ATTACK,6D);
                  Bukkit.getPluginManager().callEvent(event);
                  if (!event.isCancelled())                   ((LivingEntity)n).damage(6D);
                }
              }
            }
          }
        }
        for (int i=0; i < 4; i++) {
          if (e.getPlayer().getItemInHand() != null) {
            if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
              if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1)))               PlayerInventory.damageItemInHand(e.getPlayer());
            }
 else             PlayerInventory.damageItemInHand(e.getPlayer());
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.PICKAXE_OF_VEIN_MINING,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.EMERALD_ORE),SlimefunItems.SYNTHETIC_DIAMOND,new ItemStack(Material.EMERALD_ORE),null,SlimefunItems.GILDED_IRON,null,null,SlimefunItems.GILDED_IRON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.PICKAXE_OF_VEIN_MINING,true)) {
        if (e.getBlock().getType().toString().endsWith("String_Node_Str")) {
          List<Location> blocks=new ArrayList<Location>();
          Vein.calculate(e.getBlock().getLocation(),e.getBlock().getLocation(),blocks,16);
          for (          Location block : blocks) {
            Block b=block.getBlock();
            b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,b.getType());
            for (            ItemStack drop : b.getDrops()) {
              b.getWorld().dropItemNaturally(b.getLocation(),drop.getType().isBlock() ? drop : new CustomItem(drop,fortune));
            }
            b.setType(Material.AIR);
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SoulboundItem(Categories.WEAPONS,SlimefunItems.SOULBOUND_SWORD,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_SWORD),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.WEAPONS,SlimefunItems.SOULBOUND_BOW,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.BOW),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.TOOLS,SlimefunItems.SOULBOUND_PICKAXE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_PICKAXE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.TOOLS,SlimefunItems.SOULBOUND_AXE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_AXE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new ExcludedSoulboundTool(Categories.TOOLS,SlimefunItems.SOULBOUND_SHOVEL,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_SPADE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new ExcludedSoulboundTool(Categories.TOOLS,SlimefunItems.SOULBOUND_HOE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_HOE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_HELMET,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_HELMET),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_CHESTPLATE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_CHESTPLATE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_LEGGINGS,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_LEGGINGS),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_BOOTS,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_BOOTS),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.JUICER,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.GLASS),null,null,new ItemStack(Material.NETHER_FENCE),null,null,new CustomItem(Material.DISPENSER,"String_Node_Str",0),null},new ItemStack[]{new ItemStack(Material.APPLE),SlimefunItems.APPLE_JUICE,new ItemStack(Material.MELON),SlimefunItems.MELON_JUICE,new ItemStack(Material.CARROT_ITEM),SlimefunItems.CARROT_JUICE,new ItemStack(Material.PUMPKIN),SlimefunItems.PUMPKIN_JUICE},Material.NETHER_FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.JUICER,true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new Juice(Categories.FOOD,SlimefunItems.APPLE_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.APPLE),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.CARROT_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.CARROT_ITEM),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.MELON_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.MELON),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.PUMPKIN_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.PUMPKIN),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.GOLDE_APPLE_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{new ItemStack(Material.GOLDEN_APPLE),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.BROKEN_SPAWNER,"String_Node_Str",new RecipeType(SlimefunItems.PICKAXE_OF_CONTAINMENT),new ItemStack[]{null,null,null,null,new ItemStack(Material.MOB_SPAWNER),null,null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.REPAIRED_SPAWNER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.RUNE_ENDER,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.ESSENCE_OF_AFTERLIFE,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.BROKEN_SPAWNER,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.ESSENCE_OF_AFTERLIFE,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.RUNE_ENDER}).register(true,new BlockPlaceHandler(){
    @Override public boolean onBlockPlace(    BlockPlaceEvent e,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.REPAIRED_SPAWNER,false)) {
        EntityType type=null;
        for (        String line : item.getItemMeta().getLore()) {
          if (ChatColor.stripColor(line).startsWith("String_Node_Str"))           type=EntityType.valueOf(ChatColor.stripColor(line).replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").toUpperCase());
        }
        if (type != null) {
          ((CreatureSpawner)e.getBlock().getState()).setSpawnedType(type);
          e.getBlock().getState().update(true,false);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.MILK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.MILK_BUCKET),new ItemStack(Material.GLASS_BOTTLE),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.MILK,4)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHOCOLATE_MILK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MILK,new CustomItem(Material.INK_SACK,3),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.CHOCOLATE_MILK,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.EGG_NOG,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MILK,new ItemStack(Material.EGG),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.EGG_NOG,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.APPLE_CIDER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.APPLE_JUICE,new ItemStack(Material.SUGAR),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.APPLE_CIDER,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHRISTMAS_COOKIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.COOKIE),new ItemStack(Material.SUGAR),new CustomItem(Material.INK_SACK,10),null,null,null,null,null,null},new CustomItem(SlimefunItems.CHRISTMAS_COOKIE,16)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.FRUIT_CAKE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.EGG),new ItemStack(Material.APPLE),new ItemStack(Material.MELON),new ItemStack(Material.SUGAR),null,null,null,null,null},new CustomItem(SlimefunItems.FRUIT_CAKE,4)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.APPLE_PIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.APPLE),new ItemStack(Material.EGG),null,null,null,null,null,null},new CustomItem(SlimefunItems.APPLE_PIE,2)).register(true);
  new EnhancedFurnace(1,1,1,SlimefunItems.ENHANCED_FURNACE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,new ItemStack(Material.FURNACE),SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(2,1,1,SlimefunItems.ENHANCED_FURNACE_2,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(2,2,1,SlimefunItems.ENHANCED_FURNACE_3,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_2,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(3,2,1,SlimefunItems.ENHANCED_FURNACE_4,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_3,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(3,2,2,SlimefunItems.ENHANCED_FURNACE_5,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_4,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(3,3,2,SlimefunItems.ENHANCED_FURNACE_6,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_5,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(4,3,2,SlimefunItems.ENHANCED_FURNACE_7,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_6,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(4,4,2,SlimefunItems.ENHANCED_FURNACE_8,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_7,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(5,4,2,SlimefunItems.ENHANCED_FURNACE_9,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_8,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(5,5,2,SlimefunItems.ENHANCED_FURNACE_10,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_9,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(5,5,3,SlimefunItems.ENHANCED_FURNACE_11,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_10,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(10,10,3,SlimefunItems.REINFORCED_FURNACE,"String_Node_Str",new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_11,SlimefunItems.HEATING_COIL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT}).register(true);
  new EnhancedFurnace(20,10,3,SlimefunItems.CARBONADO_EDGED_FURNACE,"String_Node_Str",new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.CARBONADO,SlimefunItems.HEATING_COIL,SlimefunItems.REINFORCED_FURNACE,SlimefunItems.HEATING_COIL,SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.ELECTRO_MAGNET,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.NICKEL_INGOT,SlimefunItems.MAGNET,SlimefunItems.COBALT_INGOT,null,SlimefunItems.BATTERY,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.ELECTRIC_MOTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,null,SlimefunItems.ELECTRO_MAGNET,null,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.HEATING_COIL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT}).register(true);
  @SuppressWarnings("String_Node_Str") final String[] blockPlacerBlacklist=Slimefun.getItemValue("String_Node_Str","String_Node_Str") != null ? ((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).toArray(new String[((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).size()]) : new String[]{"String_Node_Str"};
  new SlimefunItem(Categories.MACHINES_1,SlimefunItems.BLOCK_PLACER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_4K,new ItemStack(Material.PISTON_BASE),SlimefunItems.GOLD_4K,new ItemStack(Material.IRON_INGOT),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.IRON_INGOT),SlimefunItems.GOLD_4K,new ItemStack(Material.PISTON_BASE),SlimefunItems.GOLD_4K},new String[]{"String_Node_Str"},new Object[]{Arrays.asList("String_Node_Str")}).register(true,new AutonomousMachineHandler(){
    @Override public boolean onBlockDispense(    final BlockDispenseEvent e,    Block dispenser,    final Dispenser d,    Block block,    Block chest,    SlimefunItem machine){
      if (machine.getName().equalsIgnoreCase("String_Node_Str")) {
        e.setCancelled(true);
        if ((block.getType() == null || block.getType() == Material.AIR) && e.getItem().getType().isBlock()) {
          for (          String blockType : blockPlacerBlacklist) {
            if (e.getItem().getType().toString().equals(blockType)) {
              return false;
            }
          }
          SlimefunItem sfItem=SlimefunItem.getByItem(e.getItem());
          if (sfItem != null) {
            if (!SlimefunItem.blockhandler.containsKey(sfItem.getName())) {
              block.setType(e.getItem().getType());
              block.setData(e.getItem().getData().getData());
              BlockStorage.store(block,sfItem.getName());
              block.getWorld().playEffect(block.getLocation(),Effect.STEP_SOUND,e.getItem().getType());
              if (d.getInventory().containsAtLeast(e.getItem(),2))               d.getInventory().removeItem(new CustomItem(e.getItem(),1));
 else {
                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                  @Override public void run(){
                    d.getInventory().removeItem(e.getItem());
                  }
                }
,2L);
              }
            }
          }
 else {
            block.setType(e.getItem().getType());
            block.setData(e.getItem().getData().getData());
            block.getWorld().playEffect(block.getLocation(),Effect.STEP_SOUND,e.getItem().getType());
            if (d.getInventory().containsAtLeast(e.getItem(),2))             d.getInventory().removeItem(new CustomItem(e.getItem(),1));
 else {
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  d.getInventory().removeItem(e.getItem());
                }
              }
,2L);
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.HOT_CHOCOLATE,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.CHOCOLATE_MILK,null,null,null,null,null,null,null,null},SlimefunItems.HOT_CHOCOLATE).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHRISTMAS_CAKE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.EGG),new ItemStack(Material.SUGAR),SlimefunItems.WHEAT_FLOUR,new ItemStack(Material.MILK_BUCKET),null,null,null,null,null},new CustomItem(SlimefunItems.FRUIT_CAKE,4)).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGICAL_BOOK_COVER,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.ENDER_LUMP_3,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION,true)) {
        for (        Entity n : p.getNearbyEntities(10.0,10.0,10.0)) {
          if (n instanceof LivingEntity && !(n instanceof ArmorStand) && n.getUniqueId() != p.getUniqueId()) {
            float yaw=n.getLocation().getYaw() + 180.0F;
            if (yaw > 360.0F)             yaw=yaw - 360.0F;
            n.teleport(new Location(n.getWorld(),n.getLocation().getX(),n.getLocation().getY(),n.getLocation().getZ(),yaw,n.getLocation().getPitch()));
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CARAMEL,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.SUGAR),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.CARAMEL,4)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CARAMEL_APPLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.SUGAR),null,null,new ItemStack(Material.APPLE),null,null,new ItemStack(Material.STICK),null},new CustomItem(SlimefunItems.CARAMEL_APPLE,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHOCOLATE_APPLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new CustomItem(Material.INK_SACK,3),null,null,new ItemStack(Material.APPLE),null,null,new ItemStack(Material.STICK),null},new CustomItem(SlimefunItems.CARAMEL_APPLE,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.PRESENT,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.NAME_TAG),null,new CustomItem(new MaterialData(Material.WOOL,(byte)14),1),new CustomItem(new MaterialData(Material.WOOL,(byte)13),1),new CustomItem(new MaterialData(Material.WOOL,(byte)14),1),new CustomItem(new MaterialData(Material.WOOL,(byte)14),1),new CustomItem(new MaterialData(Material.WOOL,(byte)13),1),new CustomItem(new MaterialData(Material.WOOL,(byte)14),1)}).register(true);
  new SlimefunBow(SlimefunItems.EXPLOSIVE_BOW,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.STICK),new ItemStack(Material.SULPHUR),SlimefunItems.STAFF_FIRE,null,SlimefunItems.SULFATE,null,new ItemStack(Material.STICK),new ItemStack(Material.SULPHUR)}).register(true,new BowShootHandler(){
    @Override public boolean onHit(    EntityDamageByEntityEvent e,    LivingEntity n){
      if (SlimefunManager.isItemSimiliar(Variables.arrows.get(e.getDamager().getUniqueId()),SlimefunItems.EXPLOSIVE_BOW,true)) {
        Vector vector=n.getVelocity();
        vector.setY(0.6);
        n.setVelocity(vector);
        n.getWorld().createExplosion(n.getLocation(),0F);
        n.getWorld().playSound(n.getLocation(),Sound.ENTITY_GENERIC_EXPLODE,1F,1F);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunBow(SlimefunItems.ICY_BOW,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.STICK),new ItemStack(Material.ICE),SlimefunItems.STAFF_WATER,null,new ItemStack(Material.PACKED_ICE),null,new ItemStack(Material.STICK),new ItemStack(Material.ICE)}).register(true,new BowShootHandler(){
    @Override public boolean onHit(    EntityDamageByEntityEvent e,    LivingEntity n){
      if (SlimefunManager.isItemSimiliar(Variables.arrows.get(e.getDamager().getUniqueId()),SlimefunItems.ICY_BOW,true)) {
        n.getWorld().playEffect(n.getLocation(),Effect.STEP_SOUND,Material.ICE);
        n.getWorld().playEffect(n.getEyeLocation(),Effect.STEP_SOUND,Material.ICE);
        n.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,20 * 2,10));
        n.addPotionEffect(new PotionEffect(PotionEffectType.JUMP,20 * 2,-10));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.TOME_OF_KNOWLEDGE_SHARING,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.FEATHER),null,new ItemStack(Material.INK_SACK),SlimefunItems.MAGICAL_BOOK_COVER,new ItemStack(Material.GLASS_BOTTLE),null,new ItemStack(Material.BOOK_AND_QUILL),null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.TOME_OF_KNOWLEDGE_SHARING,true)) {
        List<String> lore=item.getItemMeta().getLore();
        lore.set(0,ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + p.getName()));
        lore.set(1,ChatColor.BLACK + "String_Node_Str" + p.getUniqueId());
        ItemMeta im=item.getItemMeta();
        im.setLore(lore);
        item.setItemMeta(im);
        p.setItemInHand(item);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_PLAYER_LEVELUP,1F,1F);
        return true;
      }
 else       if (SlimefunManager.isItemSimiliar(item,SlimefunItems.TOME_OF_KNOWLEDGE_SHARING,false)) {
        List<Research> researches=Research.getResearches(ChatColor.stripColor(item.getItemMeta().getLore().get(1)));
        for (        Research research : researches) {
          research.unlock(p,true);
        }
        PlayerInventory.consumeItemInHand(p);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.FLASK_OF_KNOWLEDGE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,null,null,SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.THIN_GLASS),SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,null},new CustomItem(SlimefunItems.FLASK_OF_KNOWLEDGE,8)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.FLASK_OF_KNOWLEDGE,true) && p.getLevel() >= 1) {
        p.setLevel(p.getLevel() - 1);
        p.getInventory().addItem(new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0));
        PlayerInventory.consumeItemInHand(p);
        PlayerInventory.update(p);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.REINFORCED_PLATE,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new CustomItem(SlimefunItems.REINFORCED_ALLOY_INGOT,8),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.HARDENED_GLASS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),SlimefunItems.REINFORCED_PLATE,new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS)},new CustomItem(SlimefunItems.HARDENED_GLASS,16)).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.SOLAR_ARRAY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS}).register(true);
  new SlimefunItem(Categories.EASTER,SlimefunItems.CARROT_PIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.CARROT_ITEM),new ItemStack(Material.EGG),null,null,null,null,null,null},new CustomItem(SlimefunItems.CARROT_PIE,2)).register(true);
  new SlimefunItem(Categories.EASTER,SlimefunItems.APPLE_PIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.APPLE),new ItemStack(Material.EGG),null,null,null,null,null,null},new CustomItem(SlimefunItems.APPLE_PIE,2)).register(true);
  new SlimefunItem(Categories.EASTER,SlimefunItems.EASTER_EGG,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new MaterialData(Material.INK_SACK,(byte)10).toItemStack(1),new ItemStack(Material.EGG),new MaterialData(Material.INK_SACK,(byte)13).toItemStack(1),null,null,null},new CustomItem(SlimefunItems.EASTER_EGG,2)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.EASTER_EGG,true)) {
        e.setCancelled(true);
        PlayerInventory.consumeItemInHand(e.getPlayer());
        FireworkShow.launchRandom(e.getPlayer(),2);
        List<ItemStack> gifts=new ArrayList<ItemStack>();
        for (int i=0; i < 2; i++) {
          gifts.add(new CustomItem(SlimefunItems.CARROT_PIE,4));
          gifts.add(new CustomItem(SlimefunItems.APPLE_PIE,4));
          gifts.add(new CustomItem(SlimefunItems.CARROT_JUICE,1));
        }
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        p.getWorld().dropItemNaturally(p.getLocation(),gifts.get(SlimefunStartup.randomize(gifts.size())));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.COOLING_UNIT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.ICE),new ItemStack(Material.ICE),new ItemStack(Material.ICE),SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_INGOT,new ItemStack(Material.ICE),new ItemStack(Material.ICE),new ItemStack(Material.ICE)}).register(true);
  new SlimefunBackpack(27,Categories.PORTABLE,SlimefunItems.COOLER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.COOLING_UNIT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.WITHER_PROOF_OBSIDIAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,new ItemStack(Material.OBSIDIAN),SlimefunItems.LEAD_INGOT,new ItemStack(Material.OBSIDIAN),SlimefunItems.HARDENED_GLASS,new ItemStack(Material.OBSIDIAN),SlimefunItems.LEAD_INGOT,new ItemStack(Material.OBSIDIAN),SlimefunItems.LEAD_INGOT},new CustomItem(SlimefunItems.WITHER_PROOF_OBSIDIAN,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ANCIENT_PEDESTAL,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.OBSIDIAN),SlimefunItems.GOLD_8K,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.STONE),null,new ItemStack(Material.OBSIDIAN),SlimefunItems.GOLD_8K,new ItemStack(Material.OBSIDIAN)},new CustomItem(SlimefunItems.ANCIENT_PEDESTAL,4)).register(true);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Item stack=AncientAltarListener.findItem(b);
      if (stack != null)       stack.removeMetadata("String_Node_Str",SlimefunStartup.instance);
      return true;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.ANCIENT_ALTAR,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.ENCHANTMENT_TABLE),null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.GOLD_8K,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.OBSIDIAN),SlimefunItems.GOLD_8K,new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.BIRTHDAY,new CustomItem(new MaterialData(Material.CAKE),"String_Node_Str"),"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.TORCH),null,new ItemStack(Material.SUGAR),new ItemStack(Material.CAKE),new ItemStack(Material.SUGAR),null,null,null}).register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.ENERGY_REGULATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SILVER_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SILVER_INGOT}).register(true,new BlockTicker(){
    @Override public boolean isSynchronized(){
      return false;
    }
    @Override public void uniqueTick(){
    }
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      EnergyNet.tick(b);
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      EnergyHologram.remove(b);
      return true;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.DUCT_TAPE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.ALUMINUM_DUST,SlimefunItems.ALUMINUM_DUST,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.WOOL),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.PAPER),new ItemStack(Material.PAPER),new ItemStack(Material.PAPER)},new CustomItem(SlimefunItems.DUCT_TAPE,2)).register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SMALL_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DURALUMIN_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.DURALUMIN_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.SULFATE,new ItemStack(Material.REDSTONE),SlimefunItems.DURALUMIN_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.DURALUMIN_INGOT}).registerDistibutingCapacitor(true,128);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.MEDIUM_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BILLON_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.BILLON_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.SMALL_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.BILLON_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.BILLON_INGOT}).registerDistibutingCapacitor(true,512);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.BIG_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.STEEL_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.MEDIUM_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.STEEL_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.STEEL_INGOT}).registerDistibutingCapacitor(true,1024);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.LARGE_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.REINFORCED_ALLOY_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.BIG_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.REINFORCED_ALLOY_INGOT}).registerDistibutingCapacitor(true,8192);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.CARBONADO_EDGED_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.CARBONADO,new ItemStack(Material.REDSTONE),SlimefunItems.LARGE_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.CARBONADO,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.CARBONADO}).registerDistibutingCapacitor(true,65536);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_INGOT,null,SlimefunItems.ALUMINUM_INGOT,null}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 2D;
      return 0D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_GENERATOR,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR,SlimefunItems.ALUMINUM_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 8;
      return 0D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_GENERATOR_2,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR_2,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.CARBONADO,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR_2,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR_2}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 32;
      return 0D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR_4,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_GENERATOR_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.SOLAR_GENERATOR_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.SOLAR_GENERATOR_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.SOLAR_GENERATOR_3}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 128;
      return 64D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new ChargingBench(Categories.ELECTRICITY,SlimefunItems.CHARGING_BENCH,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRO_MAGNET,null,SlimefunItems.BATTERY,new ItemStack(Material.WORKBENCH),SlimefunItems.BATTERY,null,SlimefunItems.SMALL_CAPACITOR,null}).registerChargeableBlock(true,128);
  new ElectricFurnace(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_FURNACE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.FURNACE),null,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 2;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,64);
  new ElectricFurnace(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_FURNACE_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_FURNACE,SlimefunItems.GILDED_IRON,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 3;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricFurnace(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_FURNACE_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_FURNACE_2,SlimefunItems.STEEL_INGOT,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 5;
    }
    @Override public int getSpeed(){
      return 4;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricGoldPan(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_GOLD_PAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_PAN,null,new ItemStack(Material.FLINT),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.FLINT),SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT}){
    @Override public int getEnergyConsumption(){
      return 1;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricGoldPan(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_GOLD_PAN_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_PAN,null,new ItemStack(Material.IRON_INGOT),SlimefunItems.ELECTRIC_GOLD_PAN,new ItemStack(Material.IRON_INGOT),SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT}){
    @Override public int getEnergyConsumption(){
      return 2;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricGoldPan(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_GOLD_PAN_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_PAN,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRIC_GOLD_PAN_2,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.COBALT_INGOT,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.COBALT_INGOT}){
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 10;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricDustWasher(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_DUST_WASHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WATER_BUCKET),null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_GOLD_PAN,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT}){
    @Override public int getEnergyConsumption(){
      return 3;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricDustWasher(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_DUST_WASHER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WATER_BUCKET),null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_DUST_WASHER,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT}){
    @Override public int getEnergyConsumption(){
      return 5;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricDustWasher(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_DUST_WASHER_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WATER_BUCKET),null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_DUST_WASHER_2,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.CORINTHIAN_BRONZE_INGOT}){
    @Override public int getEnergyConsumption(){
      return 15;
    }
    @Override public int getSpeed(){
      return 10;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricIngotFactory(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_FACTORY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.FLINT_AND_STEEL),null,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_DUST_WASHER,SlimefunItems.HEATING_COIL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 4;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new ElectricIngotFactory(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_FACTORY_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GILDED_IRON,new ItemStack(Material.FLINT_AND_STEEL),SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_INGOT_FACTORY,SlimefunItems.HEATING_COIL,SlimefunItems.BRASS_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.BRASS_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,256);
  new ElectricIngotFactory(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_FACTORY_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GILDED_IRON,new ItemStack(Material.FLINT_AND_STEEL),SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_INGOT_FACTORY_2,SlimefunItems.HEATING_COIL,SlimefunItems.BRASS_INGOT,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.BRASS_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 20;
    }
    @Override public int getSpeed(){
      return 8;
    }
  }
.registerChargeableBlock(true,512);
  new ElectrifiedCrucible(Categories.ELECTRICITY,SlimefunItems.ELECTRIFIED_CRUCIBLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.CRUCIBLE,SlimefunItems.LEAD_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.LEAD_INGOT}){
    @Override public int getEnergyConsumption(){
      return 24;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,1024);
  new ElectrifiedCrucible(Categories.ELECTRICITY,SlimefunItems.ELECTRIFIED_CRUCIBLE_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.ELECTRIFIED_CRUCIBLE,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.LEAD_INGOT}){
    @Override public int getEnergyConsumption(){
      return 40;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,1024);
  new ElectrifiedCrucible(Categories.ELECTRICITY,SlimefunItems.ELECTRIFIED_CRUCIBLE_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.ELECTRIFIED_CRUCIBLE_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.STEEL_PLATE,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_PLATE,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT}){
    @Override public int getEnergyConsumption(){
      return 60;
    }
    @Override public int getSpeed(){
      return 4;
    }
  }
.registerChargeableBlock(true,1024);
  new AContainer(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_ORE_GRINDER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.DIAMOND_PICKAXE),null,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.STONE_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 6;
    }
    @Override public int getSpeed(){
      return 1;
    }
    @Override public String getMachineIdentifier(){
      return "String_Node_Str";
    }
  }
.registerChargeableBlock(true,128);
  new AContainer(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_ORE_GRINDER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.DIAMOND_PICKAXE),null,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_ORE_GRINDER,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 15;
    }
    @Override public int getSpeed(){
      return 4;
    }
    @Override public String getMachineIdentifier(){
      return "String_Node_Str";
    }
  }
.registerChargeableBlock(true,512);
  new HeatedPressureChamber(Categories.ELECTRICITY,SlimefunItems.HEATED_PRESSURE_CHAMBER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,new ItemStack(Material.GLASS),SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.LEAD_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public int getEnergyConsumption(){
      return 5;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,128);
  new HeatedPressureChamber(Categories.ELECTRICITY,SlimefunItems.HEATED_PRESSURE_CHAMBER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATED_PRESSURE_CHAMBER,SlimefunItems.LEAD_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.REINFORCED_ALLOY_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public int getEnergyConsumption(){
      return 22;
    }
    @Override public int getSpeed(){
      return 5;
    }
  }
.registerChargeableBlock(true,256);
  new AContainer(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_PULVERIZER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRIC_ORE_GRINDER,null,SlimefunItems.LEAD_INGOT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.LEAD_INGOT}){
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.IRON_PICKAXE);
    }
    @Override public void registerDefaultRecipes(){
      registerRecipe(3,new ItemStack[]{SlimefunItems.ALUMINUM_INGOT},new ItemStack[]{SlimefunItems.ALUMINUM_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.COPPER_INGOT},new ItemStack[]{SlimefunItems.COPPER_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.GOLD_4K},new ItemStack[]{SlimefunItems.GOLD_DUST});
      registerRecipe(3,new ItemStack[]{new ItemStack(Material.IRON_INGOT)},new ItemStack[]{SlimefunItems.IRON_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.LEAD_INGOT},new ItemStack[]{SlimefunItems.LEAD_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.MAGNESIUM_INGOT},new ItemStack[]{SlimefunItems.MAGNESIUM_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.SILVER_INGOT},new ItemStack[]{SlimefunItems.SILVER_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.TIN_INGOT},new ItemStack[]{SlimefunItems.TIN_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.ZINC_INGOT},new ItemStack[]{SlimefunItems.ZINC_DUST});
    }
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 1;
    }
    @Override public String getMachineIdentifier(){
      return "String_Node_Str";
    }
  }
.registerChargeableBlock(true,512);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.COAL_GENERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HEATING_COIL,new ItemStack(Material.FURNACE),SlimefunItems.HEATING_COIL,SlimefunItems.NICKEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.NICKEL_INGOT,null,SlimefunItems.NICKEL_INGOT,null}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(8,new MaterialData(Material.COAL,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(8,new MaterialData(Material.COAL,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(80,new ItemStack(Material.COAL_BLOCK)));
      registerFuel(new MachineFuel(12,new ItemStack(Material.BLAZE_ROD)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG_2,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG_2,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)4).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)5).toItemStack(1)));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 8;
    }
  }
.registerUnrechargeableBlock(true,64);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.BIO_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HEATING_COIL,SlimefunItems.COMPOSTER,SlimefunItems.HEATING_COIL,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_BRASS_INGOT,null,SlimefunItems.ALUMINUM_BRASS_INGOT,null}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(2,new ItemStack(Material.ROTTEN_FLESH)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.SPIDER_EYE)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.BONE)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.APPLE)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.MELON)));
      registerFuel(new MachineFuel(27,new ItemStack(Material.MELON_BLOCK)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.PUMPKIN)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.PUMPKIN_SEEDS)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.MELON_SEEDS)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.WHEAT)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.SEEDS)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.CARROT_ITEM)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.POTATO_ITEM)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.SUGAR_CANE)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.NETHER_STALK)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.YELLOW_FLOWER)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.RED_ROSE)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.RED_MUSHROOM)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.BROWN_MUSHROOM)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.VINE)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.CACTUS)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.WATER_LILY)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES_2,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES_2,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)4).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)5).toItemStack(1)));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 4;
    }
  }
.registerUnrechargeableBlock(true,128);
  new AutoEnchanter(Categories.ELECTRICITY,SlimefunItems.AUTO_ENCHANTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.ENCHANTMENT_TABLE),null,SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN}).registerChargeableBlock(true,128);
  new AutoDisenchanter(Categories.ELECTRICITY,SlimefunItems.AUTO_DISENCHANTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.REDSTONE),new ItemStack(Material.ANVIL),new ItemStack(Material.REDSTONE),SlimefunItems.CARBONADO,SlimefunItems.AUTO_ENCHANTER,SlimefunItems.CARBONADO,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN}).registerChargeableBlock(true,128);
  new AutoAnvil(Categories.ELECTRICITY,SlimefunItems.AUTO_ANVIL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.ANVIL),null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT,new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK)}){
    @Override public int getRepairFactor(){
      return 10;
    }
    @Override public int getEnergyConsumption(){
      return 12;
    }
  }
.registerChargeableBlock(true,128);
  new AutoAnvil(Categories.ELECTRICITY,SlimefunItems.AUTO_ANVIL_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.AUTO_ANVIL,null,SlimefunItems.STEEL_PLATE,SlimefunItems.HEATING_COIL,SlimefunItems.STEEL_PLATE,new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK)}){
    @Override public int getRepairFactor(){
      return 4;
    }
    @Override public int getEnergyConsumption(){
      return 16;
    }
  }
.registerChargeableBlock(true,256);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.MULTIMETER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COPPER_INGOT,null,SlimefunItems.COPPER_INGOT,null,SlimefunItems.REDSTONE_ALLOY,null,null,SlimefunItems.GOLD_6K,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(e.getItem(),SlimefunItems.MULTIMETER,true)) {
        if (e.getClickedBlock() != null && ChargableBlock.isChargable(e.getClickedBlock())) {
          e.setCancelled(true);
          p.sendMessage("String_Node_Str");
          p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + "String_Node_Str"));
          p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + "String_Node_Str"));
          p.sendMessage("String_Node_Str");
        }
        return true;
      }
      return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.PLASTIC_SHEET,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{null,null,null,null,SlimefunItems.BUCKET_OF_OIL,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ANDROID_MEMORY_CORE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BRASS_INGOT,new MaterialData(Material.STAINED_GLASS,(byte)1).toItemStack(1),SlimefunItems.BRASS_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.TIN_DUST,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BRASS_INGOT,new MaterialData(Material.STAINED_GLASS,(byte)1).toItemStack(1),SlimefunItems.BRASS_INGOT}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.STEEL_INGOT,SlimefunItems.ADVANCED_CIRCUIT_BOARD,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_INGOT}).registerChargeableBlock(true,16,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 0) {
        Slimefun.getGPSNetwork().updateTransmitter(b,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 1);
      }
 else       Slimefun.getGPSNetwork().updateTransmitter(b,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(b,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TRANSMITTER,SlimefunItems.BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER,SlimefunItems.BRONZE_INGOT,SlimefunItems.CARBON,SlimefunItems.BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER,SlimefunItems.BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER}).registerChargeableBlock(true,64,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 2) {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 4 + 100,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 3);
      }
 else {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 4 + 100,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      }
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 4 + 100,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TRANSMITTER_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.CARBONADO,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER_2}).registerChargeableBlock(true,256,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 10) {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 16 + 500,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 11);
      }
 else {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 16 + 500,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      }
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 16 + 500,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER_4,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TRANSMITTER_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.GPS_TRANSMITTER_3,SlimefunItems.NICKEL_INGOT,SlimefunItems.CARBONADO,SlimefunItems.NICKEL_INGOT,SlimefunItems.GPS_TRANSMITTER_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.GPS_TRANSMITTER_3}).registerChargeableBlock(true,1024,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 45) {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 64 + 800,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 46);
      }
 else {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 64 + 800,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      }
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 64 + 800,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_CONTROL_PANEL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.COBALT_INGOT,SlimefunItems.ADVANCED_CIRCUIT_BOARD,SlimefunItems.COBALT_INGOT,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ALUMINUM_BRASS_INGOT}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      try {
        Slimefun.getGPSNetwork().openTransmitterControlPanel(p);
      }
 catch (      Exception e1) {
        e1.printStackTrace();
      }
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_MARKER_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),SlimefunItems.BASIC_CIRCUIT_BOARD,new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),new ItemStack(Material.REDSTONE),SlimefunItems.REDSTONE_ALLOY,new ItemStack(Material.REDSTONE)}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_EMERGENCY_TRANSMITTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRO_MAGNET,null,null,SlimefunItems.GPS_TRANSMITTER,null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.PLASTIC_SHEET,SlimefunItems.COAL_GENERATOR,SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.CHEST),SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.NONE;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_MINER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.DIAMOND_PICKAXE),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_PICKAXE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.MINER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_FARMER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.DIAMOND_HOE),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_HOE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FARMER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_WOODCUTTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.DIAMOND_AXE),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_AXE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.WOODCUTTER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_FISHERMAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.FISHING_ROD),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.FISHING_ROD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FISHERMAN;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_BUTCHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER,null,new ItemStack(Material.DIAMOND_SWORD),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_SWORD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FIGHTER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.ANDROID_INTERFACE_ITEMS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.BASIC_CIRCUIT_BOARD,new MaterialData(Material.STAINED_GLASS,(byte)11).toItemStack(1),SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET}).register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.ANDROID_INTERFACE_FUEL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,new MaterialData(Material.STAINED_GLASS,(byte)14).toItemStack(1),SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET}).register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.PLASTIC_SHEET,SlimefunItems.COMBUSTION_REACTOR,SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.CHEST),SlimefunItems.PLASTIC_SHEET,SlimefunItems.POWER_CRYSTAL,SlimefunItems.PLASTIC_SHEET}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.NONE;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2_FISHERMAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.FISHING_ROD),SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.FISHING_ROD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FISHERMAN;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2_BUTCHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER,null,new ItemStack(Material.DIAMOND_SWORD),SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.DIAMOND_SWORD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FIGHTER;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2_FARMER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER,null,new ItemStack(Material.DIAMOND_HOE),SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.DIAMOND_HOE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.ADVANCED_FARMER;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.PLASTIC_SHEET,SlimefunItems.NUCLEAR_REACTOR,SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.CHEST),SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BLISTERING_INGOT_3}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.NONE;
    }
    @Override public float getFuelEfficiency(){
      return 1F;
    }
    @Override public int getTier(){
      return 3;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_3_FISHERMAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.FISHING_ROD),SlimefunItems.PROGRAMMABLE_ANDROID_3,new ItemStack(Material.FISHING_ROD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FISHERMAN;
    }
    @Override public float getFuelEfficiency(){
      return 1F;
    }
    @Override public int getTier(){
      return 3;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_3_BUTCHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER_3,null,new ItemStack(Material.DIAMOND_SWORD),SlimefunItems.PROGRAMMABLE_ANDROID_3,new ItemStack(Material.DIAMOND_SWORD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FIGHTER;
    }
    @Override public float getFuelEfficiency(){
      return 1F;
    }
    @Override public int getTier(){
      return 3;
    }
  }
.register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.BLANK_RUNE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.OBSIDIAN),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE)}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_AIR,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.FEATHER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.FEATHER),new ItemStack(Material.GHAST_TEAR),SlimefunItems.BLANK_RUNE,new ItemStack(Material.GHAST_TEAR),new ItemStack(Material.FEATHER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.FEATHER)},new CustomItem(SlimefunItems.RUNE_AIR,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_EARTH,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.DIRT),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE),new ItemStack(Material.OBSIDIAN),SlimefunItems.BLANK_RUNE,new ItemStack(Material.OBSIDIAN),new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.DIRT)},new CustomItem(SlimefunItems.RUNE_EARTH,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_FIRE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.FIREBALL),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.FIREBALL),new ItemStack(Material.BLAZE_POWDER),SlimefunItems.RUNE_EARTH,new ItemStack(Material.FLINT_AND_STEEL),new ItemStack(Material.FIREBALL),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.FIREBALL)},new CustomItem(SlimefunItems.RUNE_FIRE,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_WATER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.RAW_FISH),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.WATER_BUCKET),new ItemStack(Material.SAND),SlimefunItems.BLANK_RUNE,new ItemStack(Material.SAND),new ItemStack(Material.WATER_BUCKET),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.RAW_FISH)},new CustomItem(SlimefunItems.RUNE_WATER,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_ENDER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_3,new ItemStack(Material.ENDER_PEARL),new ItemStack(Material.EYE_OF_ENDER),SlimefunItems.BLANK_RUNE,new ItemStack(Material.EYE_OF_ENDER),new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_3,new ItemStack(Material.ENDER_PEARL)},new CustomItem(SlimefunItems.RUNE_ENDER,6)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_RAINBOW,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.MAGIC_LUMP_3,new MaterialData(Material.INK_SACK,(byte)9).toItemStack(1),new ItemStack(Material.WOOL),SlimefunItems.RUNE_ENDER,new ItemStack(Material.WOOL),new MaterialData(Material.INK_SACK,(byte)11).toItemStack(1),SlimefunItems.ENDER_LUMP_3,new MaterialData(Material.INK_SACK,(byte)10).toItemStack(1)}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFERNAL_BONEMEAL,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.NETHER_STALK),SlimefunItems.RUNE_EARTH,new ItemStack(Material.NETHER_STALK),SlimefunItems.MAGIC_LUMP_2,new MaterialData(Material.INK_SACK,(byte)15).toItemStack(1),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.NETHER_STALK),new ItemStack(Material.BLAZE_POWDER),new ItemStack(Material.NETHER_STALK)},new CustomItem(SlimefunItems.INFERNAL_BONEMEAL,8)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(e.getItem(),SlimefunItems.INFERNAL_BONEMEAL,true)) {
        if (e.getClickedBlock() != null && e.getClickedBlock().getType().equals(Material.NETHER_WARTS)) {
          if (e.getClickedBlock().getData() < 3) {
            e.getClickedBlock().setData((byte)(e.getClickedBlock().getData() + 1));
            e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(),Effect.STEP_SOUND,Material.REDSTONE_BLOCK);
            PlayerInventory.consumeItemInHand(p);
          }
        }
        return true;
      }
      return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.ELYTRA_SCALE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_AIR,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_ENDER,new ItemStack(Material.FEATHER),SlimefunItems.RUNE_ENDER,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_AIR,SlimefunItems.ENDER_LUMP_3}).register(true);
  new VanillaItem(Categories.MAGIC,SlimefunItems.ELYTRA,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.ELYTRA_SCALE,SlimefunItems.RUNE_AIR,SlimefunItems.ELYTRA_SCALE,SlimefunItems.RUNE_AIR,new ItemStack(Material.LEATHER_CHESTPLATE),SlimefunItems.RUNE_AIR,SlimefunItems.ELYTRA_SCALE,SlimefunItems.RUNE_AIR,SlimefunItems.ELYTRA_SCALE}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFUSED_ELYTRA,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA_SCALE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA_SCALE,SlimefunItems.FLASK_OF_KNOWLEDGE}).register(true);
  new SoulboundItem(Categories.MAGIC,SlimefunItems.SOULBOUND_ELYTRA,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA_SCALE,SlimefunItems.ELYTRA,SlimefunItems.ELYTRA_SCALE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.FLASK_OF_KNOWLEDGE}).register(true);
  RainbowTicker rainbow=new RainbowTicker();
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_WOOL,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL)},new CustomItem(SlimefunItems.RAINBOW_WOOL,8)).register(true,rainbow);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_GLASS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS)},new CustomItem(SlimefunItems.RAINBOW_GLASS,8)).register(true,rainbow);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_GLASS_PANE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE)},new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE,8)).register(true,rainbow);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_CLAY,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY)},new CustomItem(SlimefunItems.RAINBOW_CLAY,8)).register(true,rainbow);
  RainbowTicker xmas=new RainbowTicker(13,14);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_WOOL_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.WOOL),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.WOOL),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_WOOL_XMAS,2)).register(true,xmas);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_GLASS_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_XMAS,2)).register(true,xmas);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_GLASS_PANE_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS_PANE),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS_PANE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_XMAS,2)).register(true,xmas);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_CLAY_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_CLAY),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_CLAY),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_CLAY_XMAS,2)).register(true,xmas);
  RainbowTicker valentine=new RainbowTicker(2,6,10);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_WOOL_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.WOOL),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.WOOL),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_WOOL_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_GLASS_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS_PANE),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS_PANE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_CLAY_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_CLAY),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_CLAY),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_CLAY_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.WITHER_PROOF_GLASS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.LEAD_INGOT,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.HARDENED_GLASS,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.LEAD_INGOT,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.LEAD_INGOT},new CustomItem(SlimefunItems.WITHER_PROOF_GLASS,4)).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_GEO_SCANNER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,null,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRO_MAGNET}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      try {
        Slimefun.getGPSNetwork().scanChunk(p,e.getClickedBlock().getChunk());
      }
 catch (      Exception e1) {
        e1.printStackTrace();
      }
      return true;
    }
  }
);
  new OilPump(Categories.GPS,SlimefunItems.OIL_PUMP,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_INGOT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_INGOT,null,new ItemStack(Material.BUCKET),null}){
    @Override public int getEnergyConsumption(){
      return 14;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,200);
  new NetherDrill(Categories.GPS,SlimefunItems.NETHER_DRILL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.LEAD_INGOT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.OIL_PUMP,SlimefunItems.REINFORCED_PLATE,SlimefunItems.LEAD_INGOT,SlimefunItems.BIG_CAPACITOR,SlimefunItems.LEAD_INGOT}){
    @Override public int getSpeed(){
      return 1;
    }
    @Override public int getEnergyConsumption(){
      return 51;
    }
  }
.registerChargeableBlock(true,1024);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BUCKET_OF_OIL,"String_Node_Str",new RecipeType(SlimefunItems.OIL_PUMP),new ItemStack[]{null,null,null,null,new ItemStack(Material.BUCKET),null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BUCKET_OF_FUEL,"String_Node_Str",new RecipeType(SlimefunItems.REFINERY),new ItemStack[]{null,null,null,null,SlimefunItems.BUCKET_OF_OIL,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.NETHER_ICE,"String_Node_Str",new RecipeType(SlimefunItems.NETHER_DRILL),new ItemStack[]{null,null,null,null,null,null,null,null}).register(true);
  new Refinery(Categories.ELECTRICITY,SlimefunItems.REFINERY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_GLASS,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.HARDENED_GLASS,new ItemStack(Material.PISTON_BASE),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.PISTON_BASE)}){
    @Override public int getEnergyConsumption(){
      return 16;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.LAVA_GENERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_16K,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(40,new ItemStack(Material.LAVA_BUCKET)));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 10;
    }
  }
.registerUnrechargeableBlock(true,512);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.COMBUSTION_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.STEEL_INGOT,SlimefunItems.HEATING_COIL}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(30,SlimefunItems.BUCKET_OF_OIL));
      registerFuel(new MachineFuel(90,SlimefunItems.BUCKET_OF_FUEL));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 12;
    }
  }
.registerUnrechargeableBlock(true,256);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TELEPORTER_PYLON,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ZINC_INGOT,new ItemStack(Material.GLASS),SlimefunItems.ZINC_INGOT,new ItemStack(Material.GLASS),SlimefunItems.HEATING_COIL,new ItemStack(Material.GLASS),SlimefunItems.ZINC_INGOT,new ItemStack(Material.GLASS),SlimefunItems.ZINC_INGOT},new CustomItem(SlimefunItems.GPS_TELEPORTER_PYLON,8)).register(true,new RainbowTicker(9,10));
  new Teleporter(Categories.GPS,SlimefunItems.GPS_TELEPORTATION_MATRIX,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TELEPORTER_PYLON,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.GPS_TELEPORTER_PYLON,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.GPS_CONTROL_PANEL,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.GPS_TELEPORTER_PYLON,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.GPS_TELEPORTER_PYLON}){
    @Override public void onInteract(    final Player p,    final Block b) throws Exception {
      GPSNetwork.openTeleporterGUI(p,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),b,Slimefun.getGPSNetwork().getNetworkComplexity(UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str"))));
    }
  }
.register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.STONE_PLATE),null,new ItemStack(Material.REDSTONE),SlimefunItems.GPS_TRANSMITTER,new ItemStack(Material.REDSTONE),SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_ACTIVATION_DEVICE_PERSONAL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.LEAD_INGOT,null,SlimefunItems.COBALT_INGOT,SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED,SlimefunItems.COBALT_INGOT,null,SlimefunItems.LEAD_INGOT,null}).register(true);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      return BlockStorage.getBlockInfo(b,"String_Node_Str").equals(p.getUniqueId().toString());
    }
  }
);
  new SlimefunItem(Categories.TECH,SlimefunItems.HOLOGRAM_PROJECTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.POWER_CRYSTAL,null,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_BRASS_INGOT,null,SlimefunItems.ALUMINUM_BRASS_INGOT,null},new CustomItem(SlimefunItems.HOLOGRAM_PROJECTOR,3)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      if (BlockStorage.getBlockInfo(e.getClickedBlock(),"String_Node_Str").equals(p.getUniqueId().toString())) {
        Projector.openEditor(p,e.getClickedBlock());
      }
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
      Projector.getArmorStand(b);
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      if (BlockStorage.getBlockInfo(b,"String_Node_Str").equals(p.getUniqueId().toString())) {
        Projector.getArmorStand(b).remove();
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFUSED_HOPPER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.OBSIDIAN),SlimefunItems.RUNE_EARTH,new ItemStack(Material.HOPPER),SlimefunItems.RUNE_ENDER,SlimefunItems.INFUSED_MAGNET,SlimefunItems.RUNE_ENDER,new ItemStack(Material.HOPPER),SlimefunItems.RUNE_EARTH,new ItemStack(Material.OBSIDIAN)}).register(true,new BlockTicker(){
    @Override public void uniqueTick(){
    }
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      if (b.getType() != Material.HOPPER) {
        return;
      }
      ArmorStand hologram=InfusedHopper.getArmorStand(b,true);
      boolean sound=false;
      for (      Entity n : hologram.getNearbyEntities(3.5D,3.5D,3.5D)) {
        if (n instanceof Item && !n.hasMetadata("String_Node_Str") && n.getLocation().distance(hologram.getLocation()) > 0.4D) {
          n.setVelocity(new Vector(0,0.1,0));
          n.teleport(hologram);
          sound=true;
        }
      }
      if (sound)       b.getWorld().playSound(b.getLocation(),Sound.ENTITY_ENDERMEN_TELEPORT,5F,2F);
    }
    @Override public boolean isSynchronized(){
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      InfusedHopper.getArmorStand(b,true);
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      final ArmorStand hologram=InfusedHopper.getArmorStand(b,false);
      if (hologram != null) {
        hologram.remove();
      }
      return true;
    }
  }
);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BLISTERING_INGOT,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.GOLD_24K,SlimefunItems.URANIUM,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BLISTERING_INGOT_2,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.BLISTERING_INGOT,SlimefunItems.CARBONADO,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BLISTERING_INGOT_3,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.BLISTERING_INGOT_2,new ItemStack(Material.NETHER_STAR),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ENRICHED_NETHER_ICE,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.NETHER_ICE,SlimefunItems.PLUTONIUM,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.ELEVATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.STONE_PLATE),null,new ItemStack(Material.PISTON_BASE),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.PISTON_BASE),SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT},new CustomItem(SlimefunItems.ELEVATOR,2)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    final ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null)       return false;
      if (!item.getName().equals("String_Node_Str"))       return false;
      if (BlockStorage.getBlockInfo(e.getClickedBlock(),"String_Node_Str").equals(p.getUniqueId().toString()))       Elevator.openEditor(p,e.getClickedBlock());
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      return true;
    }
  }
);
  new FoodFabricator(Categories.ELECTRICITY,SlimefunItems.FOOD_FABRICATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BILLON_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.CAN,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.CAN,null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new FoodFabricator(Categories.ELECTRICITY,SlimefunItems.FOOD_FABRICATOR_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.FOOD_FABRICATOR,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.ELECTRO_MAGNET,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 24;
    }
    @Override public int getSpeed(){
      return 6;
    }
  }
.registerChargeableBlock(true,512);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD2,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.WHEAT),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD3,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.CARROT_ITEM),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD4,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.POTATO_ITEM),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD5,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.SEEDS),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD6,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.BEETROOT),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD7,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.MELON),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD8,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.APPLE),null,null,null,null,null,null,null}).register(true);
  new AutoBreeder(Categories.ELECTRICITY,SlimefunItems.AUTO_BREEDER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_18K,SlimefunItems.CAN,SlimefunItems.GOLD_18K,SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.HAY_BLOCK),SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.FOOD_FABRICATOR,SlimefunItems.LEAD_INGOT}).registerChargeableBlock(true,1024);
  new AnimalGrowthAccelerator(Categories.ELECTRICITY,SlimefunItems.ANIMAL_GROWTH_ACCELERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ORGANIC_FOOD2,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.AUTO_BREEDER,SlimefunItems.REINFORCED_ALLOY_INGOT}).registerChargeableBlock(true,1024);
  new XPCollector(Categories.ELECTRICITY,SlimefunItems.XP_COLLECTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.AUTO_ENCHANTER,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_BRONZE_INGOT}).registerChargeableBlock(true,1024);
  new FoodComposter(Categories.ELECTRICITY,SlimefunItems.FOOD_COMPOSTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.FOOD_FABRICATOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.CAN,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.CAN,null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 8;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new FoodComposter(Categories.ELECTRICITY,SlimefunItems.FOOD_COMPOSTER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.FOOD_COMPOSTER,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.ELECTRO_MAGNET,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 26;
    }
    @Override public int getSpeed(){
      return 10;
    }
  }
.registerChargeableBlock(true,256);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER2,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD2,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER3,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD3,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER4,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD4,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER5,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD5,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER6,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD6,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER7,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD7,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER8,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD8,null,null,null,null,null,null,null,null}).register(true);
  new CropGrowthAccelerator(Categories.ELECTRICITY,SlimefunItems.CROP_GROWTH_ACCELERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.PROGRAMMABLE_ANDROID_FARMER,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ANIMAL_GROWTH_ACCELERATOR,SlimefunItems.ELECTRO_MAGNET}){
    @Override public int getEnergyConsumption(){
      return 25;
    }
    @Override public int getRadius(){
      return 3;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,1024);
  new CropGrowthAccelerator(Categories.ELECTRICITY,SlimefunItems.CROP_GROWTH_ACCELERATOR_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CROP_GROWTH_ACCELERATOR,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ADVANCED_CIRCUIT_BOARD,SlimefunItems.ELECTRO_MAGNET}){
    @Override public int getEnergyConsumption(){
      return 30;
    }
    @Override public int getRadius(){
      return 4;
    }
    @Override public int getSpeed(){
      return 4;
    }
  }
.registerChargeableBlock(true,1024);
  new Freezer(Categories.ELECTRICITY,SlimefunItems.FREEZER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.SILVER_INGOT,null,SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.PACKED_ICE),SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.COOLING_UNIT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.COOLING_UNIT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 9;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new Freezer(Categories.ELECTRICITY,SlimefunItems.FREEZER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.SILVER_INGOT,null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.FREEZER,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.COOLING_UNIT,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.COOLING_UNIT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 15;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,256);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.REACTOR_COOLANT_CELL,"String_Node_Str",new RecipeType(SlimefunItems.FREEZER),new ItemStack[]{new ItemStack(Material.PACKED_ICE),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.NETHER_ICE_COOLANT_CELL,"String_Node_Str",new RecipeType(SlimefunItems.HEATED_PRESSURE_CHAMBER),new ItemStack[]{SlimefunItems.ENRICHED_NETHER_ICE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.NEPTUNIUM,"String_Node_Str",new RecipeType(SlimefunItems.NUCLEAR_REACTOR),new ItemStack[]{SlimefunItems.URANIUM,null,null,null,null,null,null,null,null}).register(true);
  SlimefunItem.setRadioactive(SlimefunItems.NEPTUNIUM);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.PLUTONIUM,"String_Node_Str",new RecipeType(SlimefunItems.NUCLEAR_REACTOR),new ItemStack[]{SlimefunItems.NEPTUNIUM,null,null,null,null,null,null,null,null}).register(true);
  SlimefunItem.setRadioactive(SlimefunItems.PLUTONIUM);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BOOSTED_URANIUM,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.PLUTONIUM,SlimefunItems.URANIUM,null,null,null,null,null,null,null}).register(true);
  SlimefunItem.setRadioactive(SlimefunItems.BOOSTED_URANIUM);
  new AReactor(Categories.ELECTRICITY,SlimefunItems.NUCLEAR_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.CARBONADO_EDGED_CAPACITOR,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.REINFORCED_PLATE,SlimefunItems.COOLING_UNIT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.LEAD_INGOT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.LEAD_INGOT}){
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(1200,SlimefunItems.URANIUM,SlimefunItems.NEPTUNIUM));
      registerFuel(new MachineFuel(600,SlimefunItems.NEPTUNIUM,SlimefunItems.PLUTONIUM));
      registerFuel(new MachineFuel(1500,SlimefunItems.BOOSTED_URANIUM,null));
    }
    @Override public int getEnergyProduction(){
      return 250;
    }
    @Override public void extraTick(    Location l){
    }
    @Override public ItemStack getProgressBar(){
      try {
        return CustomSkull.getItem("String_Node_Str");
      }
 catch (      Exception e) {
        return new ItemStack(Material.BLAZE_POWDER);
      }
    }
    @Override public ItemStack getCoolant(){
      return SlimefunItems.REACTOR_COOLANT_CELL;
    }
  }
.registerChargeableBlock(true,16384);
  new AReactor(Categories.ELECTRICITY,SlimefunItems.NETHERSTAR_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BOOSTED_URANIUM,SlimefunItems.CARBONADO_EDGED_CAPACITOR,SlimefunItems.BOOSTED_URANIUM,SlimefunItems.REINFORCED_PLATE,new ItemStack(Material.NETHER_STAR),SlimefunItems.REINFORCED_PLATE,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.CORINTHIAN_BRONZE_INGOT}){
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(1800,new ItemStack(Material.NETHER_STAR)));
    }
    @Override public int getEnergyProduction(){
      return 512;
    }
    @Override public void extraTick(    final Location l){
      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
        @Override public void run(){
          for (          Entity entity : ReactorHologram.getArmorStand(l).getNearbyEntities(5,5,5)) {
            if (entity instanceof LivingEntity) {
              ((LivingEntity)entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER,60,1));
            }
          }
        }
      }
,0);
    }
    @Override public ItemStack getCoolant(){
      return SlimefunItems.NETHER_ICE_COOLANT_CELL;
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.NETHER_STAR);
    }
  }
.registerChargeableBlock(true,32768);
  new SlimefunItem(Categories.CARGO,SlimefunItems.CARGO_MOTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_GLASS,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HARDENED_GLASS,SlimefunItems.SILVER_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.SILVER_INGOT,SlimefunItems.HARDENED_GLASS,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HARDENED_GLASS},new CustomItem(SlimefunItems.CARGO_MOTOR,4)).register(true);
  new SlimefunItem(Categories.CARGO,SlimefunItems.CARGO_MANAGER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.HOLOGRAM_PROJECTOR,null,SlimefunItems.REINFORCED_PLATE,SlimefunItems.CARGO_MOTOR,SlimefunItems.REINFORCED_PLATE,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.ALUMINUM_BRONZE_INGOT}).register(true,new BlockTicker(){
    @Override public void uniqueTick(){
    }
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      CargoNet.tick(b);
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      if (BlockStorage.getBlockInfo(e.getClickedBlock(),"String_Node_Str") == null) {
        BlockStorage.addBlockInfo(e.getClickedBlock(),"String_Node_Str","String_Node_Str");
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
 else {
        BlockStorage.addBlockInfo(e.getClickedBlock(),"String_Node_Str",null);
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      CargoHologram.remove(b);
      return true;
    }
  }
);
  new SlimefunItem(Categories.CARGO,SlimefunItems.CARGO_NODE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BRONZE_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.BRONZE_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.CARGO_MOTOR,SlimefunItems.SILVER_INGOT,SlimefunItems.BRONZE_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.BRONZE_INGOT},new CustomItem(SlimefunItems.CARGO_NODE,4)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    final ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null)       return false;
      if (!item.getName().equals("String_Node_Str"))       return false;
      if (CargoNet.isConnected(e.getClickedBlock())) {
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
 else {
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
      return true;
    }
  }
);
  new CargoInputNode(Categories.CARGO,SlimefunItems.CARGO_INPUT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.HOPPER),null,SlimefunItems.BILLON_INGOT,SlimefunItems.CARGO_NODE,SlimefunItems.BILLON_INGOT,null,new ItemStack(Material.HOPPER),null},new CustomItem(SlimefunItems.CARGO_INPUT,2)).register(true);
  new CargoOutputNode(Categories.CARGO,SlimefunItems.CARGO_OUTPUT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.HOPPER),null,SlimefunItems.BRASS_INGOT,SlimefunItems.CARGO_NODE,SlimefunItems.BRASS_INGOT,null,new ItemStack(Material.HOPPER),null},new CustomItem(SlimefunItems.CARGO_OUTPUT,2)).register(true);
  new AdvancedCargoOutputNode(Categories.CARGO,SlimefunItems.CARGO_OUTPUT_ADVANCED,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.CARGO_MOTOR,null,SlimefunItems.COBALT_INGOT,SlimefunItems.CARGO_OUTPUT,SlimefunItems.COBALT_INGOT,null,SlimefunItems.CARGO_MOTOR,null},new CustomItem(SlimefunItems.CARGO_OUTPUT_ADVANCED)).register(true);
  new AutomatedCraftingChamber(Categories.ELECTRICITY,SlimefunItems.AUTOMATED_CRAFTING_CHAMBER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WORKBENCH),null,SlimefunItems.CARGO_MOTOR,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.CARGO_MOTOR,null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public int getEnergyConsumption(){
      return 10;
    }
  }
.registerChargeableBlock(true,256);
  new ReactorAccessPort(Categories.ELECTRICITY,SlimefunItems.REACTOR_ACCESS_PORT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.LEAD_INGOT,SlimefunItems.CARGO_MOTOR,SlimefunItems.LEAD_INGOT,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new FluidPump(Categories.ELECTRICITY,SlimefunItems.FLUID_PUMP,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.MEDIUM_CAPACITOR,null,new ItemStack(Material.BUCKET),SlimefunItems.CARGO_MOTOR,new ItemStack(Material.BUCKET),null,SlimefunItems.OIL_PUMP,null}).registerChargeableBlock(true,512);
  new TrashCan(Categories.CARGO,SlimefunItems.TRASH_CAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.PORTABLE_DUSTBIN,null,SlimefunItems.LEAD_INGOT,SlimefunItems.CARGO_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.ALUMINUM_INGOT}).register(true);
  new CarbonPress(Categories.ELECTRICITY,SlimefunItems.CARBON_PRESS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBON,SlimefunItems.CARBON,SlimefunItems.HEATED_PRESSURE_CHAMBER,SlimefunItems.CARBON,SlimefunItems.HEATING_COIL,SlimefunItems.CARBONADO,SlimefunItems.HEATING_COIL}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 10;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new CarbonPress(Categories.ELECTRICITY,SlimefunItems.CARBON_PRESS_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO,SlimefunItems.CARBON,SlimefunItems.CARBON_PRESS,SlimefunItems.CARBON,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HEATING_COIL}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 25;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,512);
  new CarbonPress(Categories.ELECTRICITY,SlimefunItems.CARBON_PRESS_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.CARBON_PRESS_2,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HEATING_COIL}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 90;
    }
    @Override public int getSpeed(){
      return 15;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricSmeltery(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_SMELTERY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.NETHER_BRICK_ITEM),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.NETHER_BRICK_ITEM),SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_INGOT_FACTORY,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public int getEnergyConsumption(){
      return 10;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricSmeltery(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_SMELTERY_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_SMELTERY,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public int getEnergyConsumption(){
      return 20;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,1024);
  new WitherAssembler(Categories.ELECTRICITY,SlimefunItems.WITHER_ASSEMBLER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BLISTERING_INGOT_3,new ItemStack(Material.NETHER_STAR),SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.CARBONADO_EDGED_CAPACITOR}).registerChargeableBlock(true,4096);
}

Fixed version (ground truth):
public static void setupItems() throws Exception {
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.GRANDMAS_WALKING_STICK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.LOG),null,null,new ItemStack(Material.LOG),null,null,new ItemStack(Material.LOG),null}).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.GRANDPAS_WALKING_STICK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),new ItemStack(Material.LOG),new ItemStack(Material.LEATHER),null,new ItemStack(Material.LOG),null,null,new ItemStack(Material.LOG),null}).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.PORTABLE_CRAFTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.BOOK),new ItemStack(Material.WORKBENCH),null,null,null,null,null,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.PORTABLE_CRAFTER,true)) {
        p.openWorkbench(p.getLocation(),true);
        p.getWorld().playSound(p.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.FORTUNE_COOKIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.COOKIE),new ItemStack(Material.PAPER),null,null,null,null,null,null,null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ENHANCED_CRAFTING_TABLE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.WORKBENCH),null,null,new ItemStack(Material.DISPENSER),null},new ItemStack[0],Material.WORKBENCH).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          final Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (int j=0; j < inv.getContents().length; j++) {
              if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],true)) {
                if (SlimefunItem.getByItem(inputs.get(i)[j]) instanceof SlimefunBackpack) {
                  if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],false)) {
                    craft=false;
                    break;
                  }
                }
 else {
                  craft=false;
                  break;
                }
              }
            }
            if (craft) {
              final ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i)).clone();
              if (Slimefun.hasUnlocked(p,adding,true)) {
                Inventory inv2=Bukkit.createInventory(null,9,"String_Node_Str");
                for (int j=0; j < inv.getContents().length; j++) {
                  inv2.setItem(j,inv.getContents()[j] != null ? (inv.getContents()[j].getAmount() > 1 ? new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1) : null) : null);
                }
                if (InvUtils.fits(inv2,adding)) {
                  SlimefunItem sfItem=SlimefunItem.getByItem(adding);
                  if (sfItem instanceof SlimefunBackpack) {
                    ItemStack backpack=null;
                    for (int j=0; j < 9; j++) {
                      if (inv.getContents()[j] != null) {
                        if (inv.getContents()[j].getType() != Material.AIR) {
                          if (SlimefunItem.getByItem(inv.getContents()[j]) instanceof SlimefunBackpack) {
                            backpack=inv.getContents()[j];
                            break;
                          }
                        }
                      }
                    }
                    String id="String_Node_Str";
                    int size=((SlimefunBackpack)sfItem).size;
                    if (backpack != null) {
                      for (                      String line : backpack.getItemMeta().getLore()) {
                        if (line.startsWith(ChatColor.translateAlternateColorCodes('&',"String_Node_Str")) && line.contains("String_Node_Str")) {
                          id=line.replace(ChatColor.translateAlternateColorCodes('&',"String_Node_Str"),"String_Node_Str");
                          Config cfg=new Config(new File("String_Node_Str" + id.split("String_Node_Str")[0] + "String_Node_Str"));
                          cfg.setValue("String_Node_Str" + id.split("String_Node_Str")[1] + "String_Node_Str",size);
                          cfg.save();
                          break;
                        }
                      }
                    }
                    if (id.equals("String_Node_Str")) {
                      for (int line=0; line < adding.getItemMeta().getLore().size(); line++) {
                        if (adding.getItemMeta().getLore().get(line).equals(ChatColor.translateAlternateColorCodes('&',"String_Node_Str"))) {
                          ItemMeta im=adding.getItemMeta();
                          List<String> lore=im.getLore();
                          lore.set(line,lore.get(line).replace("String_Node_Str",Backpacks.createBackpack(p,size)));
                          im.setLore(lore);
                          adding.setItemMeta(im);
                          break;
                        }
                      }
                    }
 else {
                      for (int line=0; line < adding.getItemMeta().getLore().size(); line++) {
                        if (adding.getItemMeta().getLore().get(line).equals(ChatColor.translateAlternateColorCodes('&',"String_Node_Str"))) {
                          ItemMeta im=adding.getItemMeta();
                          List<String> lore=im.getLore();
                          lore.set(line,lore.get(line).replace("String_Node_Str",id));
                          im.setLore(lore);
                          adding.setItemMeta(im);
                          break;
                        }
                      }
                    }
                  }
                  for (int j=0; j < 9; j++) {
                    if (inv.getContents()[j] != null) {
                      if (inv.getContents()[j].getType() != Material.AIR) {
                        if (inv.getContents()[j].getType().toString().endsWith("String_Node_Str"))                         inv.setItem(j,new ItemStack(Material.BUCKET));
 else                         if (inv.getContents()[j].getAmount() > 1)                         inv.setItem(j,new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1));
 else                         inv.setItem(j,null);
                      }
                    }
                  }
                  p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                  inv.addItem(adding);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.PORTABLE_DUSTBIN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT)}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.PORTABLE_DUSTBIN,true)) {
        e.setCancelled(true);
        p.openInventory(Bukkit.createInventory(null,9 * 3,ChatColor.DARK_RED + "String_Node_Str"));
        p.playSound(p.getLocation(),Sound.BLOCK_ANVIL_LAND,1,1);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.BEEF_JERKY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SALT,new ItemStack(Material.COOKED_BEEF),null,null,null,null,null,null,null},new String[]{"String_Node_Str"},new Integer[]{20}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.GRIND_STONE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.FENCE),null,null,new CustomItem(Material.DISPENSER,"String_Node_Str",0),null},new ItemStack[]{new ItemStack(Material.BLAZE_ROD),new ItemStack(Material.BLAZE_POWDER,4),new ItemStack(Material.BONE),new CustomItem(Material.INK_SACK,15,4),new ItemStack(Material.GRAVEL),new ItemStack(Material.FLINT),new ItemStack(Material.NETHER_STALK),new CustomItem(SlimefunItems.MAGIC_LUMP_1,2),new ItemStack(Material.EYE_OF_ENDER),new CustomItem(SlimefunItems.ENDER_LUMP_1,2),new ItemStack(Material.COBBLESTONE),new ItemStack(Material.GRAVEL),new ItemStack(Material.WHEAT),SlimefunItems.WHEAT_FLOUR,new ItemStack(Material.DIRT),SlimefunItems.STONE_CHUNK},Material.FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                ItemStack output=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,output)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(output);
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ARMOR_FORGE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.ANVIL),null,null,new CustomItem(Material.DISPENSER,"String_Node_Str",0),null},new ItemStack[]{},Material.ANVIL).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          final Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (int j=0; j < inv.getContents().length; j++) {
              if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],true)) {
                craft=false;
                break;
              }
            }
            if (craft) {
              final ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i));
              if (Slimefun.hasUnlocked(p,adding,true)) {
                if (InvUtils.fits(inv,adding)) {
                  for (                  ItemStack removing : inputs.get(i)) {
                    if (removing != null)                     inv.removeItem(removing);
                  }
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_ANVIL_USE,1,1);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(p.getLocation(),Sound.BLOCK_ANVIL_USE,1F,2F);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(p.getLocation(),Sound.BLOCK_ANVIL_USE,1F,2F);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ORE_CRUSHER,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.NETHER_FENCE),null,new ItemStack(Material.IRON_FENCE),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.IRON_FENCE)},new ItemStack[]{new ItemStack(Material.IRON_ORE),new CustomItem(SlimefunItems.IRON_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1),new ItemStack(Material.GOLD_ORE),new CustomItem(SlimefunItems.GOLD_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1),new ItemStack(Material.NETHERRACK,16),SlimefunItems.SULFATE,SlimefunItems.SIFTED_ORE,SlimefunItems.CRUSHED_ORE,SlimefunItems.CRUSHED_ORE,SlimefunItems.PULVERIZED_ORE,SlimefunItems.PURE_ORE_CLUSTER,SlimefunItems.TINY_URANIUM,new ItemStack(Material.COBBLESTONE,8),new ItemStack(Material.SAND,1),new ItemStack(Material.GOLD_INGOT),SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_4K,SlimefunItems.GOLD_DUST},Material.NETHER_FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(convert.getAmount());
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,1);
                  ;
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.COMPRESSOR,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.NETHER_FENCE),null,new ItemStack(Material.PISTON_BASE),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.PISTON_BASE)},new ItemStack[]{new ItemStack(Material.COAL,8),SlimefunItems.CARBON,new CustomItem(SlimefunItems.STEEL_INGOT,8),SlimefunItems.STEEL_PLATE,new CustomItem(SlimefunItems.CARBON,4),SlimefunItems.COMPRESSED_CARBON,new CustomItem(SlimefunItems.STONE_CHUNK,4),new ItemStack(Material.COBBLESTONE),new CustomItem(SlimefunItems.REINFORCED_ALLOY_INGOT,8),SlimefunItems.REINFORCED_PLATE},Material.NETHER_FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          final Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                final ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(convert.getAmount());
                  inv.removeItem(removing);
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_PISTON_EXTEND,1,1);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(p.getLocation(),Sound.BLOCK_PISTON_CONTRACT,1F,2F);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(p.getLocation(),Sound.BLOCK_PISTON_EXTEND,1F,2F);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGIC_LUMP_1,"String_Node_Str",RecipeType.GRIND_STONE,new ItemStack[]{null,null,null,null,new ItemStack(Material.NETHER_STALK),null,null,null,null},new CustomItem(SlimefunItems.MAGIC_LUMP_1,2)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGIC_LUMP_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MAGIC_LUMP_1,SlimefunItems.MAGIC_LUMP_1,null,SlimefunItems.MAGIC_LUMP_1,SlimefunItems.MAGIC_LUMP_1,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGIC_LUMP_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MAGIC_LUMP_2,SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,SlimefunItems.MAGIC_LUMP_2,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ENDER_LUMP_1,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,null,new ItemStack(Material.EYE_OF_ENDER),null,null,null,null},new CustomItem(SlimefunItems.ENDER_LUMP_1,2)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ENDER_LUMP_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,SlimefunItems.ENDER_LUMP_1,null,SlimefunItems.ENDER_LUMP_1,SlimefunItems.ENDER_LUMP_1,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ENDER_LUMP_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ENDER_LUMP_2,SlimefunItems.ENDER_LUMP_2,null,SlimefunItems.ENDER_LUMP_2,SlimefunItems.ENDER_LUMP_2,null,null,null,null}).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.ENDER_BACKPACK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.LEATHER),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.LEATHER),new ItemStack(Material.CHEST),new ItemStack(Material.LEATHER),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.LEATHER),SlimefunItems.ENDER_LUMP_2}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.ENDER_BACKPACK,true)) {
        e.setCancelled(true);
        p.openInventory(p.getEnderChest());
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ENDERMEN_TELEPORT,1,1);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_HELMET,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.EYE_OF_ENDER),SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN),null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_CHESTPLATE,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,null,SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),new ItemStack(Material.EYE_OF_ENDER),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_LEGGINGS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.EYE_OF_ENDER),SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN),new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.ENDER_BOOTS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,SlimefunItems.ENDER_LUMP_1,null,SlimefunItems.ENDER_LUMP_1,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.MAGIC_EYE_OF_ENDER,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.ENDER_PEARL),new ItemStack(Material.EYE_OF_ENDER),new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_2,new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_2}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.MAGIC_EYE_OF_ENDER,true)) {
        e.getParentEvent().setCancelled(true);
        PlayerInventory.update(p);
        if (p.getInventory().getHelmet() != null && p.getInventory().getChestplate() != null && p.getInventory().getLeggings() != null && p.getInventory().getBoots() != null) {
          if (SlimefunManager.isItemSimiliar(p.getInventory().getHelmet(),SlimefunItems.ENDER_HELMET,true) && SlimefunManager.isItemSimiliar(p.getInventory().getChestplate(),SlimefunItems.ENDER_CHESTPLATE,true) && SlimefunManager.isItemSimiliar(p.getInventory().getLeggings(),SlimefunItems.ENDER_LEGGINGS,true)&& SlimefunManager.isItemSimiliar(p.getInventory().getBoots(),SlimefunItems.ENDER_BOOTS,true)) {
            p.launchProjectile(EnderPearl.class);
            p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ENDERMEN_TELEPORT,1,1);
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.MAGIC_SUGAR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.REDSTONE),new ItemStack(Material.GLOWSTONE_DUST),null,null,null,null,null,null},new String[]{"String_Node_Str"},new Integer[]{4}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.MAGIC_SUGAR,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_GENERIC_EAT,1,1);
        p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,600,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.FOOD,SlimefunItems.MONSTER_JERKY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SALT,new ItemStack(Material.ROTTEN_FLESH),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_HELMET,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT),null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_CHESTPLATE,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_LEGGINGS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT)},new PotionEffect[]{new PotionEffect(PotionEffectType.SPEED,300,2)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_BOOTS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.IRON_INGOT)},new PotionEffect[]{new PotionEffect(PotionEffectType.JUMP,300,5)}).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.SWORD_OF_BEHEADING,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.EMERALD),null,SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.EMERALD),SlimefunItems.MAGIC_LUMP_2,null,new ItemStack(Material.BLAZE_ROD),null},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},new Integer[]{70,40,25,40,40}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.MAGICAL_BOOK_COVER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.BOOK),SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.BASIC_CIRCUIT_BOARD,"String_Node_Str",RecipeType.MOB_DROP,new ItemStack[]{null,null,null,null,new CustomItem(Material.MONSTER_EGG,"String_Node_Str",99),null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.ADVANCED_CIRCUIT_BOARD,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.REDSTONE_BLOCK),SlimefunItems.BASIC_CIRCUIT_BOARD,new ItemStack(Material.REDSTONE_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK),new ItemStack(Material.LAPIS_BLOCK)}).register(true);
  new SlimefunGadget(Categories.TOOLS,SlimefunItems.GOLD_PAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.STONE),new ItemStack(Material.BOWL),new ItemStack(Material.STONE),new ItemStack(Material.STONE),new ItemStack(Material.STONE),new ItemStack(Material.STONE)},new ItemStack[]{new ItemStack(Material.GRAVEL),new ItemStack(Material.FLINT),new ItemStack(Material.GRAVEL),new ItemStack(Material.CLAY_BALL),new ItemStack(Material.GRAVEL),SlimefunItems.SIFTED_ORE},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"},new Integer[]{47,28,15}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.GOLD_PAN,true)) {
        if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.GRAVEL) {
          List<ItemStack> drops=new ArrayList<ItemStack>();
          if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))           drops.add(SlimefunItems.SIFTED_ORE);
 else           if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))           drops.add(new ItemStack(Material.CLAY_BALL));
 else           if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))           drops.add(new ItemStack(Material.FLINT));
          if (CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(),e.getClickedBlock(),true)) {
            e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(),Effect.STEP_SOUND,e.getClickedBlock().getType());
            e.getClickedBlock().setType(Material.AIR);
            for (            ItemStack drop : drops) {
              e.getClickedBlock().getWorld().dropItemNaturally(e.getClickedBlock().getLocation(),drop);
            }
          }
        }
        e.setCancelled(true);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.SIFTED_ORE,"String_Node_Str",RecipeType.GOLD_PAN,new ItemStack[]{new ItemStack(Material.GRAVEL),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.SMELTERY,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.NETHER_FENCE),null,new ItemStack(Material.NETHER_BRICK),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.NETHER_BRICK),null,new ItemStack(Material.FLINT_AND_STEEL),null},new ItemStack[]{SlimefunItems.IRON_DUST,new ItemStack(Material.IRON_INGOT)},Material.NETHER_FENCE,new String[]{"String_Node_Str"},new Integer[]{34}).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (            ItemStack converting : inputs.get(i)) {
              if (converting != null) {
                for (int j=0; j < inv.getContents().length; j++) {
                  if (j == (inv.getContents().length - 1) && !SlimefunManager.isItemSimiliar(converting,inv.getContents()[j],true,SlimefunManager.DataType.ALWAYS)) {
                    craft=false;
                    break;
                  }
 else                   if (SlimefunManager.isItemSimiliar(inv.getContents()[j],converting,true,SlimefunManager.DataType.ALWAYS))                   break;
                }
              }
            }
            if (craft) {
              ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i));
              if (Slimefun.hasUnlocked(p,adding,true)) {
                if (InvUtils.fits(inv,adding)) {
                  for (                  ItemStack removing : inputs.get(i)) {
                    if (removing != null)                     inv.removeItem(removing);
                  }
                  inv.addItem(adding);
                  p.getWorld().playSound(p.getLocation(),Sound.BLOCK_LAVA_POP,1,1);
                  p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                  Block raw_disp=b.getRelative(BlockFace.DOWN);
                  Hopper resf=null;
                  if (raw_disp.getRelative(BlockFace.EAST).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.EAST).getState();
                  }
 else                   if (raw_disp.getRelative(BlockFace.WEST).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.WEST).getState();
                  }
 else                   if (raw_disp.getRelative(BlockFace.NORTH).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.NORTH).getState();
                  }
 else                   if (raw_disp.getRelative(BlockFace.SOUTH).getState().getBlock().getType().name() == "String_Node_Str") {
                    resf=(Hopper)raw_disp.getRelative(BlockFace.SOUTH).getState();
                  }
                  boolean isIgniteChamberInstalled=false;
                  if (resf != null) {
                    if (resf.getCustomName().equalsIgnoreCase(SlimefunItems.IGNITION_CHAMBER.getItemMeta().getDisplayName()))                     isIgniteChamberInstalled=true;
                  }
                  if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str"))) {
                    if (isIgniteChamberInstalled) {
                      if (resf.getInventory().contains(Material.FLINT_AND_STEEL)) {
                        ItemStack item=resf.getInventory().getItem(resf.getInventory().first(Material.FLINT_AND_STEEL));
                        item.setDurability((short)(item.getDurability() + 1));
                        if (item.getDurability() >= 64) {
                          item.setAmount(0);
                          p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ITEM_BREAK,1,1);
                          item.setAmount(0);
                        }
                        p.getWorld().playSound(p.getLocation(),Sound.ITEM_FLINTANDSTEEL_USE,1,1);
                      }
 else {
                        Messages.local.sendTranslation(p,"String_Node_Str",true);
                        BlockBreaker.nullify(b.getRelative(BlockFace.DOWN).getRelative(BlockFace.DOWN));
                      }
                    }
 else {
                      BlockBreaker.nullify(b.getRelative(BlockFace.DOWN).getRelative(BlockFace.DOWN));
                    }
                  }
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MACHINES_1,SlimefunItems.IGNITION_CHAMBER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_PLATE,SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.STEEL_PLATE,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_PLATE,SlimefunItems.ELECTRIC_MOTOR,null,new ItemStack(Material.HOPPER),null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.PRESSURE_CHAMBER,"String_Node_Str",new ItemStack[]{new ItemStack(Material.STEP),new CustomItem(Material.DISPENSER,"String_Node_Str",0),new ItemStack(Material.STEP),new ItemStack(Material.PISTON_BASE),new ItemStack(Material.GLASS),new ItemStack(Material.PISTON_BASE),new ItemStack(Material.PISTON_BASE),new ItemStack(Material.CAULDRON_ITEM),new ItemStack(Material.PISTON_BASE)},new ItemStack[]{SlimefunItems.CARBON_CHUNK,SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.RAW_CARBONADO,SlimefunItems.CARBONADO},Material.CAULDRON).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.UP).getRelative(BlockFace.UP).getState();
          final Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                final ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(convert.getAmount());
                  inv.removeItem(removing);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
                  p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                  p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                  p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(b.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
                      p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                      p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                      p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(b.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
                          p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                          p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                          p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                              p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                              p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(),Effect.SMOKE,4);
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.BATTERY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.REDSTONE),null,SlimefunItems.ZINC_INGOT,SlimefunItems.SULFATE,SlimefunItems.COPPER_INGOT,SlimefunItems.ZINC_INGOT,SlimefunItems.SULFATE,SlimefunItems.COPPER_INGOT}).register(true);
  SlimefunManager.registerArmorSet(new ItemStack(Material.GLOWSTONE),new ItemStack[]{SlimefunItems.GLOWSTONE_HELMET,SlimefunItems.GLOWSTONE_CHESTPLATE,SlimefunItems.GLOWSTONE_LEGGINGS,SlimefunItems.GLOWSTONE_BOOTS},"String_Node_Str",new PotionEffect[][]{new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,0)}},true,true);
  SlimefunManager.registerArmorSet(SlimefunItems.DAMASCUS_STEEL_INGOT,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_HELMET,SlimefunItems.DAMASCUS_STEEL_CHESTPLATE,SlimefunItems.DAMASCUS_STEEL_LEGGINGS,SlimefunItems.DAMASCUS_STEEL_BOOTS},"String_Node_Str",true,false);
  SlimefunManager.registerArmorSet(SlimefunItems.REINFORCED_ALLOY_INGOT,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_HELMET,SlimefunItems.REINFORCED_ALLOY_CHESTPLATE,SlimefunItems.REINFORCED_ALLOY_LEGGINGS,SlimefunItems.REINFORCED_ALLOY_BOOTS},"String_Node_Str",true,false);
  SlimefunManager.registerArmorSet(new ItemStack(Material.CACTUS),new ItemStack[]{SlimefunItems.CACTUS_HELMET,SlimefunItems.CACTUS_CHESTPLATE,SlimefunItems.CACTUS_LEGGINGS,SlimefunItems.CACTUS_BOOTS},"String_Node_Str",true,false);
  new Alloy(SlimefunItems.REINFORCED_ALLOY_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.SOLDER_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.GOLD_24K,null,null,null}).register(true);
  new Alloy(SlimefunItems.HARDENED_METAL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.ALUMINUM_BRONZE_INGOT,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.DAMASCUS_STEEL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.STEEL_INGOT,SlimefunItems.IRON_DUST,SlimefunItems.CARBON,new ItemStack(Material.IRON_INGOT),null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.STEEL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.IRON_DUST,SlimefunItems.CARBON,new ItemStack(Material.IRON_INGOT),null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.BRONZE_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.COPPER_DUST,SlimefunItems.TIN_DUST,SlimefunItems.COPPER_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.DURALUMIN_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.ALUMINUM_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.BILLON_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.SILVER_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.SILVER_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.BRASS_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.COPPER_DUST,SlimefunItems.ZINC_DUST,SlimefunItems.COPPER_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.ALUMINUM_BRASS_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.BRASS_INGOT,SlimefunItems.ALUMINUM_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.ALUMINUM_BRONZE_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.BRONZE_INGOT,SlimefunItems.ALUMINUM_INGOT,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.CORINTHIAN_BRONZE_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.SILVER_DUST,SlimefunItems.GOLD_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.BRONZE_INGOT,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.SOLDER_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.LEAD_DUST,SlimefunItems.TIN_DUST,SlimefunItems.LEAD_INGOT,null,null,null,null,null,null}).register(true);
  new ReplacingAlloy(SlimefunItems.SYNTHETIC_SAPPHIRE,"String_Node_Str",new ItemStack[]{SlimefunItems.ALUMINUM_DUST,new ItemStack(Material.GLASS),new ItemStack(Material.THIN_GLASS),SlimefunItems.ALUMINUM_INGOT,new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),null,null,null,null}).register(true);
  new ReplacingItem(Categories.RESOURCES,SlimefunItems.SYNTHETIC_DIAMOND,"String_Node_Str",RecipeType.PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.CARBON_CHUNK,null,null,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.RAW_CARBONADO,"String_Node_Str",new ItemStack[]{SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.CARBON_CHUNK,new ItemStack(Material.THIN_GLASS),null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.NICKEL_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.IRON_DUST,new ItemStack(Material.IRON_INGOT),SlimefunItems.COPPER_DUST,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.COBALT_INGOT,"String_Node_Str",new ItemStack[]{SlimefunItems.IRON_DUST,SlimefunItems.COPPER_DUST,SlimefunItems.NICKEL_INGOT,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.CARBONADO,"String_Node_Str",RecipeType.PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.RAW_CARBONADO,null,null,null,null,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.FERROSILICON,"String_Node_Str",new ItemStack[]{new ItemStack(Material.IRON_INGOT),SlimefunItems.IRON_DUST,SlimefunItems.SILICON,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.IRON_DUST,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{new ItemStack(Material.IRON_ORE),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.IRON_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1)).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_DUST,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{new ItemStack(Material.GOLD_ORE),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.GOLD_DUST,(Boolean)Slimefun.getItemValue("String_Node_Str","String_Node_Str") ? 2 : 1)).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.COPPER_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.TIN_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.LEAD_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SILVER_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ALUMINUM_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ZINC_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.MAGNESIUM_DUST,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.COPPER_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.COPPER_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.TIN_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.TIN_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SILVER_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.SILVER_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.LEAD_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.LEAD_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ALUMINUM_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.ALUMINUM_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ZINC_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.ZINC_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.MAGNESIUM_INGOT,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.MAGNESIUM_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SULFATE,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{new ItemStack(Material.NETHERRACK,16),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.CARBON,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new ItemStack(Material.COAL,8),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.WHEAT_FLOUR,"String_Node_Str",RecipeType.GRIND_STONE,new ItemStack[]{null,null,null,null,new ItemStack(Material.WHEAT),null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.STEEL_PLATE,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new CustomItem(SlimefunItems.STEEL_INGOT,8),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.COMPRESSED_CARBON,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new CustomItem(SlimefunItems.CARBON,4),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.CARBON_CHUNK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,new ItemStack(Material.FLINT),SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON,SlimefunItems.COMPRESSED_CARBON}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.STEEL_THRUSTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.REDSTONE),null,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.STEEL_PLATE,new ItemStack(Material.FIREBALL),SlimefunItems.STEEL_PLATE}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.POWER_CRYSTAL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.REDSTONE),SlimefunItems.SYNTHETIC_SAPPHIRE,new ItemStack(Material.REDSTONE),SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.SYNTHETIC_SAPPHIRE,new ItemStack(Material.REDSTONE),SlimefunItems.SYNTHETIC_SAPPHIRE,new ItemStack(Material.REDSTONE)}).register(true);
  new Jetpack(SlimefunItems.DURALUMIN_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.DURALUMIN_INGOT,null,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.35).register(true);
  new Jetpack(SlimefunItems.SOLDER_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.SOLDER_INGOT,null,SlimefunItems.SOLDER_INGOT,SlimefunItems.SOLDER_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.SOLDER_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.4).register(true);
  new Jetpack(SlimefunItems.BILLON_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.BILLON_INGOT,null,SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BILLON_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.45).register(true);
  new Jetpack(SlimefunItems.STEEL_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.5).register(true);
  new Jetpack(SlimefunItems.DAMASCUS_STEEL_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.55).register(true);
  new Jetpack(SlimefunItems.REINFORCED_ALLOY_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.6).register(true);
  new Jetpack(SlimefunItems.CARBONADO_JETPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.CARBON_CHUNK,null,SlimefunItems.CARBON_CHUNK,SlimefunItems.CARBONADO,SlimefunItems.POWER_CRYSTAL,SlimefunItems.CARBONADO,SlimefunItems.STEEL_THRUSTER,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.7).register(true);
  new SlimefunItem(Categories.TECH,SlimefunItems.PARACHUTE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CHAIN,null,SlimefunItems.CHAIN,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.CHAIN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,null},new CustomItem(SlimefunItems.CHAIN,8)).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.HOOK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null,null,null}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.GRAPPLING_HOOK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.HOOK,SlimefunItems.HOOK,null,SlimefunItems.CHAIN,SlimefunItems.HOOK,SlimefunItems.CHAIN,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.GRAPPLING_HOOK,true)) {
        if (e.getClickedBlock() == null && !Variables.jump.containsKey(p.getUniqueId())) {
          Variables.jump.put(p.getUniqueId(),p.getItemInHand().getType() != Material.SHEARS);
          e.setCancelled(true);
          if (p.getItemInHand().getType() == Material.LEASH)           PlayerInventory.consumeItemInHand(p);
          Vector direction=p.getEyeLocation().getDirection().multiply(2.0);
          Projectile projectile=p.getWorld().spawn(p.getEyeLocation().add(direction.getX(),direction.getY(),direction.getZ()),Arrow.class);
          projectile.setShooter(p);
          projectile.setVelocity(direction);
          Arrow arrow=(Arrow)projectile;
          Bat b=(Bat)p.getWorld().spawnEntity(p.getLocation(),EntityType.BAT);
          b.setCanPickupItems(false);
          b.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY,100000,100000));
          b.setLeashHolder(arrow);
          Variables.damage.put(p.getUniqueId(),true);
          Variables.remove.put(p.getUniqueId(),new Entity[]{b,arrow});
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.MAGIC_WORKBENCH,"String_Node_Str",new ItemStack[]{null,null,null,null,null,null,new ItemStack(Material.BOOKSHELF),new ItemStack(Material.WORKBENCH),new ItemStack(Material.DISPENSER)},new ItemStack[0],Material.WORKBENCH).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=null;
          if (b.getRelative(1,0,0).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(1,0,0).getState();
 else           if (b.getRelative(0,0,1).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(0,0,1).getState();
 else           if (b.getRelative(-1,0,0).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(-1,0,0).getState();
 else           if (b.getRelative(0,0,-1).getType() == Material.DISPENSER)           disp=(Dispenser)b.getRelative(0,0,-1).getState();
          final Inventory inv=disp.getInventory();
          List<ItemStack[]> inputs=RecipeType.getRecipeInputList(machine);
          for (int i=0; i < inputs.size(); i++) {
            boolean craft=true;
            for (int j=0; j < inv.getContents().length; j++) {
              if (!SlimefunManager.isItemSimiliar(inv.getContents()[j],inputs.get(i)[j],true)) {
                craft=false;
                break;
              }
            }
            if (craft) {
              final ItemStack adding=RecipeType.getRecipeOutputList(machine,inputs.get(i));
              if (Slimefun.hasUnlocked(p,adding,true)) {
                Inventory inv2=Bukkit.createInventory(null,9,"String_Node_Str");
                for (int j=0; j < inv.getContents().length; j++) {
                  inv2.setItem(j,inv.getContents()[j] != null ? (inv.getContents()[j].getAmount() > 1 ? new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1) : null) : null);
                }
                if (InvUtils.fits(inv2,adding)) {
                  for (int j=0; j < 9; j++) {
                    if (inv.getContents()[j] != null) {
                      if (inv.getContents()[j].getType() != Material.AIR) {
                        if (inv.getContents()[j].getAmount() > 1)                         inv.setItem(j,new CustomItem(inv.getContents()[j],inv.getContents()[j].getAmount() - 1));
 else                         inv.setItem(j,null);
                      }
                    }
                  }
                  p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                  p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                  p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                      p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                      p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          p.getWorld().playSound(b.getLocation(),Sound.BLOCK_WOOD_BUTTON_CLICK_ON,1,1);
                          p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                          p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              p.getWorld().playEffect(b.getLocation(),Effect.MOBSPAWNER_FLAMES,1);
                              p.getWorld().playEffect(b.getLocation(),Effect.ENDER_SIGNAL,1);
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
              }
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_ELEMENTAL,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,SlimefunItems.MAGICAL_BOOK_COVER,SlimefunItems.MAGIC_LUMP_3,null,new ItemStack(Material.STICK),SlimefunItems.MAGICAL_BOOK_COVER,SlimefunItems.MAGIC_LUMP_3,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_WIND,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.FEATHER),SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.STAFF_ELEMENTAL,new ItemStack(Material.FEATHER),SlimefunItems.STAFF_ELEMENTAL,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.STAFF_WIND,true)) {
        if (p.getFoodLevel() >= 2) {
          if (p.getItemInHand().getType() != Material.SHEARS) {
            FoodLevelChangeEvent event=new FoodLevelChangeEvent(p,p.getFoodLevel() - 2);
            Bukkit.getPluginManager().callEvent(event);
            p.setFoodLevel(event.getFoodLevel());
          }
          p.setVelocity(p.getEyeLocation().getDirection().multiply(4));
          p.getWorld().playSound(p.getLocation(),Sound.ENTITY_TNT_PRIMED,1,1);
          p.getWorld().playEffect(p.getLocation(),Effect.SMOKE,1);
          p.setFallDistance(0.0f);
        }
 else {
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_WATER,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.WATER_LILY),SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.STAFF_ELEMENTAL,new ItemStack(Material.WATER_LILY),SlimefunItems.STAFF_ELEMENTAL,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.STAFF_WATER,true)) {
        p.setFireTicks(0);
        Messages.local.sendTranslation(p,"String_Node_Str",true);
        return true;
      }
 else       return false;
    }
  }
);
  new MultiTool(SlimefunItems.DURALUMIN_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DURALUMIN_INGOT,null,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.DURALUMIN_INGOT,null,SlimefunItems.DURALUMIN_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.SOLDER_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLDER_INGOT,null,SlimefunItems.SOLDER_INGOT,SlimefunItems.SOLDER_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.SOLDER_INGOT,null,SlimefunItems.SOLDER_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.BILLON_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BILLON_INGOT,null,SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.BILLON_INGOT,null,SlimefunItems.BILLON_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.STEEL_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.DAMASCUS_STEEL_INGOT,null,SlimefunItems.DAMASCUS_STEEL_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,null},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","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new MultiTool(SlimefunItems.CARBONADO_MULTI_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,null,SlimefunItems.CARBONADO,SlimefunItems.CARBONADO,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.CARBONADO,null,SlimefunItems.CARBONADO,null},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","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},new Object[]{true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str",true,"String_Node_Str","String_Node_Str"}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ORE_WASHER,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.DISPENSER),null,null,new ItemStack(Material.FENCE),null,null,new ItemStack(Material.CAULDRON_ITEM),null},new ItemStack[]{SlimefunItems.SIFTED_ORE,SlimefunItems.IRON_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.GOLD_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.COPPER_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.TIN_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.ZINC_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.ALUMINUM_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.MAGNESIUM_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.LEAD_DUST,SlimefunItems.SIFTED_ORE,SlimefunItems.SILVER_DUST},Material.FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,machine.getItem(),true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.UP).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            if (current != null) {
              if (SlimefunManager.isItemSimiliar(current,SlimefunItems.SIFTED_ORE,true)) {
                ItemStack adding=SlimefunItems.IRON_DUST;
                if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.GOLD_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.ALUMINUM_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.COPPER_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.ZINC_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.TIN_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.MAGNESIUM_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.LEAD_DUST;
 else                 if (SlimefunStartup.chance(100,25))                 adding=SlimefunItems.SILVER_DUST;
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.WATER);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1,1);
                  if (InvUtils.fits(inv,SlimefunItems.STONE_CHUNK))                   inv.addItem(SlimefunItems.STONE_CHUNK);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
 else               if (SlimefunManager.isItemSimiliar(current,new ItemStack(Material.SAND,4),false)) {
                ItemStack adding=SlimefunItems.SALT;
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(4);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.WATER);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1,1);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
 else               if (SlimefunManager.isItemSimiliar(current,SlimefunItems.PULVERIZED_ORE,true)) {
                ItemStack adding=SlimefunItems.PURE_ORE_CLUSTER;
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.WATER);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1,1);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_24K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_22K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_22K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_20K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_20K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_18K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_18K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_16K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_16K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_14K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_14K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_12K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_12K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_10K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_10K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_8K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_8K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_6K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_6K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,SlimefunItems.GOLD_4K,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.GOLD_4K,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.GOLD_DUST,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.STONE_CHUNK,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.SILICON,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{new ItemStack(Material.QUARTZ_BLOCK),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.SOLAR_PANEL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),SlimefunItems.SILICON,SlimefunItems.SILICON,SlimefunItems.SILICON,SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON}).register(true);
  new SolarHelmet(Categories.TECH,SlimefunItems.SOLAR_HELMET,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.SOLAR_PANEL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.MEDIUM_CAPACITOR,null,SlimefunItems.MEDIUM_CAPACITOR},new String[]{"String_Node_Str"},new Double[]{0.1}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.LAVA_CRYSTAL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.RUNE_FIRE,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.BLAZE_POWDER),SlimefunItems.MAGIC_LUMP_1}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.STAFF_FIRE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,null,SlimefunItems.LAVA_CRYSTAL,null,SlimefunItems.STAFF_ELEMENTAL,null,SlimefunItems.STAFF_ELEMENTAL,null,null}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.AUTO_SMELT_PICKAXE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LAVA_CRYSTAL,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.LAVA_CRYSTAL,null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.AUTO_SMELT_PICKAXE,true)) {
        if (e.getBlock().getType().equals(Material.SKULL))         return true;
        int j=-1;
        for (int i=0; i < e.getBlock().getDrops().size(); i++) {
          if (((List<ItemStack>)e.getBlock().getDrops()).get(i) != null) {
            j++;
            drops.add(e.getBlock().getType().toString().endsWith("String_Node_Str") ? new CustomItem(((List<ItemStack>)e.getBlock().getDrops()).get(i),fortune) : ((List<ItemStack>)e.getBlock().getDrops()).get(i));
            if (RecipeCalculator.getSmeltedOutput(drops.get(i).getType()) != null) {
              e.getBlock().getWorld().playEffect(e.getBlock().getLocation(),Effect.MOBSPAWNER_FLAMES,1);
              drops.set(j,new CustomItem(RecipeCalculator.getSmeltedOutput(drops.get(i).getType()),drops.get(i).getAmount()));
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.TALISMAN,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.MAGIC_LUMP_2,SlimefunItems.GOLD_8K,SlimefunItems.MAGIC_LUMP_2,null,new ItemStack(Material.EMERALD),null,SlimefunItems.MAGIC_LUMP_2,SlimefunItems.GOLD_8K,SlimefunItems.MAGIC_LUMP_2},new String[]{"String_Node_Str"},new Boolean[]{false}).register(true);
  new Talisman(SlimefunItems.TALISMAN_ANVIL,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.ANVIL),SlimefunItems.TALISMAN,new ItemStack(Material.ANVIL),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,false,"String_Node_Str",new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_MINER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.TALISMAN,SlimefunItems.SIFTED_ORE,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,false,"String_Node_Str",20,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_HUNTER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.TALISMAN,SlimefunItems.MONSTER_JERKY,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,false,"String_Node_Str",20,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_LAVA,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.TALISMAN,new ItemStack(Material.LAVA_BUCKET),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.FIRE_RESISTANCE,3600,4)).register(true);
  new Talisman(SlimefunItems.TALISMAN_WATER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.WATER_BUCKET),SlimefunItems.TALISMAN,new ItemStack(Material.FISHING_ROD),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.WATER_BREATHING,3600,4)).register(true);
  new Talisman(SlimefunItems.TALISMAN_ANGEL,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.FEATHER),SlimefunItems.TALISMAN,new ItemStack(Material.FEATHER),SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,true,"String_Node_Str",75,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_FIRE,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.TALISMAN,SlimefunItems.LAVA_CRYSTAL,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.FIRE_RESISTANCE,3600,4)).register(true);
  new Talisman(SlimefunItems.TALISMAN_MAGICIAN,"String_Node_Str",new ItemStack[]{SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3,new ItemStack(Material.ENCHANTMENT_TABLE),SlimefunItems.TALISMAN,new ItemStack(Material.ENCHANTMENT_TABLE),SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3},false,false,"String_Node_Str",80,new PotionEffect[0]).register(true);
  for (  Enchantment e : Enchantment.values()) {
    for (int i=1; i <= e.getMaxLevel(); i++) {
      Slimefun.setItemVariable("String_Node_Str","String_Node_Str" + e.getName() + "String_Node_Str"+ i,true);
    }
  }
  new Talisman(SlimefunItems.TALISMAN_TRAVELLER,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.STAFF_WIND,SlimefunItems.TALISMAN_ANGEL,SlimefunItems.STAFF_WIND,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,false,"String_Node_Str",60,new PotionEffect(PotionEffectType.SPEED,3600,2)).register(true);
  new Talisman(SlimefunItems.TALISMAN_WARRIOR,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.TALISMAN,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},true,true,"String_Node_Str",new PotionEffect(PotionEffectType.INCREASE_DAMAGE,3600,2)).register(true);
  new Talisman(SlimefunItems.TALISMAN_KNIGHT,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.GILDED_IRON,SlimefunItems.TALISMAN_WARRIOR,SlimefunItems.GILDED_IRON,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},"String_Node_Str",30,new PotionEffect(PotionEffectType.REGENERATION,100,3)).register(true);
  new Alloy(SlimefunItems.GILDED_IRON,"String_Node_Str",new ItemStack[]{SlimefunItems.GOLD_24K,SlimefunItems.IRON_DUST,null,null,null,null,null,null,null}).register(true);
  new ReplacingAlloy(SlimefunItems.SYNTHETIC_EMERALD,"String_Node_Str",new ItemStack[]{SlimefunItems.SYNTHETIC_SAPPHIRE,SlimefunItems.ALUMINUM_DUST,SlimefunItems.ALUMINUM_INGOT,new ItemStack(Material.THIN_GLASS),null,null,null,null,null}).register(true);
  SlimefunManager.registerArmorSet(SlimefunItems.CHAIN,new ItemStack[]{new ItemStack(Material.CHAINMAIL_HELMET),new ItemStack(Material.CHAINMAIL_CHESTPLATE),new ItemStack(Material.CHAINMAIL_LEGGINGS),new ItemStack(Material.CHAINMAIL_BOOTS)},"String_Node_Str",true,true);
  new Talisman(SlimefunItems.TALISMAN_WHIRLWIND,"String_Node_Str",new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.STAFF_WIND,SlimefunItems.TALISMAN_TRAVELLER,SlimefunItems.STAFF_WIND,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3},false,true,"String_Node_Str",60,new PotionEffect[0]).register(true);
  new Talisman(SlimefunItems.TALISMAN_WIZARD,"String_Node_Str",new ItemStack[]{SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.TALISMAN_MAGICIAN,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.ENDER_LUMP_3,null,SlimefunItems.ENDER_LUMP_3},false,false,"String_Node_Str",60,new PotionEffect[0]).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.LUMBER_AXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.SYNTHETIC_DIAMOND,SlimefunItems.SYNTHETIC_DIAMOND,null,SlimefunItems.SYNTHETIC_EMERALD,SlimefunItems.GILDED_IRON,null,null,SlimefunItems.GILDED_IRON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.LUMBER_AXE,true)) {
        if (e.getBlock().getType() == Material.LOG || e.getBlock().getType() == Material.LOG_2) {
          List<Location> logs=new ArrayList<Location>();
          TreeCalculator.getTree(e.getBlock().getLocation(),e.getBlock().getLocation(),logs);
          if (logs.contains(e.getBlock()))           logs.remove(e.getBlock());
          for (          Location b : logs) {
            if (CSCoreLib.getLib().getProtectionManager().canBuild(e.getPlayer().getUniqueId(),b.getBlock())) {
              b.getWorld().playEffect(b,Effect.STEP_SOUND,b.getBlock().getType());
              for (              ItemStack drop : b.getBlock().getDrops()) {
                b.getWorld().dropItemNaturally(b,drop);
              }
              b.getBlock().setType(Material.AIR);
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.SALT,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{null,null,null,null,new ItemStack(Material.SAND,4),null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.HEAVY_CREAM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.MILK_BUCKET),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.HEAVY_CREAM,2)).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.CHEESE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.MILK_BUCKET),SlimefunItems.SALT,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.BUTTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HEAVY_CREAM,SlimefunItems.SALT,null,null,null,null,null,null,null}).register(true);
  SlimefunManager.registerArmorSet(SlimefunItems.GILDED_IRON,new ItemStack[]{SlimefunItems.GILDED_IRON_HELMET,SlimefunItems.GILDED_IRON_CHESTPLATE,SlimefunItems.GILDED_IRON_LEGGINGS,SlimefunItems.GILDED_IRON_BOOTS},"String_Node_Str",true,false);
  new SlimefunArmorPiece(Categories.ARMOR,SlimefunItems.SCUBA_HELMET,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new ItemStack(Material.THIN_GLASS),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),null,null,null},new PotionEffect[]{new PotionEffect(PotionEffectType.WATER_BREATHING,300,1)}).register(true);
  new SlimefunArmorPiece(Categories.ARMOR,SlimefunItems.HAZMATSUIT_CHESTPLATE,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new MaterialData(Material.WOOL,(byte)1).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1)},new PotionEffect[]{new PotionEffect(PotionEffectType.FIRE_RESISTANCE,300,1)}).register(true);
  new SlimefunItem(Categories.ARMOR,SlimefunItems.HAZMATSUIT_LEGGINGS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)1).toItemStack(1),new MaterialData(Material.WOOL,(byte)1).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)1).toItemStack(1)}).register(true);
  new SlimefunItem(Categories.ARMOR,SlimefunItems.RUBBER_BOOTS,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new MaterialData(Material.WOOL,(byte)15).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)15).toItemStack(1),new MaterialData(Material.WOOL,(byte)15).toItemStack(1),null,new MaterialData(Material.WOOL,(byte)15).toItemStack(1)}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.CRUSHED_ORE,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{SlimefunItems.SIFTED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.PULVERIZED_ORE,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{SlimefunItems.CRUSHED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.PURE_ORE_CLUSTER,"String_Node_Str",RecipeType.ORE_WASHER,new ItemStack[]{SlimefunItems.PULVERIZED_ORE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.TINY_URANIUM,"String_Node_Str",RecipeType.ORE_CRUSHER,new ItemStack[]{SlimefunItems.PURE_ORE_CLUSTER,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.SMALL_URANIUM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM,SlimefunItems.TINY_URANIUM}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.URANIUM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SMALL_URANIUM,SlimefunItems.SMALL_URANIUM,null,SlimefunItems.SMALL_URANIUM,SlimefunItems.SMALL_URANIUM,null,null,null,null}).register(true);
  new Alloy(SlimefunItems.REDSTONE_ALLOY,"String_Node_Str",new ItemStack[]{new ItemStack(Material.REDSTONE),new ItemStack(Material.REDSTONE_BLOCK),SlimefunItems.FERROSILICON,SlimefunItems.HARDENED_METAL_INGOT,null,null,null,null,null}).register(true);
  SlimefunManager.registerArmorSet(SlimefunItems.GOLD_12K,new ItemStack[]{SlimefunItems.GOLD_HELMET,SlimefunItems.GOLD_CHESTPLATE,SlimefunItems.GOLD_LEGGINGS,SlimefunItems.GOLD_BOOTS},"String_Node_Str",true,false);
  new SlimefunItem(Categories.MISC,SlimefunItems.CLOTH,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.WOOL),null,null,null,null,null,null,null,null},new CustomItem(SlimefunItems.CLOTH,8)).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.RAG,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH,new ItemStack(Material.STRING),null,new ItemStack(Material.STRING),SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.RAG,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playEffect(p.getLocation(),Effect.STEP_SOUND,Material.WOOL);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,0));
        p.setFireTicks(0);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.BANDAGE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.RAG,new ItemStack(Material.STRING),SlimefunItems.RAG,null,null,null,null,null,null},new CustomItem(SlimefunItems.BANDAGE,4),new String[]{"String_Node_Str"},new Boolean[]{true}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.BANDAGE,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playEffect(p.getLocation(),Effect.STEP_SOUND,Material.WOOL);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,1));
        p.setFireTicks(0);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.SPLINT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.IRON_INGOT),null,new ItemStack(Material.STICK),new ItemStack(Material.STICK),new ItemStack(Material.STICK),null,new ItemStack(Material.IRON_INGOT),null},new CustomItem(SlimefunItems.SPLINT,4),new String[]{"String_Node_Str"},new Boolean[]{true}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.SPLINT,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_SKELETON_HURT,1,1);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,0));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.CAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,null,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT,SlimefunItems.TIN_INGOT},new CustomItem(SlimefunItems.CAN,4)).register(true);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.VITAMINS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.APPLE),new ItemStack(Material.RED_MUSHROOM),new ItemStack(Material.SUGAR),null,null,null,null,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.VITAMINS,true)) {
        PlayerInventory.consumeItemInHand(p);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_GENERIC_EAT,1,1);
        if (p.hasPotionEffect(PotionEffectType.POISON))         p.removePotionEffect(PotionEffectType.POISON);
        if (p.hasPotionEffect(PotionEffectType.WITHER))         p.removePotionEffect(PotionEffectType.WITHER);
        if (p.hasPotionEffect(PotionEffectType.SLOW))         p.removePotionEffect(PotionEffectType.SLOW);
        if (p.hasPotionEffect(PotionEffectType.SLOW_DIGGING))         p.removePotionEffect(PotionEffectType.SLOW_DIGGING);
        if (p.hasPotionEffect(PotionEffectType.WEAKNESS))         p.removePotionEffect(PotionEffectType.WEAKNESS);
        if (p.hasPotionEffect(PotionEffectType.CONFUSION))         p.removePotionEffect(PotionEffectType.CONFUSION);
        if (p.hasPotionEffect(PotionEffectType.BLINDNESS))         p.removePotionEffect(PotionEffectType.BLINDNESS);
        p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL,1,2));
        p.setFireTicks(0);
        e.setCancelled(true);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.PORTABLE,SlimefunItems.MEDICINE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.VITAMINS,new ItemStack(Material.GLASS_BOTTLE),SlimefunItems.HEAVY_CREAM,null,null,null,null,null,null}).register(true);
  new SlimefunArmorPiece(Categories.TECH,SlimefunItems.NIGHT_VISION_GOGGLES,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.COAL_BLOCK),new ItemStack(Material.COAL_BLOCK),new ItemStack(Material.COAL_BLOCK),new MaterialData(Material.STAINED_GLASS_PANE,(byte)5).toItemStack(1),new ItemStack(Material.COAL_BLOCK),new MaterialData(Material.STAINED_GLASS_PANE,(byte)5).toItemStack(1),new ItemStack(Material.COAL_BLOCK),null,new ItemStack(Material.COAL_BLOCK)},new PotionEffect[]{new PotionEffect(PotionEffectType.NIGHT_VISION,600,20)}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.PICKAXE_OF_CONTAINMENT,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON,SlimefunItems.FERROSILICON,null,SlimefunItems.GILDED_IRON,null,null,SlimefunItems.GILDED_IRON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.PICKAXE_OF_CONTAINMENT,true)) {
        if (e.getBlock().getType() != Material.MOB_SPAWNER)         return true;
        ItemStack spawner=SlimefunItems.BROKEN_SPAWNER.clone();
        ItemMeta im=spawner.getItemMeta();
        List<String> lore=im.getLore();
        for (int i=0; i < lore.size(); i++) {
          if (lore.get(i).contains("String_Node_Str"))           lore.set(i,lore.get(i).replace("String_Node_Str",StringUtils.format(((CreatureSpawner)e.getBlock().getState()).getSpawnedType().toString())));
        }
        im.setLore(lore);
        spawner.setItemMeta(im);
        e.getBlock().getLocation().getWorld().dropItemNaturally(e.getBlock().getLocation(),spawner);
        e.setExpToDrop(0);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.HERCULES_PICKAXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.HERCULES_PICKAXE,true) && e.getBlock().getType().toString().endsWith("String_Node_Str")) {
        if (e.getBlock().getType() == Material.IRON_ORE)         drops.add(new CustomItem(SlimefunItems.IRON_DUST,2));
 else         if (e.getBlock().getType() == Material.GOLD_ORE)         drops.add(new CustomItem(SlimefunItems.GOLD_DUST,2));
 else {
          for (          ItemStack drop : e.getBlock().getDrops()) {
            drops.add(new CustomItem(drop,2));
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.SAW_MILL,"String_Node_Str",new ItemStack[]{null,null,null,new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG),new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG),new ItemStack(Material.WORKBENCH),new ItemStack(Material.LOG)},new ItemStack[]{},Material.WORKBENCH).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.SAW_MILL,true)) {
          if (b.getRelative(BlockFace.UP).getType() == Material.LOG)           BlockBreaker.breakBlock(p,b.getRelative(BlockFace.UP),Arrays.asList(new ItemStack[]{new CustomItem(Material.WOOD,b.getRelative(BlockFace.UP).getData() % 4,8)}),true);
 else           if (b.getRelative(BlockFace.UP).getType() == Material.LOG_2)           BlockBreaker.breakBlock(p,b.getRelative(BlockFace.UP),Arrays.asList(new ItemStack[]{new CustomItem(Material.WOOD,(b.getRelative(BlockFace.UP).getData() % 2) + 4,8)}),true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,new CustomItem(Material.FIRE,"String_Node_Str",0),"String_Node_Str",new ItemStack[]{null,null,null,new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG_2),new ItemStack(Material.IRON_FENCE),new ItemStack(Material.LOG),new ItemStack(Material.WORKBENCH),new ItemStack(Material.LOG)},new ItemStack[]{},Material.WORKBENCH,true).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_HELMET_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_CHESTPLATE_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_LEGGINGS_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL)},new PotionEffect[]{new PotionEffect(PotionEffectType.SPEED,300,2)}).register(true);
  new SlimefunArmorPiece(Categories.MAGIC_ARMOR,SlimefunItems.SLIME_BOOTS_STEEL,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.SLIME_BALL),null,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.SLIME_BALL),SlimefunItems.STEEL_PLATE,new ItemStack(Material.SLIME_BALL)},new PotionEffect[]{new PotionEffect(PotionEffectType.JUMP,300,5)}).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.BLADE_OF_VAMPIRES,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new MaterialData(Material.SKULL_ITEM,(byte)1).toItemStack(1),null,null,new MaterialData(Material.SKULL_ITEM,(byte)1).toItemStack(1),null,null,new ItemStack(Material.BLAZE_ROD),null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.DIGITAL_MINER,"String_Node_Str",new ItemStack[]{SlimefunItems.SOLAR_PANEL,new ItemStack(Material.CHEST),SlimefunItems.SOLAR_PANEL,new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.DISPENSER),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.HOPPER),new ItemStack(Material.IRON_BLOCK)},new ItemStack[0],Material.DISPENSER).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.DIGITAL_MINER,true)) {
          Chest chest=(Chest)b.getRelative(BlockFace.UP).getState();
          final Inventory inv=chest.getInventory();
          List<Location> ores=new ArrayList<Location>();
          for (int x=b.getX() - 4; x < b.getX() + 4; x++) {
            for (int z=b.getZ() - 4; z < b.getZ() + 4; z++) {
              for (int y=b.getY(); y > 0; y--) {
                if (b.getWorld().getBlockAt(x,y,z).getType().toString().endsWith("String_Node_Str")) {
                  ores.add(b.getWorld().getBlockAt(x,y,z).getLocation());
                }
              }
            }
          }
          if (!ores.isEmpty()) {
            final Material ore=ores.get(0).getBlock().getType();
            final ItemStack adding=new ItemStack(ore);
            ores.get(0).getBlock().setType(Material.AIR);
            ores.clear();
            if (InvUtils.fits(inv,adding)) {
              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                @Override public void run(){
                                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                                  p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                                  inv.addItem(adding);
                                }
                              }
,20L);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
              }
,20L);
            }
 else             Messages.local.sendTranslation(p,"String_Node_Str",true);
          }
 else           Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.ADVANCED_DIGITAL_MINER,"String_Node_Str",new ItemStack[]{SlimefunItems.SOLAR_PANEL,new ItemStack(Material.CHEST),SlimefunItems.SOLAR_PANEL,SlimefunItems.GOLD_24K_BLOCK,new ItemStack(Material.DISPENSER),SlimefunItems.GOLD_24K_BLOCK,SlimefunItems.GOLD_24K_BLOCK,new ItemStack(Material.HOPPER),SlimefunItems.GOLD_24K_BLOCK},new ItemStack[0],Material.DISPENSER).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.ADVANCED_DIGITAL_MINER,true)) {
          Chest chest=(Chest)b.getRelative(BlockFace.UP).getState();
          final Inventory inv=chest.getInventory();
          List<Location> ores=new ArrayList<Location>();
          for (int x=b.getX() - 6; x < b.getX() + 6; x++) {
            for (int z=b.getZ() - 6; z < b.getZ() + 6; z++) {
              for (int y=b.getY(); y > 0; y--) {
                if (b.getWorld().getBlockAt(x,y,z).getType().toString().endsWith("String_Node_Str")) {
                  ores.add(b.getWorld().getBlockAt(x,y,z).getLocation());
                }
              }
            }
          }
          if (!ores.isEmpty()) {
            final Material ore=ores.get(0).getBlock().getType();
            ItemStack drop=new ItemStack(ore);
            if (ore == Material.COAL_ORE)             drop=new CustomItem(new ItemStack(Material.COAL),4);
 else             if (ore == Material.IRON_ORE)             drop=new CustomItem(SlimefunItems.IRON_DUST,2);
 else             if (ore == Material.GOLD_ORE)             drop=new CustomItem(SlimefunItems.GOLD_DUST,2);
 else             if (ore == Material.REDSTONE_ORE)             drop=new CustomItem(new ItemStack(Material.REDSTONE),8);
 else             if (ore == Material.QUARTZ_ORE)             drop=new CustomItem(new ItemStack(Material.QUARTZ),4);
 else             if (ore == Material.LAPIS_ORE)             drop=new CustomItem(new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),12);
 else {
              for (              ItemStack drops : ores.get(0).getBlock().getDrops()) {
                if (!drops.getType().isBlock())                 drop=new CustomItem(drops,2);
              }
            }
            final ItemStack adding=drop;
            ores.get(0).getBlock().setType(Material.AIR);
            ores.clear();
            if (InvUtils.fits(inv,adding)) {
              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,ore);
                              p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                              inv.addItem(adding);
                            }
                          }
,20L);
                        }
                      }
,20L);
                    }
                  }
,20L);
                }
              }
,20L);
            }
 else             Messages.local.sendTranslation(p,"String_Node_Str",true);
          }
 else           Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.GOLD_24K_BLOCK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K,SlimefunItems.GOLD_24K}).register(true);
  new SlimefunGadget(Categories.MACHINES_1,SlimefunItems.COMPOSTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.WOOD_STEP),null,new ItemStack(Material.WOOD_STEP),new ItemStack(Material.WOOD_STEP),null,new ItemStack(Material.WOOD_STEP),new ItemStack(Material.WOOD_STEP),new ItemStack(Material.CAULDRON_ITEM),new ItemStack(Material.WOOD_STEP)},new ItemStack[]{new CustomItem(Material.LEAVES,0,8),new ItemStack(Material.DIRT),new CustomItem(Material.LEAVES_2,0,8),new ItemStack(Material.DIRT),new CustomItem(Material.SAPLING,0,8),new ItemStack(Material.DIRT),new ItemStack(Material.STONE,4),new ItemStack(Material.NETHERRACK),new ItemStack(Material.SAND,2),new ItemStack(Material.SOUL_SAND),new ItemStack(Material.WHEAT,4),new ItemStack(Material.NETHER_STALK)}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    final Player p,    ItemStack item){
      if (e.getClickedBlock() != null) {
        SlimefunItem machine=BlockStorage.check(e.getClickedBlock());
        if (machine != null && machine.getName().equals("String_Node_Str")) {
          final ItemStack input=p.getItemInHand();
          final Block b=e.getClickedBlock();
          for (          ItemStack convert : RecipeType.getRecipeInputs(machine)) {
            if (convert != null && SlimefunManager.isItemSimiliar(input,convert,true)) {
              ItemStack removing=input.clone();
              removing.setAmount(convert.getAmount());
              p.getInventory().removeItem(removing);
              final ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  if (input.getType().isBlock())                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                    @Override public void run(){
                      if (input.getType().isBlock())                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                        @Override public void run(){
                          if (input.getType().isBlock())                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                            @Override public void run(){
                              if (input.getType().isBlock())                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                @Override public void run(){
                                  if (input.getType().isBlock())                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                    @Override public void run(){
                                      if (input.getType().isBlock())                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                        @Override public void run(){
                                          if (input.getType().isBlock())                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                          Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                            @Override public void run(){
                                              if (input.getType().isBlock())                                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                               b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                                @Override public void run(){
                                                  if (input.getType().isBlock())                                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                                   b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                                  Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                                    @Override public void run(){
                                                      if (input.getType().isBlock())                                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                                       b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                                      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                                        @Override public void run(){
                                                          if (input.getType().isBlock())                                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,input.getType());
 else                                                           b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                                                          p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                                                          b.getWorld().dropItemNaturally(b.getRelative(BlockFace.UP).getLocation(),adding);
                                                        }
                                                      }
,30L);
                                                    }
                                                  }
,30L);
                                                }
                                              }
,30L);
                                            }
                                          }
,30L);
                                        }
                                      }
,30L);
                                    }
                                  }
,30L);
                                }
                              }
,30L);
                            }
                          }
,30L);
                        }
                      }
,30L);
                    }
                  }
,30L);
                }
              }
,30L);
              return true;
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
          return true;
        }
      }
      return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.FARMER_SHOES,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.HAY_BLOCK),null,new ItemStack(Material.HAY_BLOCK),new ItemStack(Material.HAY_BLOCK),null,new ItemStack(Material.HAY_BLOCK)}).register(true);
  @SuppressWarnings("String_Node_Str") final String[] explosiveblacklist=Slimefun.getItemValue("String_Node_Str","String_Node_Str") != null ? ((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).toArray(new String[((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).size()]) : new String[]{"String_Node_Str"};
  new SlimefunItem(Categories.TOOLS,SlimefunItems.EXPLOSIVE_PICKAXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.TNT),SlimefunItems.SYNTHETIC_DIAMOND,new ItemStack(Material.TNT),null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null},new String[]{"String_Node_Str"},new Object[]{Arrays.asList("String_Node_Str")}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.EXPLOSIVE_PICKAXE,true)) {
        e.getBlock().getWorld().createExplosion(e.getBlock().getLocation(),0.0F);
        e.getBlock().getWorld().playSound(e.getBlock().getLocation(),Sound.ENTITY_GENERIC_EXPLODE,1F,1F);
        for (int x=-1; x <= 1; x++) {
          for (int y=-1; y <= 1; y++) {
            for (int z=-1; z <= 1; z++) {
              Block b=e.getBlock().getRelative(x,y,z);
              if (b.getType() != Material.AIR && !StringUtils.equals(b.getType().toString(),explosiveblacklist)) {
                if (CSCoreLib.getLib().getProtectionManager().canBuild(e.getPlayer().getUniqueId(),b)) {
                  if (SlimefunStartup.instance.isCoreProtectInstalled())                   SlimefunStartup.instance.getCoreProtectAPI().logRemoval(e.getPlayer().getName(),b.getLocation(),b.getType(),b.getData());
                  b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,b.getType());
                  SlimefunItem sfItem=BlockStorage.check(b);
                  boolean allow=true;
                  if (sfItem != null && !(sfItem instanceof HandledBlock)) {
                    if (SlimefunItem.blockhandler.containsKey(sfItem.getName())) {
                      allow=SlimefunItem.blockhandler.get(sfItem.getName()).onBreak(e.getPlayer(),e.getBlock(),sfItem,UnregisterReason.PLAYER_BREAK);
                    }
                    if (allow) {
                      drops.add(BlockStorage.retrieve(e.getBlock()));
                    }
                  }
 else                   if (b.getType().equals(Material.SKULL)) {
                    b.breakNaturally();
                  }
 else                   if (b.getType().name().endsWith("String_Node_Str")) {
                    b.breakNaturally();
                  }
 else {
                    for (                    ItemStack drop : b.getDrops()) {
                      b.getWorld().dropItemNaturally(b.getLocation(),(b.getType().toString().endsWith("String_Node_Str") && !b.getType().equals(Material.IRON_ORE) && !b.getType().equals(Material.GOLD_ORE)) ? new CustomItem(drop,fortune) : drop);
                    }
                    b.setType(Material.AIR);
                  }
                }
              }
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.AUTOMATED_PANNING_MACHINE,"String_Node_Str",new ItemStack[]{null,null,null,null,new ItemStack(Material.TRAP_DOOR),null,null,new ItemStack(Material.CAULDRON_ITEM),null},new ItemStack[]{new ItemStack(Material.GRAVEL),new ItemStack(Material.FLINT),new ItemStack(Material.GRAVEL),new ItemStack(Material.CLAY_BALL),new ItemStack(Material.GRAVEL),SlimefunItems.SIFTED_ORE},Material.TRAP_DOOR).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    final Player p,    MultiBlock mb,    final Block b){
      if (mb.isMultiBlock(SlimefunItem.getByName("String_Node_Str"))) {
        final ItemStack input=p.getItemInHand();
        ItemStack output=null;
        if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))         output=SlimefunItems.SIFTED_ORE;
 else         if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))         output=new ItemStack(Material.CLAY_BALL);
 else         if (SlimefunStartup.chance(100,(Integer)Slimefun.getItemValue("String_Node_Str","String_Node_Str")))         output=new ItemStack(Material.FLINT);
        final ItemStack drop=output;
        if (input != null) {
          if (input.getType() == Material.GRAVEL) {
            PlayerInventory.consumeItemInHand(p);
            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
              @Override public void run(){
                b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                  @Override public void run(){
                    b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                    Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                      @Override public void run(){
                        b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                        Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                          @Override public void run(){
                            b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                              @Override public void run(){
                                b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                  @Override public void run(){
                                    b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(),Effect.STEP_SOUND,Material.GRAVEL);
                                    if (drop != null)                                     b.getWorld().dropItemNaturally(b.getLocation(),drop);
                                    p.getWorld().playSound(p.getLocation(),Sound.ENTITY_ARROW_HIT_PLAYER,1F,1F);
                                  }
                                }
,30L);
                              }
                            }
,30L);
                          }
                        }
,30L);
                      }
                    }
,30L);
                  }
                }
,30L);
              }
            }
,30L);
            return true;
          }
        }
        Messages.local.sendTranslation(p,"String_Node_Str",true);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC_ARMOR,SlimefunItems.BOOTS_OF_THE_STOMPER,"String_Node_Str",RecipeType.ARMOR_FORGE,new ItemStack[]{null,null,null,new ItemStack(Material.WOOL),null,new ItemStack(Material.WOOL),new ItemStack(Material.PISTON_BASE),null,new ItemStack(Material.PISTON_BASE)}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.PICKAXE_OF_THE_SEEKER,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.COMPASS),SlimefunItems.SYNTHETIC_DIAMOND,new ItemStack(Material.COMPASS),null,SlimefunItems.FERROSILICON,null,null,SlimefunItems.FERROSILICON,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.PICKAXE_OF_THE_SEEKER,true)) {
        Block closest=null;
        for (int x=-4; x <= 4; x++) {
          for (int y=-4; y <= 4; y++) {
            for (int z=-4; z <= 4; z++) {
              if (p.getLocation().getBlock().getRelative(x,y,z).getType().toString().endsWith("String_Node_Str")) {
                if (closest == null)                 closest=p.getLocation().getBlock().getRelative(x,y,z);
 else                 if (p.getLocation().distance(closest.getLocation()) < p.getLocation().distance(p.getLocation().getBlock().getRelative(x,y,z).getLocation()))                 closest=p.getLocation().getBlock().getRelative(x,y,z);
              }
            }
          }
        }
        if (closest == null)         Messages.local.sendTranslation(p,"String_Node_Str",true);
 else {
          double l=closest.getX() + 0.5 - p.getLocation().getX();
          double w=closest.getZ() + 0.5 - p.getLocation().getZ();
          float yaw, pitch;
          double c=Math.sqrt(l * l + w * w);
          double alpha1=-Math.asin(l / c) / Math.PI * 180;
          double alpha2=Math.acos(w / c) / Math.PI * 180;
          if (alpha2 > 90)           yaw=(float)(180 - alpha1);
 else           yaw=(float)alpha1;
          pitch=(float)((-Math.atan((closest.getY() - 0.5 - p.getLocation().getY()) / Math.sqrt(l * l + w * w))) * 180F / Math.PI);
          p.teleport(new Location(p.getWorld(),p.getLocation().getX(),p.getLocation().getY(),p.getLocation().getZ(),yaw,pitch));
        }
        if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
          if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1)))           PlayerInventory.damageItemInHand(e.getPlayer());
        }
 else         PlayerInventory.damageItemInHand(e.getPlayer());
        PlayerInventory.update(e.getPlayer());
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunBackpack(9,Categories.PORTABLE,SlimefunItems.BACKPACK_SMALL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),null,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_6K,new ItemStack(Material.CHEST),SlimefunItems.GOLD_6K,new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER)}).register(true);
  new SlimefunBackpack(18,Categories.PORTABLE,SlimefunItems.BACKPACK_MEDIUM,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),null,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_10K,SlimefunItems.BACKPACK_SMALL,SlimefunItems.GOLD_10K,new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER)}).register(true);
  new SlimefunBackpack(27,Categories.PORTABLE,SlimefunItems.BACKPACK_LARGE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.LEATHER),null,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_14K,SlimefunItems.BACKPACK_MEDIUM,SlimefunItems.GOLD_14K,new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER),new ItemStack(Material.LEATHER)}).register(true);
  new SlimefunBackpack(36,Categories.PORTABLE,SlimefunItems.WOVEN_BACKPACK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,null,SlimefunItems.CLOTH,SlimefunItems.GOLD_16K,SlimefunItems.BACKPACK_LARGE,SlimefunItems.GOLD_16K,SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH}).register(true);
  new SlimefunGadget(Categories.MACHINES_1,SlimefunItems.CRUCIBLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.HARD_CLAY),null,new ItemStack(Material.HARD_CLAY),new ItemStack(Material.HARD_CLAY),null,new ItemStack(Material.HARD_CLAY),new ItemStack(Material.HARD_CLAY),new ItemStack(Material.FLINT_AND_STEEL),new ItemStack(Material.HARD_CLAY)},new ItemStack[]{new ItemStack(Material.COBBLESTONE,16),new ItemStack(Material.LAVA_BUCKET),new ItemStack(Material.LEAVES,16),new ItemStack(Material.WATER_BUCKET),new ItemStack(Material.HARD_CLAY,12),new ItemStack(Material.LAVA_BUCKET)}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    final Player p,    ItemStack item){
      if (e.getClickedBlock() != null) {
        SlimefunItem machine=BlockStorage.check(e.getClickedBlock());
        if (machine != null && machine.getName().equals("String_Node_Str")) {
          final ItemStack input=p.getItemInHand();
          final Block block=e.getClickedBlock().getRelative(BlockFace.UP);
          for (          ItemStack convert : RecipeType.getRecipeInputs(machine)) {
            if (input != null) {
              if (SlimefunManager.isItemSimiliar(input,convert,true)) {
                e.setCancelled(true);
                ItemStack removing=input.clone();
                removing.setAmount(convert.getAmount());
                p.getInventory().removeItem(removing);
                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                  @Override public void run(){
                    if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                      block.setType(Material.LAVA);
                      block.setData((byte)7);
                      block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                    }
 else                     if (input.getType() == Material.LEAVES) {
                      block.setType(Material.WATER);
                      block.setData((byte)7);
                      block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                    }
                    Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                      @Override public void run(){
                        if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                          block.setType(Material.LAVA);
                          block.setData((byte)6);
                          block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                        }
 else                         if (input.getType() == Material.LEAVES) {
                          block.setType(Material.WATER);
                          block.setData((byte)6);
                          block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                        }
                        Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                          @Override public void run(){
                            if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                              block.setType(Material.LAVA);
                              block.setData((byte)5);
                              block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                            }
 else                             if (input.getType() == Material.LEAVES) {
                              block.setType(Material.WATER);
                              block.setData((byte)5);
                              block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                            }
                            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                              @Override public void run(){
                                if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                  block.setType(Material.LAVA);
                                  block.setData((byte)4);
                                  block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                }
 else                                 if (input.getType() == Material.LEAVES) {
                                  block.setType(Material.WATER);
                                  block.setData((byte)4);
                                  block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                }
                                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                  @Override public void run(){
                                    if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                      block.setType(Material.LAVA);
                                      block.setData((byte)3);
                                      block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                    }
 else                                     if (input.getType() == Material.LEAVES) {
                                      block.setType(Material.WATER);
                                      block.setData((byte)3);
                                      block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                    }
                                    Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                      @Override public void run(){
                                        if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                          block.setType(Material.LAVA);
                                          block.setData((byte)2);
                                          block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                        }
 else                                         if (input.getType() == Material.LEAVES) {
                                          block.setType(Material.WATER);
                                          block.setData((byte)2);
                                          block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                        }
                                        Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                          @Override public void run(){
                                            if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                              block.setType(Material.LAVA);
                                              block.setData((byte)1);
                                              block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                            }
 else                                             if (input.getType() == Material.LEAVES) {
                                              block.setType(Material.WATER);
                                              block.setData((byte)1);
                                              block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                            }
                                            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                                              @Override public void run(){
                                                if (input.getType() == Material.COBBLESTONE || input.getType() == Material.HARD_CLAY) {
                                                  block.setType(Material.STATIONARY_LAVA);
                                                  block.setData((byte)0);
                                                  block.getWorld().playSound(block.getLocation(),Sound.BLOCK_LAVA_POP,1F,1F);
                                                }
 else                                                 if (input.getType() == Material.LEAVES) {
                                                  block.setType(Material.WATER);
                                                  block.setData((byte)0);
                                                  block.getWorld().playSound(block.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                                                }
                                              }
                                            }
,50L);
                                          }
                                        }
,50L);
                                      }
                                    }
,50L);
                                  }
                                }
,50L);
                              }
                            }
,50L);
                          }
                        }
,50L);
                      }
                    }
,50L);
                  }
                }
,50L);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
          return true;
        }
      }
      return false;
    }
  }
);
  new SlimefunBackpack(45,Categories.PORTABLE,SlimefunItems.GILDED_BACKPACK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_22K,null,SlimefunItems.GOLD_22K,new ItemStack(Material.LEATHER),SlimefunItems.WOVEN_BACKPACK,new ItemStack(Material.LEATHER),SlimefunItems.GOLD_22K,null,SlimefunItems.GOLD_22K}).register(true);
  new Alloy(Categories.TECH_MISC,SlimefunItems.MAGNET,"String_Node_Str",new ItemStack[]{SlimefunItems.NICKEL_INGOT,SlimefunItems.ALUMINUM_DUST,SlimefunItems.IRON_DUST,SlimefunItems.COBALT_INGOT,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFUSED_MAGNET,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.ENDER_LUMP_2,SlimefunItems.MAGNET,SlimefunItems.ENDER_LUMP_2,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3}).register(true);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.COBALT_PICKAXE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COBALT_INGOT,SlimefunItems.COBALT_INGOT,SlimefunItems.COBALT_INGOT,null,SlimefunItems.NICKEL_INGOT,null,null,SlimefunItems.NICKEL_INGOT,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.NECROTIC_SKULL,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3,null,new MaterialData(Material.SKULL_ITEM,(byte)1).toItemStack(1),null,SlimefunItems.MAGIC_LUMP_3,null,SlimefunItems.MAGIC_LUMP_3}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ESSENCE_OF_AFTERLIFE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_AIR,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_EARTH,SlimefunItems.NECROTIC_SKULL,SlimefunItems.RUNE_FIRE,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_WATER,SlimefunItems.ENDER_LUMP_3}).register(true);
  new SoulboundBackpack(36,Categories.PORTABLE,SlimefunItems.BOUND_BACKPACK,"String_Node_Str",new ItemStack[]{SlimefunItems.ENDER_LUMP_2,null,SlimefunItems.ENDER_LUMP_2,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.GILDED_BACKPACK,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.ENDER_LUMP_2,null,SlimefunItems.ENDER_LUMP_2}).register(true);
  new JetBoots(SlimefunItems.DURALUMIN_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.35).register(true);
  new JetBoots(SlimefunItems.SOLDER_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.SOLDER_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.SOLDER_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.4).register(true);
  new JetBoots(SlimefunItems.BILLON_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.BILLON_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BILLON_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.45).register(true);
  new JetBoots(SlimefunItems.STEEL_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.5).register(true);
  new JetBoots(SlimefunItems.DAMASCUS_STEEL_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.55).register(true);
  new JetBoots(SlimefunItems.REINFORCED_ALLOY_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.STEEL_THRUSTER,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.6).register(true);
  new JetBoots(SlimefunItems.CARBONADO_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.CARBONADO,SlimefunItems.POWER_CRYSTAL,SlimefunItems.CARBONADO,SlimefunItems.STEEL_THRUSTER,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.7).register(true);
  new JetBoots(SlimefunItems.ARMORED_JETBOOTS,"String_Node_Str",new ItemStack[]{null,null,null,SlimefunItems.STEEL_PLATE,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_PLATE,SlimefunItems.STEEL_THRUSTER,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_THRUSTER},0.45).register(true);
  new SlimefunItem(Categories.WEAPONS,SlimefunItems.SEISMIC_AXE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.HARDENED_METAL_INGOT,null,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.STAFF_ELEMENTAL,null,null,SlimefunItems.STAFF_ELEMENTAL,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.SEISMIC_AXE,true)) {
        List<Block> blocks=p.getLineOfSight((HashSet<Material>)null,10);
        for (int i=0; i < blocks.size(); i++) {
          Block b=blocks.get(i);
          Location ground=b.getLocation();
          if (b.getType() == null || b.getType() == Material.AIR) {
            for (int y=ground.getBlockY(); y > 0; y--) {
              if (b.getWorld().getBlockAt(b.getX(),y,b.getZ()) != null) {
                if (b.getWorld().getBlockAt(b.getX(),y,b.getZ()).getType() != null) {
                  if (b.getWorld().getBlockAt(b.getX(),y,b.getZ()).getType() != Material.AIR) {
                    ground=new Location(b.getWorld(),b.getX(),y,b.getZ());
                    break;
                  }
                }
              }
            }
          }
          b.getWorld().playEffect(ground,Effect.STEP_SOUND,ground.getBlock().getType());
          if (ground.getBlock().getRelative(BlockFace.UP).getType() == null || ground.getBlock().getRelative(BlockFace.UP).getType() == Material.AIR) {
            FallingBlock block=ground.getWorld().spawnFallingBlock(ground.getBlock().getRelative(BlockFace.UP).getLocation(),ground.getBlock().getType(),ground.getBlock().getData());
            block.setDropItem(false);
            block.setVelocity(new Vector(0,0.4 + i * 0.01,0));
            Variables.blocks.add(block.getUniqueId());
          }
          for (          Entity n : ground.getChunk().getEntities()) {
            if (n instanceof LivingEntity) {
              if (n.getLocation().distance(ground) <= 2.0D && n.getUniqueId() != p.getUniqueId()) {
                Vector vector=n.getLocation().toVector().subtract(p.getLocation().toVector()).normalize().multiply(1.4);
                vector.setY(0.9);
                n.setVelocity(vector);
                if (p.getWorld().getPVP()) {
                  EntityDamageByEntityEvent event=new EntityDamageByEntityEvent(p,n,DamageCause.ENTITY_ATTACK,6D);
                  Bukkit.getPluginManager().callEvent(event);
                  if (!event.isCancelled())                   ((LivingEntity)n).damage(6D);
                }
              }
            }
          }
        }
        for (int i=0; i < 4; i++) {
          if (e.getPlayer().getItemInHand() != null) {
            if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
              if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1)))               PlayerInventory.damageItemInHand(e.getPlayer());
            }
 else             PlayerInventory.damageItemInHand(e.getPlayer());
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TOOLS,SlimefunItems.PICKAXE_OF_VEIN_MINING,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.EMERALD_ORE),SlimefunItems.SYNTHETIC_DIAMOND,new ItemStack(Material.EMERALD_ORE),null,SlimefunItems.GILDED_IRON,null,null,SlimefunItems.GILDED_IRON,null}).register(true,new BlockBreakHandler(){
    @Override public boolean onBlockBreak(    BlockBreakEvent e,    ItemStack item,    int fortune,    List<ItemStack> drops){
      if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(),SlimefunItems.PICKAXE_OF_VEIN_MINING,true)) {
        if (e.getBlock().getType().toString().endsWith("String_Node_Str")) {
          List<Location> blocks=new ArrayList<Location>();
          Vein.calculate(e.getBlock().getLocation(),e.getBlock().getLocation(),blocks,16);
          for (          Location block : blocks) {
            Block b=block.getBlock();
            b.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,b.getType());
            for (            ItemStack drop : b.getDrops()) {
              b.getWorld().dropItemNaturally(b.getLocation(),drop.getType().isBlock() ? drop : new CustomItem(drop,fortune));
            }
            b.setType(Material.AIR);
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SoulboundItem(Categories.WEAPONS,SlimefunItems.SOULBOUND_SWORD,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_SWORD),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.WEAPONS,SlimefunItems.SOULBOUND_BOW,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.BOW),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.TOOLS,SlimefunItems.SOULBOUND_PICKAXE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_PICKAXE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.TOOLS,SlimefunItems.SOULBOUND_AXE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_AXE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new ExcludedSoulboundTool(Categories.TOOLS,SlimefunItems.SOULBOUND_SHOVEL,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_SPADE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new ExcludedSoulboundTool(Categories.TOOLS,SlimefunItems.SOULBOUND_HOE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_HOE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_HELMET,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_HELMET),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_CHESTPLATE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_CHESTPLATE),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_LEGGINGS,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_LEGGINGS),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SoulboundItem(Categories.MAGIC_ARMOR,SlimefunItems.SOULBOUND_BOOTS,"String_Node_Str",new ItemStack[]{null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null,null,new ItemStack(Material.DIAMOND_BOOTS),null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new SlimefunMachine(Categories.MACHINES_1,SlimefunItems.JUICER,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.GLASS),null,null,new ItemStack(Material.NETHER_FENCE),null,null,new CustomItem(Material.DISPENSER,"String_Node_Str",0),null},new ItemStack[]{new ItemStack(Material.APPLE),SlimefunItems.APPLE_JUICE,new ItemStack(Material.MELON),SlimefunItems.MELON_JUICE,new ItemStack(Material.CARROT_ITEM),SlimefunItems.CARROT_JUICE,new ItemStack(Material.PUMPKIN),SlimefunItems.PUMPKIN_JUICE},Material.NETHER_FENCE).register(true,new MultiBlockInteractionHandler(){
    @Override public boolean onInteract(    Player p,    MultiBlock mb,    Block b){
      SlimefunMachine machine=(SlimefunMachine)SlimefunItem.getByName("String_Node_Str");
      if (mb.isMultiBlock(machine)) {
        if (Slimefun.hasUnlocked(p,SlimefunItems.JUICER,true)) {
          Dispenser disp=(Dispenser)b.getRelative(BlockFace.DOWN).getState();
          Inventory inv=disp.getInventory();
          for (          ItemStack current : inv.getContents()) {
            for (            ItemStack convert : RecipeType.getRecipeInputs(machine)) {
              if (convert != null && SlimefunManager.isItemSimiliar(current,convert,true)) {
                ItemStack adding=RecipeType.getRecipeOutput(machine,convert);
                if (InvUtils.fits(inv,adding)) {
                  ItemStack removing=current.clone();
                  removing.setAmount(1);
                  inv.removeItem(removing);
                  inv.addItem(adding);
                  p.getWorld().playSound(b.getLocation(),Sound.ENTITY_PLAYER_SPLASH,1F,1F);
                  p.getWorld().playEffect(b.getLocation(),Effect.STEP_SOUND,Material.HAY_BLOCK);
                }
 else                 Messages.local.sendTranslation(p,"String_Node_Str",true);
                return true;
              }
            }
          }
          Messages.local.sendTranslation(p,"String_Node_Str",true);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new Juice(Categories.FOOD,SlimefunItems.APPLE_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.APPLE),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.CARROT_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.CARROT_ITEM),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.MELON_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.MELON),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.PUMPKIN_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{null,null,null,null,new ItemStack(Material.PUMPKIN),null,null,null,null}).register(true);
  new Juice(Categories.FOOD,SlimefunItems.GOLDE_APPLE_JUICE,"String_Node_Str",RecipeType.JUICER,new ItemStack[]{new ItemStack(Material.GOLDEN_APPLE),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.BROKEN_SPAWNER,"String_Node_Str",new RecipeType(SlimefunItems.PICKAXE_OF_CONTAINMENT),new ItemStack[]{null,null,null,null,new ItemStack(Material.MOB_SPAWNER),null,null,null,null}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.REPAIRED_SPAWNER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.RUNE_ENDER,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.ESSENCE_OF_AFTERLIFE,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.BROKEN_SPAWNER,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.ESSENCE_OF_AFTERLIFE,new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0),SlimefunItems.RUNE_ENDER}).register(true,new BlockPlaceHandler(){
    @Override public boolean onBlockPlace(    BlockPlaceEvent e,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.REPAIRED_SPAWNER,false)) {
        EntityType type=null;
        for (        String line : item.getItemMeta().getLore()) {
          if (ChatColor.stripColor(line).startsWith("String_Node_Str"))           type=EntityType.valueOf(ChatColor.stripColor(line).replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").toUpperCase());
        }
        if (type != null) {
          ((CreatureSpawner)e.getBlock().getState()).setSpawnedType(type);
          e.getBlock().getState().update(true,false);
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.MILK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.MILK_BUCKET),new ItemStack(Material.GLASS_BOTTLE),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.MILK,4)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHOCOLATE_MILK,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MILK,new CustomItem(Material.INK_SACK,3),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.CHOCOLATE_MILK,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.EGG_NOG,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.MILK,new ItemStack(Material.EGG),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.EGG_NOG,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.APPLE_CIDER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.APPLE_JUICE,new ItemStack(Material.SUGAR),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.APPLE_CIDER,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHRISTMAS_COOKIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.COOKIE),new ItemStack(Material.SUGAR),new CustomItem(Material.INK_SACK,10),null,null,null,null,null,null},new CustomItem(SlimefunItems.CHRISTMAS_COOKIE,16)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.FRUIT_CAKE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.EGG),new ItemStack(Material.APPLE),new ItemStack(Material.MELON),new ItemStack(Material.SUGAR),null,null,null,null,null},new CustomItem(SlimefunItems.FRUIT_CAKE,4)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.APPLE_PIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.APPLE),new ItemStack(Material.EGG),null,null,null,null,null,null},new CustomItem(SlimefunItems.APPLE_PIE,2)).register(true);
  new EnhancedFurnace(1,1,1,SlimefunItems.ENHANCED_FURNACE,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,new ItemStack(Material.FURNACE),SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(2,1,1,SlimefunItems.ENHANCED_FURNACE_2,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(2,2,1,SlimefunItems.ENHANCED_FURNACE_3,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_2,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(3,2,1,SlimefunItems.ENHANCED_FURNACE_4,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_3,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(3,2,2,SlimefunItems.ENHANCED_FURNACE_5,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_4,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(3,3,2,SlimefunItems.ENHANCED_FURNACE_6,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_5,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(4,3,2,SlimefunItems.ENHANCED_FURNACE_7,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_6,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(4,4,2,SlimefunItems.ENHANCED_FURNACE_8,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_7,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(5,4,2,SlimefunItems.ENHANCED_FURNACE_9,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_8,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(5,5,2,SlimefunItems.ENHANCED_FURNACE_10,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_9,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(5,5,3,SlimefunItems.ENHANCED_FURNACE_11,"String_Node_Str",new ItemStack[]{null,SlimefunItems.BASIC_CIRCUIT_BOARD,null,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_10,SlimefunItems.HEATING_COIL,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new EnhancedFurnace(10,10,3,SlimefunItems.REINFORCED_FURNACE,"String_Node_Str",new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.ENHANCED_FURNACE_11,SlimefunItems.HEATING_COIL,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT}).register(true);
  new EnhancedFurnace(20,10,3,SlimefunItems.CARBONADO_EDGED_FURNACE,"String_Node_Str",new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.CARBONADO,SlimefunItems.HEATING_COIL,SlimefunItems.REINFORCED_FURNACE,SlimefunItems.HEATING_COIL,SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.ELECTRO_MAGNET,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.NICKEL_INGOT,SlimefunItems.MAGNET,SlimefunItems.COBALT_INGOT,null,SlimefunItems.BATTERY,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.ELECTRIC_MOTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,null,SlimefunItems.ELECTRO_MAGNET,null,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.HEATING_COIL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT}).register(true);
  @SuppressWarnings("String_Node_Str") final String[] blockPlacerBlacklist=Slimefun.getItemValue("String_Node_Str","String_Node_Str") != null ? ((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).toArray(new String[((List<String>)Slimefun.getItemValue("String_Node_Str","String_Node_Str")).size()]) : new String[]{"String_Node_Str"};
  new SlimefunItem(Categories.MACHINES_1,SlimefunItems.BLOCK_PLACER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_4K,new ItemStack(Material.PISTON_BASE),SlimefunItems.GOLD_4K,new ItemStack(Material.IRON_INGOT),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.IRON_INGOT),SlimefunItems.GOLD_4K,new ItemStack(Material.PISTON_BASE),SlimefunItems.GOLD_4K},new String[]{"String_Node_Str"},new Object[]{Arrays.asList("String_Node_Str")}).register(true,new AutonomousMachineHandler(){
    @Override public boolean onBlockDispense(    final BlockDispenseEvent e,    Block dispenser,    final Dispenser d,    Block block,    Block chest,    SlimefunItem machine){
      if (machine.getName().equalsIgnoreCase("String_Node_Str")) {
        e.setCancelled(true);
        if ((block.getType() == null || block.getType() == Material.AIR) && e.getItem().getType().isBlock()) {
          for (          String blockType : blockPlacerBlacklist) {
            if (e.getItem().getType().toString().equals(blockType)) {
              return false;
            }
          }
          SlimefunItem sfItem=SlimefunItem.getByItem(e.getItem());
          if (sfItem != null) {
            if (!SlimefunItem.blockhandler.containsKey(sfItem.getName())) {
              block.setType(e.getItem().getType());
              block.setData(e.getItem().getData().getData());
              BlockStorage.store(block,sfItem.getName());
              block.getWorld().playEffect(block.getLocation(),Effect.STEP_SOUND,e.getItem().getType());
              if (d.getInventory().containsAtLeast(e.getItem(),2))               d.getInventory().removeItem(new CustomItem(e.getItem(),1));
 else {
                Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                  @Override public void run(){
                    d.getInventory().removeItem(e.getItem());
                  }
                }
,2L);
              }
            }
          }
 else {
            block.setType(e.getItem().getType());
            block.setData(e.getItem().getData().getData());
            block.getWorld().playEffect(block.getLocation(),Effect.STEP_SOUND,e.getItem().getType());
            if (d.getInventory().containsAtLeast(e.getItem(),2))             d.getInventory().removeItem(new CustomItem(e.getItem(),1));
 else {
              Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
                @Override public void run(){
                  d.getInventory().removeItem(e.getItem());
                }
              }
,2L);
            }
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.HOT_CHOCOLATE,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{SlimefunItems.CHOCOLATE_MILK,null,null,null,null,null,null,null,null},SlimefunItems.HOT_CHOCOLATE).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHRISTMAS_CAKE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.EGG),new ItemStack(Material.SUGAR),SlimefunItems.WHEAT_FLOUR,new ItemStack(Material.MILK_BUCKET),null,null,null,null,null},new CustomItem(SlimefunItems.FRUIT_CAKE,4)).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGICAL_BOOK_COVER,SlimefunItems.ENDER_LUMP_3,SlimefunItems.MAGIC_EYE_OF_ENDER,SlimefunItems.ENDER_LUMP_3,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION,true)) {
        for (        Entity n : p.getNearbyEntities(10.0,10.0,10.0)) {
          if (n instanceof LivingEntity && !(n instanceof ArmorStand) && n.getUniqueId() != p.getUniqueId()) {
            float yaw=n.getLocation().getYaw() + 180.0F;
            if (yaw > 360.0F)             yaw=yaw - 360.0F;
            n.teleport(new Location(n.getWorld(),n.getLocation().getX(),n.getLocation().getY(),n.getLocation().getZ(),yaw,n.getLocation().getPitch()));
          }
        }
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CARAMEL,"String_Node_Str",RecipeType.SMELTERY,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.SUGAR),null,null,null,null,null,null,null},new CustomItem(SlimefunItems.CARAMEL,4)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CARAMEL_APPLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.SUGAR),null,null,new ItemStack(Material.APPLE),null,null,new ItemStack(Material.STICK),null},new CustomItem(SlimefunItems.CARAMEL_APPLE,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.CHOCOLATE_APPLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new CustomItem(Material.INK_SACK,3),null,null,new ItemStack(Material.APPLE),null,null,new ItemStack(Material.STICK),null},new CustomItem(SlimefunItems.CARAMEL_APPLE,2)).register(true);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.PRESENT,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.NAME_TAG),null,new CustomItem(new MaterialData(Material.WOOL,(byte)14),1),new CustomItem(new MaterialData(Material.WOOL,(byte)13),1),new CustomItem(new MaterialData(Material.WOOL,(byte)14),1),new CustomItem(new MaterialData(Material.WOOL,(byte)14),1),new CustomItem(new MaterialData(Material.WOOL,(byte)13),1),new CustomItem(new MaterialData(Material.WOOL,(byte)14),1)}).register(true);
  new SlimefunBow(SlimefunItems.EXPLOSIVE_BOW,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.STICK),new ItemStack(Material.SULPHUR),SlimefunItems.STAFF_FIRE,null,SlimefunItems.SULFATE,null,new ItemStack(Material.STICK),new ItemStack(Material.SULPHUR)}).register(true,new BowShootHandler(){
    @Override public boolean onHit(    EntityDamageByEntityEvent e,    LivingEntity n){
      if (SlimefunManager.isItemSimiliar(Variables.arrows.get(e.getDamager().getUniqueId()),SlimefunItems.EXPLOSIVE_BOW,true)) {
        Vector vector=n.getVelocity();
        vector.setY(0.6);
        n.setVelocity(vector);
        n.getWorld().createExplosion(n.getLocation(),0F);
        n.getWorld().playSound(n.getLocation(),Sound.ENTITY_GENERIC_EXPLODE,1F,1F);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunBow(SlimefunItems.ICY_BOW,"String_Node_Str",new ItemStack[]{null,new ItemStack(Material.STICK),new ItemStack(Material.ICE),SlimefunItems.STAFF_WATER,null,new ItemStack(Material.PACKED_ICE),null,new ItemStack(Material.STICK),new ItemStack(Material.ICE)}).register(true,new BowShootHandler(){
    @Override public boolean onHit(    EntityDamageByEntityEvent e,    LivingEntity n){
      if (SlimefunManager.isItemSimiliar(Variables.arrows.get(e.getDamager().getUniqueId()),SlimefunItems.ICY_BOW,true)) {
        n.getWorld().playEffect(n.getLocation(),Effect.STEP_SOUND,Material.ICE);
        n.getWorld().playEffect(n.getEyeLocation(),Effect.STEP_SOUND,Material.ICE);
        n.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,20 * 2,10));
        n.addPotionEffect(new PotionEffect(PotionEffectType.JUMP,20 * 2,-10));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.TOME_OF_KNOWLEDGE_SHARING,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.FEATHER),null,new ItemStack(Material.INK_SACK),SlimefunItems.MAGICAL_BOOK_COVER,new ItemStack(Material.GLASS_BOTTLE),null,new ItemStack(Material.BOOK_AND_QUILL),null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.TOME_OF_KNOWLEDGE_SHARING,true)) {
        List<String> lore=item.getItemMeta().getLore();
        lore.set(0,ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + p.getName()));
        lore.set(1,ChatColor.BLACK + "String_Node_Str" + p.getUniqueId());
        ItemMeta im=item.getItemMeta();
        im.setLore(lore);
        item.setItemMeta(im);
        p.setItemInHand(item);
        p.getWorld().playSound(p.getLocation(),Sound.ENTITY_PLAYER_LEVELUP,1F,1F);
        return true;
      }
 else       if (SlimefunManager.isItemSimiliar(item,SlimefunItems.TOME_OF_KNOWLEDGE_SHARING,false)) {
        List<Research> researches=Research.getResearches(ChatColor.stripColor(item.getItemMeta().getLore().get(1)));
        for (        Research research : researches) {
          research.unlock(p,true);
        }
        PlayerInventory.consumeItemInHand(p);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.FLASK_OF_KNOWLEDGE,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,null,null,SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.THIN_GLASS),SlimefunItems.MAGIC_LUMP_2,null,SlimefunItems.MAGIC_LUMP_2,null},new CustomItem(SlimefunItems.FLASK_OF_KNOWLEDGE,8)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.FLASK_OF_KNOWLEDGE,true) && p.getLevel() >= 1) {
        p.setLevel(p.getLevel() - 1);
        p.getInventory().addItem(new CustomItem(Material.EXP_BOTTLE,"String_Node_Str",0));
        PlayerInventory.consumeItemInHand(p);
        PlayerInventory.update(p);
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.REINFORCED_PLATE,"String_Node_Str",RecipeType.COMPRESSOR,new ItemStack[]{new CustomItem(SlimefunItems.REINFORCED_ALLOY_INGOT,8),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.HARDENED_GLASS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),SlimefunItems.REINFORCED_PLATE,new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS),new ItemStack(Material.GLASS)},new CustomItem(SlimefunItems.HARDENED_GLASS,16)).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.SOLAR_ARRAY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS}).register(true);
  new SlimefunItem(Categories.EASTER,SlimefunItems.CARROT_PIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.CARROT_ITEM),new ItemStack(Material.EGG),null,null,null,null,null,null},new CustomItem(SlimefunItems.CARROT_PIE,2)).register(true);
  new SlimefunItem(Categories.EASTER,SlimefunItems.APPLE_PIE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.SUGAR),new ItemStack(Material.APPLE),new ItemStack(Material.EGG),null,null,null,null,null,null},new CustomItem(SlimefunItems.APPLE_PIE,2)).register(true);
  new SlimefunItem(Categories.EASTER,SlimefunItems.EASTER_EGG,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new MaterialData(Material.INK_SACK,(byte)10).toItemStack(1),new ItemStack(Material.EGG),new MaterialData(Material.INK_SACK,(byte)13).toItemStack(1),null,null,null},new CustomItem(SlimefunItems.EASTER_EGG,2)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(item,SlimefunItems.EASTER_EGG,true)) {
        e.setCancelled(true);
        PlayerInventory.consumeItemInHand(e.getPlayer());
        FireworkShow.launchRandom(e.getPlayer(),2);
        List<ItemStack> gifts=new ArrayList<ItemStack>();
        for (int i=0; i < 2; i++) {
          gifts.add(new CustomItem(SlimefunItems.CARROT_PIE,4));
          gifts.add(new CustomItem(SlimefunItems.APPLE_PIE,4));
          gifts.add(new CustomItem(SlimefunItems.CARROT_JUICE,1));
        }
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        gifts.add(new SkullItem("String_Node_Str"));
        p.getWorld().dropItemNaturally(p.getLocation(),gifts.get(SlimefunStartup.randomize(gifts.size())));
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.COOLING_UNIT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.ICE),new ItemStack(Material.ICE),new ItemStack(Material.ICE),SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_INGOT,new ItemStack(Material.ICE),new ItemStack(Material.ICE),new ItemStack(Material.ICE)}).register(true);
  new SlimefunBackpack(27,Categories.PORTABLE,SlimefunItems.COOLER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.CLOTH,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.COOLING_UNIT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.WITHER_PROOF_OBSIDIAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,new ItemStack(Material.OBSIDIAN),SlimefunItems.LEAD_INGOT,new ItemStack(Material.OBSIDIAN),SlimefunItems.HARDENED_GLASS,new ItemStack(Material.OBSIDIAN),SlimefunItems.LEAD_INGOT,new ItemStack(Material.OBSIDIAN),SlimefunItems.LEAD_INGOT},new CustomItem(SlimefunItems.WITHER_PROOF_OBSIDIAN,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.ANCIENT_PEDESTAL,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{new ItemStack(Material.OBSIDIAN),SlimefunItems.GOLD_8K,new ItemStack(Material.OBSIDIAN),null,new ItemStack(Material.STONE),null,new ItemStack(Material.OBSIDIAN),SlimefunItems.GOLD_8K,new ItemStack(Material.OBSIDIAN)},new CustomItem(SlimefunItems.ANCIENT_PEDESTAL,4)).register(true);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Item stack=AncientAltarListener.findItem(b);
      if (stack != null)       stack.removeMetadata("String_Node_Str",SlimefunStartup.instance);
      return true;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.ANCIENT_ALTAR,"String_Node_Str",RecipeType.MAGIC_WORKBENCH,new ItemStack[]{null,new ItemStack(Material.ENCHANTMENT_TABLE),null,SlimefunItems.MAGIC_LUMP_3,SlimefunItems.GOLD_8K,SlimefunItems.MAGIC_LUMP_3,new ItemStack(Material.OBSIDIAN),SlimefunItems.GOLD_8K,new ItemStack(Material.OBSIDIAN)}).register(true);
  new SlimefunItem(Categories.BIRTHDAY,new CustomItem(new MaterialData(Material.CAKE),"String_Node_Str"),"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.TORCH),null,new ItemStack(Material.SUGAR),new ItemStack(Material.CAKE),new ItemStack(Material.SUGAR),null,null,null}).register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.ENERGY_REGULATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SILVER_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.SILVER_INGOT}).register(true,new BlockTicker(){
    @Override public boolean isSynchronized(){
      return false;
    }
    @Override public void uniqueTick(){
    }
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      EnergyNet.tick(b);
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      EnergyHologram.remove(b);
      return true;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.DUCT_TAPE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ALUMINUM_DUST,SlimefunItems.ALUMINUM_DUST,SlimefunItems.ALUMINUM_DUST,new ItemStack(Material.SLIME_BALL),new ItemStack(Material.WOOL),new ItemStack(Material.SLIME_BALL),new ItemStack(Material.PAPER),new ItemStack(Material.PAPER),new ItemStack(Material.PAPER)},new CustomItem(SlimefunItems.DUCT_TAPE,2)).register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SMALL_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DURALUMIN_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.DURALUMIN_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.SULFATE,new ItemStack(Material.REDSTONE),SlimefunItems.DURALUMIN_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.DURALUMIN_INGOT}).registerDistibutingCapacitor(true,128);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.MEDIUM_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BILLON_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.BILLON_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.SMALL_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.BILLON_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.BILLON_INGOT}).registerDistibutingCapacitor(true,512);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.BIG_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.STEEL_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.MEDIUM_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.STEEL_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.STEEL_INGOT}).registerDistibutingCapacitor(true,1024);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.LARGE_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.REINFORCED_ALLOY_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.BIG_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.REINFORCED_ALLOY_INGOT}).registerDistibutingCapacitor(true,8192);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.CARBONADO_EDGED_CAPACITOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.CARBONADO,new ItemStack(Material.REDSTONE),SlimefunItems.LARGE_CAPACITOR,new ItemStack(Material.REDSTONE),SlimefunItems.CARBONADO,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.CARBONADO}).registerDistibutingCapacitor(true,65536);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.SOLAR_PANEL,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_INGOT,null,SlimefunItems.ALUMINUM_INGOT,null}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 2D;
      return 0D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_GENERATOR,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR,SlimefunItems.ALUMINUM_INGOT,new ItemStack(Material.REDSTONE),SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 8;
      return 0D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_GENERATOR_2,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR_2,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.CARBONADO,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR_2,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.SOLAR_GENERATOR_2}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 32;
      return 0D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.SOLAR_GENERATOR_4,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.SOLAR_GENERATOR_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.SOLAR_GENERATOR_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.SOLAR_GENERATOR_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.SOLAR_GENERATOR_3}).register(true,new EnergyTicker(){
    @Override public double generateEnergy(    Location l,    SlimefunItem item,    Config data){
      try {
        if (l.getBlock().getLightFromSky() != 15)         return 0D;
      }
 catch (      IllegalStateException x) {
        return 0D;
      }
      if (l.getWorld().getTime() < 12300 || l.getWorld().getTime() > 23850)       return 128;
      return 64D;
    }
    @Override public boolean explode(    Location l){
      return false;
    }
  }
);
  new ChargingBench(Categories.ELECTRICITY,SlimefunItems.CHARGING_BENCH,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRO_MAGNET,null,SlimefunItems.BATTERY,new ItemStack(Material.WORKBENCH),SlimefunItems.BATTERY,null,SlimefunItems.SMALL_CAPACITOR,null}).registerChargeableBlock(true,128);
  new ElectricFurnace(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_FURNACE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.FURNACE),null,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 2;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,64);
  new ElectricFurnace(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_FURNACE_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_FURNACE,SlimefunItems.GILDED_IRON,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 3;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricFurnace(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_FURNACE_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_FURNACE_2,SlimefunItems.STEEL_INGOT,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 5;
    }
    @Override public int getSpeed(){
      return 4;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricGoldPan(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_GOLD_PAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_PAN,null,new ItemStack(Material.FLINT),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.FLINT),SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.ALUMINUM_INGOT}){
    @Override public int getEnergyConsumption(){
      return 1;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricGoldPan(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_GOLD_PAN_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_PAN,null,new ItemStack(Material.IRON_INGOT),SlimefunItems.ELECTRIC_GOLD_PAN,new ItemStack(Material.IRON_INGOT),SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT,SlimefunItems.DURALUMIN_INGOT}){
    @Override public int getEnergyConsumption(){
      return 2;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricGoldPan(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_GOLD_PAN_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_PAN,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRIC_GOLD_PAN_2,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.COBALT_INGOT,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.COBALT_INGOT}){
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 10;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricDustWasher(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_DUST_WASHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WATER_BUCKET),null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_GOLD_PAN,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT,SlimefunItems.COPPER_INGOT}){
    @Override public int getEnergyConsumption(){
      return 3;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricDustWasher(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_DUST_WASHER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WATER_BUCKET),null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_DUST_WASHER,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT}){
    @Override public int getEnergyConsumption(){
      return 5;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,128);
  new ElectricDustWasher(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_DUST_WASHER_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WATER_BUCKET),null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_DUST_WASHER_2,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.CORINTHIAN_BRONZE_INGOT}){
    @Override public int getEnergyConsumption(){
      return 15;
    }
    @Override public int getSpeed(){
      return 10;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricIngotFactory(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_FACTORY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.FLINT_AND_STEEL),null,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_DUST_WASHER,SlimefunItems.HEATING_COIL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 4;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new ElectricIngotFactory(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_FACTORY_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GILDED_IRON,new ItemStack(Material.FLINT_AND_STEEL),SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_INGOT_FACTORY,SlimefunItems.HEATING_COIL,SlimefunItems.BRASS_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.BRASS_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,256);
  new ElectricIngotFactory(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_FACTORY_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GILDED_IRON,new ItemStack(Material.FLINT_AND_STEEL),SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_INGOT_FACTORY_2,SlimefunItems.HEATING_COIL,SlimefunItems.BRASS_INGOT,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.BRASS_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 20;
    }
    @Override public int getSpeed(){
      return 8;
    }
  }
.registerChargeableBlock(true,512);
  new ElectrifiedCrucible(Categories.ELECTRICITY,SlimefunItems.ELECTRIFIED_CRUCIBLE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.CRUCIBLE,SlimefunItems.LEAD_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.LARGE_CAPACITOR,SlimefunItems.LEAD_INGOT}){
    @Override public int getEnergyConsumption(){
      return 24;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,1024);
  new ElectrifiedCrucible(Categories.ELECTRICITY,SlimefunItems.ELECTRIFIED_CRUCIBLE_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.ELECTRIFIED_CRUCIBLE,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.LEAD_INGOT}){
    @Override public int getEnergyConsumption(){
      return 40;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,1024);
  new ElectrifiedCrucible(Categories.ELECTRICITY,SlimefunItems.ELECTRIFIED_CRUCIBLE_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.ELECTRIFIED_CRUCIBLE_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.STEEL_PLATE,SlimefunItems.POWER_CRYSTAL,SlimefunItems.STEEL_PLATE,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT}){
    @Override public int getEnergyConsumption(){
      return 60;
    }
    @Override public int getSpeed(){
      return 4;
    }
  }
.registerChargeableBlock(true,1024);
  new AContainer(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_ORE_GRINDER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.DIAMOND_PICKAXE),null,SlimefunItems.GILDED_IRON,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.STONE_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 6;
    }
    @Override public int getSpeed(){
      return 1;
    }
    @Override public String getMachineIdentifier(){
      return "String_Node_Str";
    }
  }
.registerChargeableBlock(true,128);
  new AContainer(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_ORE_GRINDER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.DIAMOND_PICKAXE),null,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_ORE_GRINDER,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 15;
    }
    @Override public int getSpeed(){
      return 4;
    }
    @Override public String getMachineIdentifier(){
      return "String_Node_Str";
    }
  }
.registerChargeableBlock(true,512);
  new HeatedPressureChamber(Categories.ELECTRICITY,SlimefunItems.HEATED_PRESSURE_CHAMBER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,new ItemStack(Material.GLASS),SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.LEAD_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public int getEnergyConsumption(){
      return 5;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,128);
  new HeatedPressureChamber(Categories.ELECTRICITY,SlimefunItems.HEATED_PRESSURE_CHAMBER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATED_PRESSURE_CHAMBER,SlimefunItems.LEAD_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.REINFORCED_ALLOY_INGOT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public int getEnergyConsumption(){
      return 22;
    }
    @Override public int getSpeed(){
      return 5;
    }
  }
.registerChargeableBlock(true,256);
  new AContainer(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_INGOT_PULVERIZER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRIC_ORE_GRINDER,null,SlimefunItems.LEAD_INGOT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.LEAD_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.LEAD_INGOT}){
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.IRON_PICKAXE);
    }
    @Override public void registerDefaultRecipes(){
      registerRecipe(3,new ItemStack[]{SlimefunItems.ALUMINUM_INGOT},new ItemStack[]{SlimefunItems.ALUMINUM_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.COPPER_INGOT},new ItemStack[]{SlimefunItems.COPPER_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.GOLD_4K},new ItemStack[]{SlimefunItems.GOLD_DUST});
      registerRecipe(3,new ItemStack[]{new ItemStack(Material.IRON_INGOT)},new ItemStack[]{SlimefunItems.IRON_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.LEAD_INGOT},new ItemStack[]{SlimefunItems.LEAD_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.MAGNESIUM_INGOT},new ItemStack[]{SlimefunItems.MAGNESIUM_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.SILVER_INGOT},new ItemStack[]{SlimefunItems.SILVER_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.TIN_INGOT},new ItemStack[]{SlimefunItems.TIN_DUST});
      registerRecipe(3,new ItemStack[]{SlimefunItems.ZINC_INGOT},new ItemStack[]{SlimefunItems.ZINC_DUST});
    }
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 1;
    }
    @Override public String getMachineIdentifier(){
      return "String_Node_Str";
    }
  }
.registerChargeableBlock(true,512);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.COAL_GENERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HEATING_COIL,new ItemStack(Material.FURNACE),SlimefunItems.HEATING_COIL,SlimefunItems.NICKEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.NICKEL_INGOT,null,SlimefunItems.NICKEL_INGOT,null}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(8,new MaterialData(Material.COAL,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(8,new MaterialData(Material.COAL,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(80,new ItemStack(Material.COAL_BLOCK)));
      registerFuel(new MachineFuel(12,new ItemStack(Material.BLAZE_ROD)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG_2,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LOG_2,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)4).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.WOOD,(byte)5).toItemStack(1)));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 8;
    }
  }
.registerUnrechargeableBlock(true,64);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.BIO_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HEATING_COIL,SlimefunItems.COMPOSTER,SlimefunItems.HEATING_COIL,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_BRASS_INGOT,null,SlimefunItems.ALUMINUM_BRASS_INGOT,null}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(2,new ItemStack(Material.ROTTEN_FLESH)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.SPIDER_EYE)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.BONE)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.APPLE)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.MELON)));
      registerFuel(new MachineFuel(27,new ItemStack(Material.MELON_BLOCK)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.PUMPKIN)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.PUMPKIN_SEEDS)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.MELON_SEEDS)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.WHEAT)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.SEEDS)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.CARROT_ITEM)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.POTATO_ITEM)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.SUGAR_CANE)));
      registerFuel(new MachineFuel(3,new ItemStack(Material.NETHER_STALK)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.YELLOW_FLOWER)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.RED_ROSE)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.RED_MUSHROOM)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.BROWN_MUSHROOM)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.VINE)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.CACTUS)));
      registerFuel(new MachineFuel(2,new ItemStack(Material.WATER_LILY)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES_2,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.LEAVES_2,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)0).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)1).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)2).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)3).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)4).toItemStack(1)));
      registerFuel(new MachineFuel(1,new MaterialData(Material.SAPLING,(byte)5).toItemStack(1)));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 4;
    }
  }
.registerUnrechargeableBlock(true,128);
  new AutoEnchanter(Categories.ELECTRICITY,SlimefunItems.AUTO_ENCHANTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.ENCHANTMENT_TABLE),null,SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN}).registerChargeableBlock(true,128);
  new AutoDisenchanter(Categories.ELECTRICITY,SlimefunItems.AUTO_DISENCHANTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.REDSTONE),new ItemStack(Material.ANVIL),new ItemStack(Material.REDSTONE),SlimefunItems.CARBONADO,SlimefunItems.AUTO_ENCHANTER,SlimefunItems.CARBONADO,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.WITHER_PROOF_OBSIDIAN}).registerChargeableBlock(true,128);
  new AutoAnvil(Categories.ELECTRICITY,SlimefunItems.AUTO_ANVIL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.ANVIL),null,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT,new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK)}){
    @Override public int getRepairFactor(){
      return 10;
    }
    @Override public int getEnergyConsumption(){
      return 12;
    }
  }
.registerChargeableBlock(true,128);
  new AutoAnvil(Categories.ELECTRICITY,SlimefunItems.AUTO_ANVIL_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.AUTO_ANVIL,null,SlimefunItems.STEEL_PLATE,SlimefunItems.HEATING_COIL,SlimefunItems.STEEL_PLATE,new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK),new ItemStack(Material.IRON_BLOCK)}){
    @Override public int getRepairFactor(){
      return 4;
    }
    @Override public int getEnergyConsumption(){
      return 16;
    }
  }
.registerChargeableBlock(true,256);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.MULTIMETER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.COPPER_INGOT,null,SlimefunItems.COPPER_INGOT,null,SlimefunItems.REDSTONE_ALLOY,null,null,SlimefunItems.GOLD_6K,null}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(e.getItem(),SlimefunItems.MULTIMETER,true)) {
        if (e.getClickedBlock() != null && ChargableBlock.isChargable(e.getClickedBlock())) {
          e.setCancelled(true);
          p.sendMessage("String_Node_Str");
          p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + DoubleHandler.getFancyDouble(ChargableBlock.getCharge(e.getClickedBlock())) + "String_Node_Str"));
          p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + DoubleHandler.getFancyDouble(ChargableBlock.getMaxCharge(e.getClickedBlock())) + "String_Node_Str"));
          p.sendMessage("String_Node_Str");
        }
        return true;
      }
      return false;
    }
  }
);
  new SlimefunItem(Categories.MISC,SlimefunItems.PLASTIC_SHEET,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{null,null,null,null,SlimefunItems.BUCKET_OF_OIL,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ANDROID_MEMORY_CORE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BRASS_INGOT,new MaterialData(Material.STAINED_GLASS,(byte)1).toItemStack(1),SlimefunItems.BRASS_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.TIN_DUST,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BRASS_INGOT,new MaterialData(Material.STAINED_GLASS,(byte)1).toItemStack(1),SlimefunItems.BRASS_INGOT}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.STEEL_INGOT,SlimefunItems.ADVANCED_CIRCUIT_BOARD,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_INGOT}).registerChargeableBlock(true,16,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 0) {
        Slimefun.getGPSNetwork().updateTransmitter(b,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 1);
      }
 else       Slimefun.getGPSNetwork().updateTransmitter(b,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(b,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TRANSMITTER,SlimefunItems.BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER,SlimefunItems.BRONZE_INGOT,SlimefunItems.CARBON,SlimefunItems.BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER,SlimefunItems.BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER}).registerChargeableBlock(true,64,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 2) {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 4 + 100,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 3);
      }
 else {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 4 + 100,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      }
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 4 + 100,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TRANSMITTER_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.CARBONADO,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER_2,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.GPS_TRANSMITTER_2}).registerChargeableBlock(true,256,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 10) {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 16 + 500,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 11);
      }
 else {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 16 + 500,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      }
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 16 + 500,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TRANSMITTER_4,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TRANSMITTER_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.GPS_TRANSMITTER_3,SlimefunItems.NICKEL_INGOT,SlimefunItems.CARBONADO,SlimefunItems.NICKEL_INGOT,SlimefunItems.GPS_TRANSMITTER_3,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.GPS_TRANSMITTER_3}).registerChargeableBlock(true,1024,new BlockTicker(){
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      int charge=ChargableBlock.getCharge(b);
      if (charge > 45) {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 64 + 800,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.ONLINE);
        ChargableBlock.setCharge(b,charge - 46);
      }
 else {
        Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 64 + 800,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      }
    }
    @Override public void uniqueTick(){
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(),b.getX(),b.getY() * 64 + 800,b.getZ()).getBlock(),UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),NetworkStatus.OFFLINE);
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_CONTROL_PANEL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.COBALT_INGOT,SlimefunItems.ADVANCED_CIRCUIT_BOARD,SlimefunItems.COBALT_INGOT,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ALUMINUM_BRASS_INGOT}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      try {
        Slimefun.getGPSNetwork().openTransmitterControlPanel(p);
      }
 catch (      Exception e1) {
        e1.printStackTrace();
      }
      return true;
    }
  }
);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_MARKER_TOOL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),SlimefunItems.BASIC_CIRCUIT_BOARD,new MaterialData(Material.INK_SACK,(byte)4).toItemStack(1),new ItemStack(Material.REDSTONE),SlimefunItems.REDSTONE_ALLOY,new ItemStack(Material.REDSTONE)}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_EMERGENCY_TRANSMITTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.ELECTRO_MAGNET,null,null,SlimefunItems.GPS_TRANSMITTER,null,null,SlimefunItems.ESSENCE_OF_AFTERLIFE,null}).register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.PLASTIC_SHEET,SlimefunItems.COAL_GENERATOR,SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.CHEST),SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.NONE;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_MINER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.DIAMOND_PICKAXE),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_PICKAXE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.MINER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_FARMER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.DIAMOND_HOE),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_HOE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FARMER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_WOODCUTTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.DIAMOND_AXE),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_AXE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.WOODCUTTER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_FISHERMAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.FISHING_ROD),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.FISHING_ROD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FISHERMAN;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_BUTCHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER,null,new ItemStack(Material.DIAMOND_SWORD),SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.DIAMOND_SWORD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FIGHTER;
    }
    @Override public float getFuelEfficiency(){
      return 1;
    }
    @Override public int getTier(){
      return 1;
    }
  }
.register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.ANDROID_INTERFACE_ITEMS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.BASIC_CIRCUIT_BOARD,new MaterialData(Material.STAINED_GLASS,(byte)11).toItemStack(1),SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET}).register(true);
  new SlimefunItem(Categories.ELECTRICITY,SlimefunItems.ANDROID_INTERFACE_FUEL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,new MaterialData(Material.STAINED_GLASS,(byte)14).toItemStack(1),SlimefunItems.BASIC_CIRCUIT_BOARD,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET,SlimefunItems.PLASTIC_SHEET}).register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.PLASTIC_SHEET,SlimefunItems.COMBUSTION_REACTOR,SlimefunItems.PROGRAMMABLE_ANDROID,new ItemStack(Material.CHEST),SlimefunItems.PLASTIC_SHEET,SlimefunItems.POWER_CRYSTAL,SlimefunItems.PLASTIC_SHEET}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.NONE;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2_FISHERMAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.FISHING_ROD),SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.FISHING_ROD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FISHERMAN;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2_BUTCHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER,null,new ItemStack(Material.DIAMOND_SWORD),SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.DIAMOND_SWORD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FIGHTER;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_2_FARMER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER,null,new ItemStack(Material.DIAMOND_HOE),SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.DIAMOND_HOE),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.ADVANCED_FARMER;
    }
    @Override public float getFuelEfficiency(){
      return 1.5F;
    }
    @Override public int getTier(){
      return 2;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.PLASTIC_SHEET,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.PLASTIC_SHEET,SlimefunItems.NUCLEAR_REACTOR,SlimefunItems.PROGRAMMABLE_ANDROID_2,new ItemStack(Material.CHEST),SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.POWER_CRYSTAL,SlimefunItems.BLISTERING_INGOT_3}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.NONE;
    }
    @Override public float getFuelEfficiency(){
      return 1F;
    }
    @Override public int getTier(){
      return 3;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_3_FISHERMAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,null,new ItemStack(Material.FISHING_ROD),SlimefunItems.PROGRAMMABLE_ANDROID_3,new ItemStack(Material.FISHING_ROD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FISHERMAN;
    }
    @Override public float getFuelEfficiency(){
      return 1F;
    }
    @Override public int getTier(){
      return 3;
    }
  }
.register(true);
  new ProgrammableAndroid(Categories.ELECTRICITY,SlimefunItems.PROGRAMMABLE_ANDROID_3_BUTCHER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GPS_TRANSMITTER_3,null,new ItemStack(Material.DIAMOND_SWORD),SlimefunItems.PROGRAMMABLE_ANDROID_3,new ItemStack(Material.DIAMOND_SWORD),null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public AndroidType getAndroidType(){
      return AndroidType.FIGHTER;
    }
    @Override public float getFuelEfficiency(){
      return 1F;
    }
    @Override public int getTier(){
      return 3;
    }
  }
.register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.BLANK_RUNE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.OBSIDIAN),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE)}).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_AIR,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.FEATHER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.FEATHER),new ItemStack(Material.GHAST_TEAR),SlimefunItems.BLANK_RUNE,new ItemStack(Material.GHAST_TEAR),new ItemStack(Material.FEATHER),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.FEATHER)},new CustomItem(SlimefunItems.RUNE_AIR,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_EARTH,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.DIRT),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.STONE),new ItemStack(Material.OBSIDIAN),SlimefunItems.BLANK_RUNE,new ItemStack(Material.OBSIDIAN),new ItemStack(Material.STONE),SlimefunItems.MAGIC_LUMP_1,new ItemStack(Material.DIRT)},new CustomItem(SlimefunItems.RUNE_EARTH,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_FIRE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.FIREBALL),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.FIREBALL),new ItemStack(Material.BLAZE_POWDER),SlimefunItems.RUNE_EARTH,new ItemStack(Material.FLINT_AND_STEEL),new ItemStack(Material.FIREBALL),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.FIREBALL)},new CustomItem(SlimefunItems.RUNE_FIRE,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_WATER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.RAW_FISH),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.WATER_BUCKET),new ItemStack(Material.SAND),SlimefunItems.BLANK_RUNE,new ItemStack(Material.SAND),new ItemStack(Material.WATER_BUCKET),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.RAW_FISH)},new CustomItem(SlimefunItems.RUNE_WATER,4)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_ENDER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_3,new ItemStack(Material.ENDER_PEARL),new ItemStack(Material.EYE_OF_ENDER),SlimefunItems.BLANK_RUNE,new ItemStack(Material.EYE_OF_ENDER),new ItemStack(Material.ENDER_PEARL),SlimefunItems.ENDER_LUMP_3,new ItemStack(Material.ENDER_PEARL)},new CustomItem(SlimefunItems.RUNE_ENDER,6)).register(true);
  new SlimefunItem(Categories.LUMPS_AND_MAGIC,SlimefunItems.RUNE_RAINBOW,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.MAGIC_LUMP_3,new MaterialData(Material.INK_SACK,(byte)9).toItemStack(1),new ItemStack(Material.WOOL),SlimefunItems.RUNE_ENDER,new ItemStack(Material.WOOL),new MaterialData(Material.INK_SACK,(byte)11).toItemStack(1),SlimefunItems.ENDER_LUMP_3,new MaterialData(Material.INK_SACK,(byte)10).toItemStack(1)}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFERNAL_BONEMEAL,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.NETHER_STALK),SlimefunItems.RUNE_EARTH,new ItemStack(Material.NETHER_STALK),SlimefunItems.MAGIC_LUMP_2,new MaterialData(Material.INK_SACK,(byte)15).toItemStack(1),SlimefunItems.MAGIC_LUMP_2,new ItemStack(Material.NETHER_STALK),new ItemStack(Material.BLAZE_POWDER),new ItemStack(Material.NETHER_STALK)},new CustomItem(SlimefunItems.INFERNAL_BONEMEAL,8)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack item){
      if (SlimefunManager.isItemSimiliar(e.getItem(),SlimefunItems.INFERNAL_BONEMEAL,true)) {
        if (e.getClickedBlock() != null && e.getClickedBlock().getType().equals(Material.NETHER_WARTS)) {
          if (e.getClickedBlock().getData() < 3) {
            e.getClickedBlock().setData((byte)(e.getClickedBlock().getData() + 1));
            e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(),Effect.STEP_SOUND,Material.REDSTONE_BLOCK);
            PlayerInventory.consumeItemInHand(p);
          }
        }
        return true;
      }
      return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.ELYTRA_SCALE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_AIR,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_ENDER,new ItemStack(Material.FEATHER),SlimefunItems.RUNE_ENDER,SlimefunItems.ENDER_LUMP_3,SlimefunItems.RUNE_AIR,SlimefunItems.ENDER_LUMP_3}).register(true);
  new VanillaItem(Categories.MAGIC,SlimefunItems.ELYTRA,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.ELYTRA_SCALE,SlimefunItems.RUNE_AIR,SlimefunItems.ELYTRA_SCALE,SlimefunItems.RUNE_AIR,new ItemStack(Material.LEATHER_CHESTPLATE),SlimefunItems.RUNE_AIR,SlimefunItems.ELYTRA_SCALE,SlimefunItems.RUNE_AIR,SlimefunItems.ELYTRA_SCALE}).register(true);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFUSED_ELYTRA,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA_SCALE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA_SCALE,SlimefunItems.FLASK_OF_KNOWLEDGE}).register(true);
  new SoulboundItem(Categories.MAGIC,SlimefunItems.SOULBOUND_ELYTRA,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ELYTRA_SCALE,SlimefunItems.ELYTRA,SlimefunItems.ELYTRA_SCALE,SlimefunItems.FLASK_OF_KNOWLEDGE,SlimefunItems.ESSENCE_OF_AFTERLIFE,SlimefunItems.FLASK_OF_KNOWLEDGE}).register(true);
  RainbowTicker rainbow=new RainbowTicker();
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_WOOL,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL),new ItemStack(Material.WOOL)},new CustomItem(SlimefunItems.RAINBOW_WOOL,8)).register(true,rainbow);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_GLASS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS),new ItemStack(Material.STAINED_GLASS)},new CustomItem(SlimefunItems.RAINBOW_GLASS,8)).register(true,rainbow);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_GLASS_PANE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE),new ItemStack(Material.STAINED_GLASS_PANE)},new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE,8)).register(true,rainbow);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.RAINBOW_CLAY,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY),new ItemStack(Material.STAINED_CLAY)},new CustomItem(SlimefunItems.RAINBOW_CLAY,8)).register(true,rainbow);
  RainbowTicker xmas=new RainbowTicker(13,14);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_WOOL_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.WOOL),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.WOOL),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_WOOL_XMAS,2)).register(true,xmas);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_GLASS_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_XMAS,2)).register(true,xmas);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_GLASS_PANE_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS_PANE),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS_PANE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_XMAS,2)).register(true,xmas);
  new SlimefunItem(Categories.CHRISTMAS,SlimefunItems.RAINBOW_CLAY_XMAS,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_CLAY),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_CLAY),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),SlimefunItems.CHRISTMAS_COOKIE,new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_CLAY_XMAS,2)).register(true,xmas);
  RainbowTicker valentine=new RainbowTicker(2,6,10);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_WOOL_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.WOOL),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.WOOL),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_WOOL_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_GLASS_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_GLASS_PANE),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_GLASS_PANE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.VALENTINES_DAY,SlimefunItems.RAINBOW_CLAY_VALENTINE,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.STAINED_CLAY),SlimefunItems.RUNE_RAINBOW,new ItemStack(Material.STAINED_CLAY),new MaterialData(Material.INK_SACK,(byte)2).toItemStack(1),new ItemStack(Material.RED_ROSE),new MaterialData(Material.INK_SACK,(byte)1).toItemStack(1)},new CustomItem(SlimefunItems.RAINBOW_CLAY_VALENTINE,2)).register(true,valentine);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.WITHER_PROOF_GLASS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.LEAD_INGOT,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.HARDENED_GLASS,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.LEAD_INGOT,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.LEAD_INGOT},new CustomItem(SlimefunItems.WITHER_PROOF_GLASS,4)).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_GEO_SCANNER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,null,SlimefunItems.ELECTRO_MAGNET,null,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRO_MAGNET}).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      try {
        Slimefun.getGPSNetwork().scanChunk(p,e.getClickedBlock().getChunk());
      }
 catch (      Exception e1) {
        e1.printStackTrace();
      }
      return true;
    }
  }
);
  new OilPump(Categories.GPS,SlimefunItems.OIL_PUMP,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.STEEL_INGOT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.STEEL_INGOT,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_INGOT,null,new ItemStack(Material.BUCKET),null}){
    @Override public int getEnergyConsumption(){
      return 14;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,200);
  new NetherDrill(Categories.GPS,SlimefunItems.NETHER_DRILL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.LEAD_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.LEAD_INGOT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.OIL_PUMP,SlimefunItems.REINFORCED_PLATE,SlimefunItems.LEAD_INGOT,SlimefunItems.BIG_CAPACITOR,SlimefunItems.LEAD_INGOT}){
    @Override public int getSpeed(){
      return 1;
    }
    @Override public int getEnergyConsumption(){
      return 51;
    }
  }
.registerChargeableBlock(true,1024);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BUCKET_OF_OIL,"String_Node_Str",new RecipeType(SlimefunItems.OIL_PUMP),new ItemStack[]{null,null,null,null,new ItemStack(Material.BUCKET),null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BUCKET_OF_FUEL,"String_Node_Str",new RecipeType(SlimefunItems.REFINERY),new ItemStack[]{null,null,null,null,SlimefunItems.BUCKET_OF_OIL,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.NETHER_ICE,"String_Node_Str",new RecipeType(SlimefunItems.NETHER_DRILL),new ItemStack[]{null,null,null,null,null,null,null,null}).register(true);
  new Refinery(Categories.ELECTRICITY,SlimefunItems.REFINERY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_GLASS,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.HARDENED_GLASS,SlimefunItems.HARDENED_GLASS,SlimefunItems.REDSTONE_ALLOY,SlimefunItems.HARDENED_GLASS,new ItemStack(Material.PISTON_BASE),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.PISTON_BASE)}){
    @Override public int getEnergyConsumption(){
      return 16;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.LAVA_GENERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.GOLD_16K,null,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(40,new ItemStack(Material.LAVA_BUCKET)));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 10;
    }
  }
.registerUnrechargeableBlock(true,512);
  new AGenerator(Categories.ELECTRICITY,SlimefunItems.COMBUSTION_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.STEEL_INGOT,null,SlimefunItems.STEEL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.STEEL_INGOT,SlimefunItems.HEATING_COIL}){
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(30,SlimefunItems.BUCKET_OF_OIL));
      registerFuel(new MachineFuel(90,SlimefunItems.BUCKET_OF_FUEL));
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.FLINT_AND_STEEL);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyProduction(){
      return 12;
    }
  }
.registerUnrechargeableBlock(true,256);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_TELEPORTER_PYLON,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.ZINC_INGOT,new ItemStack(Material.GLASS),SlimefunItems.ZINC_INGOT,new ItemStack(Material.GLASS),SlimefunItems.HEATING_COIL,new ItemStack(Material.GLASS),SlimefunItems.ZINC_INGOT,new ItemStack(Material.GLASS),SlimefunItems.ZINC_INGOT},new CustomItem(SlimefunItems.GPS_TELEPORTER_PYLON,8)).register(true,new RainbowTicker(9,10));
  new Teleporter(Categories.GPS,SlimefunItems.GPS_TELEPORTATION_MATRIX,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GPS_TELEPORTER_PYLON,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.GPS_TELEPORTER_PYLON,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.GPS_CONTROL_PANEL,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.GPS_TELEPORTER_PYLON,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.GPS_TELEPORTER_PYLON}){
    @Override public void onInteract(    final Player p,    final Block b) throws Exception {
      GPSNetwork.openTeleporterGUI(p,UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str")),b,Slimefun.getGPSNetwork().getNetworkComplexity(UUID.fromString(BlockStorage.getBlockInfo(b,"String_Node_Str"))));
    }
  }
.register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.STONE_PLATE),null,new ItemStack(Material.REDSTONE),SlimefunItems.GPS_TRANSMITTER,new ItemStack(Material.REDSTONE),SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.BILLON_INGOT}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.GPS_ACTIVATION_DEVICE_PERSONAL,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.LEAD_INGOT,null,SlimefunItems.COBALT_INGOT,SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED,SlimefunItems.COBALT_INGOT,null,SlimefunItems.LEAD_INGOT,null}).register(true);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      return BlockStorage.getBlockInfo(b,"String_Node_Str").equals(p.getUniqueId().toString());
    }
  }
);
  new SlimefunItem(Categories.TECH,SlimefunItems.HOLOGRAM_PROJECTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.POWER_CRYSTAL,null,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_BRASS_INGOT,null,SlimefunItems.ALUMINUM_BRASS_INGOT,null},new CustomItem(SlimefunItems.HOLOGRAM_PROJECTOR,3)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      if (BlockStorage.getBlockInfo(e.getClickedBlock(),"String_Node_Str").equals(p.getUniqueId().toString())) {
        Projector.openEditor(p,e.getClickedBlock());
      }
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
      Projector.getArmorStand(b);
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      if (BlockStorage.getBlockInfo(b,"String_Node_Str").equals(p.getUniqueId().toString())) {
        Projector.getArmorStand(b).remove();
        return true;
      }
 else       return false;
    }
  }
);
  new SlimefunItem(Categories.MAGIC,SlimefunItems.INFUSED_HOPPER,"String_Node_Str",RecipeType.ANCIENT_ALTAR,new ItemStack[]{new ItemStack(Material.OBSIDIAN),SlimefunItems.RUNE_EARTH,new ItemStack(Material.HOPPER),SlimefunItems.RUNE_ENDER,SlimefunItems.INFUSED_MAGNET,SlimefunItems.RUNE_ENDER,new ItemStack(Material.HOPPER),SlimefunItems.RUNE_EARTH,new ItemStack(Material.OBSIDIAN)}).register(true,new BlockTicker(){
    @Override public void uniqueTick(){
    }
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      if (b.getType() != Material.HOPPER) {
        return;
      }
      ArmorStand hologram=InfusedHopper.getArmorStand(b,true);
      boolean sound=false;
      for (      Entity n : hologram.getNearbyEntities(3.5D,3.5D,3.5D)) {
        if (n instanceof Item && !n.hasMetadata("String_Node_Str") && n.getLocation().distance(hologram.getLocation()) > 0.4D) {
          n.setVelocity(new Vector(0,0.1,0));
          n.teleport(hologram);
          sound=true;
        }
      }
      if (sound)       b.getWorld().playSound(b.getLocation(),Sound.ENTITY_ENDERMEN_TELEPORT,5F,2F);
    }
    @Override public boolean isSynchronized(){
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      InfusedHopper.getArmorStand(b,true);
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      final ArmorStand hologram=InfusedHopper.getArmorStand(b,false);
      if (hologram != null) {
        hologram.remove();
      }
      return true;
    }
  }
);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BLISTERING_INGOT,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.GOLD_24K,SlimefunItems.URANIUM,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BLISTERING_INGOT_2,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.BLISTERING_INGOT,SlimefunItems.CARBONADO,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BLISTERING_INGOT_3,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.BLISTERING_INGOT_2,new ItemStack(Material.NETHER_STAR),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.ENRICHED_NETHER_ICE,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.NETHER_ICE,SlimefunItems.PLUTONIUM,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.GPS,SlimefunItems.ELEVATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.STONE_PLATE),null,new ItemStack(Material.PISTON_BASE),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.PISTON_BASE),SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ALUMINUM_BRONZE_INGOT},new CustomItem(SlimefunItems.ELEVATOR,2)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    final ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null)       return false;
      if (!item.getName().equals("String_Node_Str"))       return false;
      if (BlockStorage.getBlockInfo(e.getClickedBlock(),"String_Node_Str").equals(p.getUniqueId().toString()))       Elevator.openEditor(p,e.getClickedBlock());
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
      BlockStorage.addBlockInfo(b,"String_Node_Str",p.getUniqueId().toString());
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      return true;
    }
  }
);
  new FoodFabricator(Categories.ELECTRICITY,SlimefunItems.FOOD_FABRICATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BILLON_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.BILLON_INGOT,SlimefunItems.CAN,SlimefunItems.SMALL_CAPACITOR,SlimefunItems.CAN,null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 7;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new FoodFabricator(Categories.ELECTRICITY,SlimefunItems.FOOD_FABRICATOR_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.FOOD_FABRICATOR,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.ELECTRO_MAGNET,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 24;
    }
    @Override public int getSpeed(){
      return 6;
    }
  }
.registerChargeableBlock(true,512);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD2,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.WHEAT),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD3,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.CARROT_ITEM),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD4,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.POTATO_ITEM),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD5,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.SEEDS),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD6,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.BEETROOT),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD7,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.MELON),null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.ORGANIC_FOOD8,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_FABRICATOR),new ItemStack[]{SlimefunItems.CAN,new ItemStack(Material.APPLE),null,null,null,null,null,null,null}).register(true);
  new AutoBreeder(Categories.ELECTRICITY,SlimefunItems.AUTO_BREEDER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.GOLD_18K,SlimefunItems.CAN,SlimefunItems.GOLD_18K,SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.HAY_BLOCK),SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.FOOD_FABRICATOR,SlimefunItems.LEAD_INGOT}).registerChargeableBlock(true,1024);
  new AnimalGrowthAccelerator(Categories.ELECTRICITY,SlimefunItems.ANIMAL_GROWTH_ACCELERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ORGANIC_FOOD2,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.AUTO_BREEDER,SlimefunItems.REINFORCED_ALLOY_INGOT}).registerChargeableBlock(true,1024);
  new XPCollector(Categories.ELECTRICITY,SlimefunItems.XP_COLLECTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.AUTO_ENCHANTER,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ALUMINUM_BRONZE_INGOT}).registerChargeableBlock(true,1024);
  new FoodComposter(Categories.ELECTRICITY,SlimefunItems.FOOD_COMPOSTER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.FOOD_FABRICATOR,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.CAN,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.CAN,null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 8;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new FoodComposter(Categories.ELECTRICITY,SlimefunItems.FOOD_COMPOSTER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HARDENED_METAL_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.FOOD_COMPOSTER,SlimefunItems.ELECTRIC_MOTOR,null,SlimefunItems.ELECTRO_MAGNET,null}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_HOE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 26;
    }
    @Override public int getSpeed(){
      return 10;
    }
  }
.registerChargeableBlock(true,256);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER2,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD2,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER3,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD3,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER4,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD4,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER5,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD5,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER6,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD6,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER7,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD7,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.MISC,SlimefunItems.FERTILIZER8,"String_Node_Str",new RecipeType(SlimefunItems.FOOD_COMPOSTER),new ItemStack[]{SlimefunItems.ORGANIC_FOOD8,null,null,null,null,null,null,null,null}).register(true);
  new CropGrowthAccelerator(Categories.ELECTRICITY,SlimefunItems.CROP_GROWTH_ACCELERATOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.PROGRAMMABLE_ANDROID_FARMER,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ANIMAL_GROWTH_ACCELERATOR,SlimefunItems.ELECTRO_MAGNET}){
    @Override public int getEnergyConsumption(){
      return 25;
    }
    @Override public int getRadius(){
      return 3;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,1024);
  new CropGrowthAccelerator(Categories.ELECTRICITY,SlimefunItems.CROP_GROWTH_ACCELERATOR_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CROP_GROWTH_ACCELERATOR,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.ADVANCED_CIRCUIT_BOARD,SlimefunItems.ELECTRO_MAGNET}){
    @Override public int getEnergyConsumption(){
      return 30;
    }
    @Override public int getRadius(){
      return 4;
    }
    @Override public int getSpeed(){
      return 4;
    }
  }
.registerChargeableBlock(true,1024);
  new Freezer(Categories.ELECTRICITY,SlimefunItems.FREEZER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.SILVER_INGOT,null,SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.PACKED_ICE),SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.COOLING_UNIT,SlimefunItems.MEDIUM_CAPACITOR,SlimefunItems.COOLING_UNIT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.GOLD_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 9;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new Freezer(Categories.ELECTRICITY,SlimefunItems.FREEZER_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.SILVER_INGOT,null,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.FREEZER,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.COOLING_UNIT,SlimefunItems.ALUMINUM_BRASS_INGOT,SlimefunItems.COOLING_UNIT}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 15;
    }
    @Override public int getSpeed(){
      return 2;
    }
  }
.registerChargeableBlock(true,256);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.REACTOR_COOLANT_CELL,"String_Node_Str",new RecipeType(SlimefunItems.FREEZER),new ItemStack[]{new ItemStack(Material.PACKED_ICE),null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.TECH_MISC,SlimefunItems.NETHER_ICE_COOLANT_CELL,"String_Node_Str",new RecipeType(SlimefunItems.HEATED_PRESSURE_CHAMBER),new ItemStack[]{SlimefunItems.ENRICHED_NETHER_ICE,null,null,null,null,null,null,null,null}).register(true);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.NEPTUNIUM,"String_Node_Str",new RecipeType(SlimefunItems.NUCLEAR_REACTOR),new ItemStack[]{SlimefunItems.URANIUM,null,null,null,null,null,null,null,null}).register(true);
  SlimefunItem.setRadioactive(SlimefunItems.NEPTUNIUM);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.PLUTONIUM,"String_Node_Str",new RecipeType(SlimefunItems.NUCLEAR_REACTOR),new ItemStack[]{SlimefunItems.NEPTUNIUM,null,null,null,null,null,null,null,null}).register(true);
  SlimefunItem.setRadioactive(SlimefunItems.PLUTONIUM);
  new SlimefunItem(Categories.RESOURCES,SlimefunItems.BOOSTED_URANIUM,"String_Node_Str",RecipeType.HEATED_PRESSURE_CHAMBER,new ItemStack[]{SlimefunItems.PLUTONIUM,SlimefunItems.URANIUM,null,null,null,null,null,null,null}).register(true);
  SlimefunItem.setRadioactive(SlimefunItems.BOOSTED_URANIUM);
  new AReactor(Categories.ELECTRICITY,SlimefunItems.NUCLEAR_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.CARBONADO_EDGED_CAPACITOR,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.REINFORCED_PLATE,SlimefunItems.COOLING_UNIT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.LEAD_INGOT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.LEAD_INGOT}){
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(1200,SlimefunItems.URANIUM,SlimefunItems.NEPTUNIUM));
      registerFuel(new MachineFuel(600,SlimefunItems.NEPTUNIUM,SlimefunItems.PLUTONIUM));
      registerFuel(new MachineFuel(1500,SlimefunItems.BOOSTED_URANIUM,null));
    }
    @Override public int getEnergyProduction(){
      return 250;
    }
    @Override public void extraTick(    Location l){
    }
    @Override public ItemStack getProgressBar(){
      try {
        return CustomSkull.getItem("String_Node_Str");
      }
 catch (      Exception e) {
        return new ItemStack(Material.BLAZE_POWDER);
      }
    }
    @Override public ItemStack getCoolant(){
      return SlimefunItems.REACTOR_COOLANT_CELL;
    }
  }
.registerChargeableBlock(true,16384);
  new AReactor(Categories.ELECTRICITY,SlimefunItems.NETHERSTAR_REACTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BOOSTED_URANIUM,SlimefunItems.CARBONADO_EDGED_CAPACITOR,SlimefunItems.BOOSTED_URANIUM,SlimefunItems.REINFORCED_PLATE,new ItemStack(Material.NETHER_STAR),SlimefunItems.REINFORCED_PLATE,SlimefunItems.CORINTHIAN_BRONZE_INGOT,SlimefunItems.REINFORCED_PLATE,SlimefunItems.CORINTHIAN_BRONZE_INGOT}){
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public void registerDefaultRecipes(){
      registerFuel(new MachineFuel(1800,new ItemStack(Material.NETHER_STAR)));
    }
    @Override public int getEnergyProduction(){
      return 512;
    }
    @Override public void extraTick(    final Location l){
      Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance,new BukkitRunnable(){
        @Override public void run(){
          for (          Entity entity : ReactorHologram.getArmorStand(l).getNearbyEntities(5,5,5)) {
            if (entity instanceof LivingEntity) {
              ((LivingEntity)entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER,60,1));
            }
          }
        }
      }
,0);
    }
    @Override public ItemStack getCoolant(){
      return SlimefunItems.NETHER_ICE_COOLANT_CELL;
    }
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.NETHER_STAR);
    }
  }
.registerChargeableBlock(true,32768);
  new SlimefunItem(Categories.CARGO,SlimefunItems.CARGO_MOTOR,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.HARDENED_GLASS,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HARDENED_GLASS,SlimefunItems.SILVER_INGOT,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.SILVER_INGOT,SlimefunItems.HARDENED_GLASS,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HARDENED_GLASS},new CustomItem(SlimefunItems.CARGO_MOTOR,4)).register(true);
  new SlimefunItem(Categories.CARGO,SlimefunItems.CARGO_MANAGER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.HOLOGRAM_PROJECTOR,null,SlimefunItems.REINFORCED_PLATE,SlimefunItems.CARGO_MOTOR,SlimefunItems.REINFORCED_PLATE,SlimefunItems.ALUMINUM_BRONZE_INGOT,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.ALUMINUM_BRONZE_INGOT}).register(true,new BlockTicker(){
    @Override public void uniqueTick(){
    }
    @Override public void tick(    Block b,    SlimefunItem item,    Config data){
      CargoNet.tick(b);
    }
    @Override public boolean isSynchronized(){
      return false;
    }
  }
,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null || !item.getName().equals("String_Node_Str"))       return false;
      e.setCancelled(true);
      if (BlockStorage.getBlockInfo(e.getClickedBlock(),"String_Node_Str") == null) {
        BlockStorage.addBlockInfo(e.getClickedBlock(),"String_Node_Str","String_Node_Str");
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
 else {
        BlockStorage.addBlockInfo(e.getClickedBlock(),"String_Node_Str",null);
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
      return true;
    }
  }
);
  SlimefunItem.registerBlockHandler("String_Node_Str",new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      CargoHologram.remove(b);
      return true;
    }
  }
);
  new SlimefunItem(Categories.CARGO,SlimefunItems.CARGO_NODE,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BRONZE_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.BRONZE_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.CARGO_MOTOR,SlimefunItems.SILVER_INGOT,SlimefunItems.BRONZE_INGOT,SlimefunItems.SILVER_INGOT,SlimefunItems.BRONZE_INGOT},new CustomItem(SlimefunItems.CARGO_NODE,4)).register(true,new ItemInteractionHandler(){
    @Override public boolean onRightClick(    final ItemUseEvent e,    Player p,    ItemStack stack){
      if (e.getClickedBlock() == null)       return false;
      SlimefunItem item=BlockStorage.check(e.getClickedBlock());
      if (item == null)       return false;
      if (!item.getName().equals("String_Node_Str"))       return false;
      if (CargoNet.isConnected(e.getClickedBlock())) {
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
 else {
        p.sendMessage(ChatColor.translateAlternateColorCodes('&',"String_Node_Str" + "String_Node_Str"));
      }
      return true;
    }
  }
);
  new CargoInputNode(Categories.CARGO,SlimefunItems.CARGO_INPUT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.HOPPER),null,SlimefunItems.BILLON_INGOT,SlimefunItems.CARGO_NODE,SlimefunItems.BILLON_INGOT,null,new ItemStack(Material.HOPPER),null},new CustomItem(SlimefunItems.CARGO_INPUT,2)).register(true);
  new CargoOutputNode(Categories.CARGO,SlimefunItems.CARGO_OUTPUT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.HOPPER),null,SlimefunItems.BRASS_INGOT,SlimefunItems.CARGO_NODE,SlimefunItems.BRASS_INGOT,null,new ItemStack(Material.HOPPER),null},new CustomItem(SlimefunItems.CARGO_OUTPUT,2)).register(true);
  new AdvancedCargoOutputNode(Categories.CARGO,SlimefunItems.CARGO_OUTPUT_ADVANCED,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.CARGO_MOTOR,null,SlimefunItems.COBALT_INGOT,SlimefunItems.CARGO_OUTPUT,SlimefunItems.COBALT_INGOT,null,SlimefunItems.CARGO_MOTOR,null},new CustomItem(SlimefunItems.CARGO_OUTPUT_ADVANCED)).register(true);
  new AutomatedCraftingChamber(Categories.ELECTRICITY,SlimefunItems.AUTOMATED_CRAFTING_CHAMBER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,new ItemStack(Material.WORKBENCH),null,SlimefunItems.CARGO_MOTOR,SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.CARGO_MOTOR,null,SlimefunItems.ELECTRIC_MOTOR,null}){
    @Override public int getEnergyConsumption(){
      return 10;
    }
  }
.registerChargeableBlock(true,256);
  new ReactorAccessPort(Categories.ELECTRICITY,SlimefunItems.REACTOR_ACCESS_PORT,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.BLISTERING_INGOT_3,null,SlimefunItems.LEAD_INGOT,SlimefunItems.CARGO_MOTOR,SlimefunItems.LEAD_INGOT,null,SlimefunItems.ELECTRIC_MOTOR,null}).register(true);
  new FluidPump(Categories.ELECTRICITY,SlimefunItems.FLUID_PUMP,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.MEDIUM_CAPACITOR,null,new ItemStack(Material.BUCKET),SlimefunItems.CARGO_MOTOR,new ItemStack(Material.BUCKET),null,SlimefunItems.OIL_PUMP,null}).registerChargeableBlock(true,512);
  new TrashCan(Categories.CARGO,SlimefunItems.TRASH_CAN,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{null,SlimefunItems.PORTABLE_DUSTBIN,null,SlimefunItems.LEAD_INGOT,SlimefunItems.CARGO_MOTOR,SlimefunItems.LEAD_INGOT,SlimefunItems.ALUMINUM_INGOT,SlimefunItems.LEAD_INGOT,SlimefunItems.ALUMINUM_INGOT}).register(true);
  new CarbonPress(Categories.ELECTRICITY,SlimefunItems.CARBON_PRESS,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBON,SlimefunItems.CARBON,SlimefunItems.HEATED_PRESSURE_CHAMBER,SlimefunItems.CARBON,SlimefunItems.HEATING_COIL,SlimefunItems.CARBONADO,SlimefunItems.HEATING_COIL}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 10;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,256);
  new CarbonPress(Categories.ELECTRICITY,SlimefunItems.CARBON_PRESS_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO,SlimefunItems.CARBON,SlimefunItems.CARBON_PRESS,SlimefunItems.CARBON,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HEATING_COIL}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 25;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,512);
  new CarbonPress(Categories.ELECTRICITY,SlimefunItems.CARBON_PRESS_3,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.CARBONADO,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.CARBONADO,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.CARBON_PRESS_2,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRO_MAGNET,SlimefunItems.HEATING_COIL}){
    @Override public ItemStack getProgressBar(){
      return new ItemStack(Material.DIAMOND_PICKAXE);
    }
    @Override public String getInventoryTitle(){
      return "String_Node_Str";
    }
    @Override public int getEnergyConsumption(){
      return 90;
    }
    @Override public int getSpeed(){
      return 15;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricSmeltery(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_SMELTERY,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{new ItemStack(Material.NETHER_BRICK_ITEM),SlimefunItems.ELECTRIC_MOTOR,new ItemStack(Material.NETHER_BRICK_ITEM),SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_INGOT_FACTORY,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public int getEnergyConsumption(){
      return 10;
    }
    @Override public int getSpeed(){
      return 1;
    }
  }
.registerChargeableBlock(true,512);
  new ElectricSmeltery(Categories.ELECTRICITY,SlimefunItems.ELECTRIC_SMELTERY_2,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.POWER_CRYSTAL,SlimefunItems.DAMASCUS_STEEL_INGOT,SlimefunItems.HEATING_COIL,SlimefunItems.ELECTRIC_SMELTERY,SlimefunItems.HEATING_COIL,SlimefunItems.GILDED_IRON,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.GILDED_IRON}){
    @Override public void registerDefaultRecipes(){
    }
    @Override public int getEnergyConsumption(){
      return 20;
    }
    @Override public int getSpeed(){
      return 3;
    }
  }
.registerChargeableBlock(true,1024);
  new WitherAssembler(Categories.ELECTRICITY,SlimefunItems.WITHER_ASSEMBLER,"String_Node_Str",RecipeType.ENHANCED_CRAFTING_TABLE,new ItemStack[]{SlimefunItems.BLISTERING_INGOT_3,new ItemStack(Material.NETHER_STAR),SlimefunItems.BLISTERING_INGOT_3,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.ANDROID_MEMORY_CORE,SlimefunItems.WITHER_PROOF_OBSIDIAN,SlimefunItems.ELECTRIC_MOTOR,SlimefunItems.REINFORCED_ALLOY_INGOT,SlimefunItems.CARBONADO_EDGED_CAPACITOR}).registerChargeableBlock(true,4096);
}