Solved Help with custom recipes

Discussion in 'Plugin Development' started by TGRHavoc, Apr 2, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    TGRHavoc

    I have a piece of code that creates custom recipes for "special" items in game... However, when i craft them I don't get the "special" item.

    Code:java
    1.  
    2. public void onEnable(){
    3. config.addDefault("Staff.Regen.Uses", 5);
    4. config.addDefault("Staff.Swift.Uses", 5);
    5. config.addDefault("Staff.FireRes.Uses", 5);
    6. config.addDefault("Staff.Speed.Uses", 5);
    7. config.addDefault("Staff.Health.Uses", 5);
    8. config.addDefault("UsesPerStaff", 5);
    9. config.options().copyDefaults(true);
    10. saveConfig();
    11.  
    12. this.loreNames.add(ChatColor.GREEN + "Uses Remaining:");
    13. this.loreNames.add(ChatColor.RED +""+ getConfig().getInt("UsesPerStaff"));
    14.  
    15. ItemStack regenStick = new ItemStack(Material.STICK, 1);
    16. ItemMeta imR = regenStick.getItemMeta();
    17. imR.setLore(loreNames);
    18. regenStick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
    19. imR.setDisplayName(ChatColor.LIGHT_PURPLE + "Regeneration Staff" ); //+ ChatColor.GREEN+"(" + config.getInt("Staff.Regen.Uses") + ")"
    20. regenStick.setItemMeta(imR);
    21.  
    22. ShapedRecipe regenStaff = new ShapedRecipe(regenStick);
    23. regenStaff.shape(new String[]{"XXX", "XGX","XSX"}).setIngredient('X', Material.AIR).setIngredient('S', Material.STICK).setIngredient('G', Material.GHAST_TEAR);
    24.  
    25. Bukkit.getServer().addRecipe(regenStaff);
    26.  
    27. Bukkit.getLogger().info("Created the regen staff recipe");
    28.  
    29. ItemStack swiftStick = new ItemStack(Material.STICK, 1);
    30. ItemMeta imS = swiftStick.getItemMeta();
    31. swiftStick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
    32. imS.setLore(loreNames);
    33. imS.setDisplayName(ChatColor.LIGHT_PURPLE + "Swiftness Staff"); // + ChatColor.GREEN+"(" + config.getInt("Staff.Swift.Uses") + ")"
    34. regenStick.setItemMeta(imS);
    35.  
    36. ShapedRecipe swiftStaff = new ShapedRecipe(swiftStick);
    37. swiftStaff.shape(new String[]{"XXX", "XGX", "XSX"});
    38. swiftStaff.setIngredient('X', Material.AIR);
    39. swiftStaff.setIngredient('S', Material.STICK);
    40. swiftStaff.setIngredient('G', Material.SUGAR);
    41.  
    42. Bukkit.getServer().addRecipe(swiftStaff);
    43.  
    44. Bukkit.getLogger().info("Created swift staff recipe");
    45.  
    46. ItemStack fireStick = new ItemStack(Material.STICK, 1);
    47. fireStick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
    48. ItemMeta imF = fireStick.getItemMeta();
    49. imF.setLore(loreNames);
    50. imF.setDisplayName(ChatColor.LIGHT_PURPLE + "Swiftness Staff" );// + ChatColor.GREEN+"(" + config.getInt("Staff.FireRes.Uses") + ")"
    51. regenStick.setItemMeta(imF);
    52.  
    53. ShapedRecipe fireStaff = new ShapedRecipe(fireStick);
    54. fireStaff.shape(new String[]{"XXX", "XGX", "XSX"});
    55. fireStaff.setIngredient('X', Material.AIR);
    56. fireStaff.setIngredient('S', Material.STICK);
    57. fireStaff.setIngredient('G', Material.MAGMA_CREAM);
    58.  
    59. Bukkit.getServer().addRecipe(fireStaff);
    60. Bukkit.getLogger().info("Created fireRes staff recipe");
    61.  
    62. ItemStack strengthStick = new ItemStack(Material.STICK, 1);
    63. ItemMeta imSt = strengthStick.getItemMeta();
    64. strengthStick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
    65. imSt.setLore(loreNames);
    66. imSt.setDisplayName(ChatColor.LIGHT_PURPLE + "Swiftness Staff"); // + ChatColor.GREEN+"(" + config.getInt("Staff.Strength.Uses") + ")"
    67. regenStick.setItemMeta(imSt);
    68.  
    69. ShapedRecipe strengthStaff = new ShapedRecipe(strengthStick);
    70. strengthStaff.shape("XXX", "XGX", "XSX");
    71. strengthStaff.setIngredient('X', Material.AIR).setIngredient('S', Material.STICK).setIngredient('G', Material.BLAZE_POWDER);
    72.  
    73. Bukkit.getServer().addRecipe(strengthStaff);
    74.  
    75. Bukkit.getLogger().info("Created recipe for strength staff ");
    76.  
    77. Bukkit.getPluginManager().registerEvents(new Events(this), this);
    78. }
    79.  


    Can someone please tell my when the recipe isn't being triggered?
     
  2. Offline

    TGRHavoc

    Ok, I've figured it out.... So apparently you cannot set a material to AIR to be used in a crafting recipe as AIR is impossible to get.
     
  3. Offline

    Code0

    Then what do you have to set it to?
     
  4. Offline

    TGRHavoc

    Nothing, just don't set the recipe at all!

    An Example:
    Code:java
    1.  
    2. ItemStack swiftStick = new ItemStack(Material.STICK, 1);
    3. ItemMeta imS = swiftStick.getItemMeta();
    4. imS.setLore(loreNames);
    5. imS.setDisplayName(ChatColor.LIGHT_PURPLE + "Swiftness Staff");
    6.  
    7. swiftStick.setItemMeta(imS);
    8.  
    9. ShapedRecipe swiftStaff = new ShapedRecipe(swiftStick);
    10. swiftStaff.shape(new String[]{"XXX", "XGX", "XSX"});
    11. swiftStaff.setIngredient('S', Material.STICK);
    12. swiftStaff.setIngredient('G', Material.SUGAR);
    13.  
    14. Bukkit.getServer().addRecipe(swiftStaff);
    15.  
     
Thread Status:
Not open for further replies.

Share This Page