mrkirby153

Untitled

Jan 10th, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. package me.mrkirby153.KCNerfer.recipie;
  2.  
  3. import me.mrkirby153.KCNerfer.KCNerfer;
  4. import net.minecraft.entity.player.EntityPlayer;
  5. import net.minecraft.init.Items;
  6. import net.minecraft.inventory.InventoryCrafting;
  7. import net.minecraft.item.ItemStack;
  8. import net.minecraft.world.World;
  9. import net.minecraftforge.oredict.ShapedOreRecipe;
  10.  
  11. import java.lang.reflect.Field;
  12.  
  13. public class CustomOreRecipe extends ShapedOreRecipe {
  14.  
  15. private static Field outputField;
  16. private static Field inputField;
  17. private static Field widthField;
  18. private static Field heightField;
  19. private static Field mirroredField;
  20.  
  21. public CustomOreRecipe(ShapedOreRecipe recipe) {
  22. super(new ItemStack(Items.stick), "X", "X", "X", 'X', Items.stick);
  23. try {
  24. Class shapedRecipieClass = recipe.getClass();
  25. if (outputField == null)
  26. outputField = shapedRecipieClass.getDeclaredField("output");
  27. if (!outputField.isAccessible())
  28. outputField.setAccessible(true);
  29. outputField.set(outputField, this);
  30.  
  31. if(inputField == null)
  32. inputField = shapedRecipieClass.getDeclaredField("input");
  33. if(!inputField.isAccessible())
  34. inputField.setAccessible(true);
  35. inputField.set(inputField, this);
  36.  
  37. if(widthField == null)
  38. widthField = shapedRecipieClass.getDeclaredField("width");
  39. if(!widthField.isAccessible())
  40. widthField.setAccessible(true);
  41. widthField.set(widthField, this);
  42.  
  43. if(heightField == null)
  44. heightField = shapedRecipieClass.getDeclaredField("height");
  45. if(!heightField.isAccessible())
  46. heightField.setAccessible(true);
  47. heightField.set(heightField, this);
  48.  
  49. if(mirroredField == null)
  50. mirroredField = shapedRecipieClass.getDeclaredField("mirrored");
  51. if(!mirroredField.isAccessible())
  52. mirroredField.setAccessible(true);
  53. mirroredField.set(mirroredField, this);
  54. } catch (Exception e) {
  55. e.printStackTrace();
  56. }
  57.  
  58. }
  59.  
  60. public CustomOreRecipe(ItemStack result, Object... recipe) {
  61. super(result, recipe);
  62. }
  63.  
  64. @Override
  65. public boolean matches(InventoryCrafting inv, World world) {
  66. // Check the player first
  67. EntityPlayer player = KCNerfer.findPlayer(inv);
  68. if(RecipeHandler.isDisabled(super.getRecipeOutput().getItem(), player)){
  69. return false;
  70. }
  71. return super.matches(inv, world);
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment