Jump to content

[1.7.10] I'm trying get minecraft to register a Recipe with a var. CRASH


RoBoLilly
 Share

Recommended Posts

I'm trying get minecraft to register a Recipe with a var and it just keeps Crashing. I've been looking for a way to do this. Also this is my first time posting like this. Let me know If there is a better place for me to post questions like this.

 

This is my code.

 

package com.violet.violetmod;
import [ ... ]

@Mod(modid = VioletMod.MODID, version = VioletMod.VERSION)
public class VioletMod{

public static final String MODID = "violetMod";
public static final String VERSION = "0.1 Alpha";

public static Item violetShard;

public String coalNum = "Items.coal";


@EventHandler
public void init(FMLInitializationEvent event)
{
violetShard = new VioletShard().setUnlocalizedName("violetShard");
GameRegistry.registerItem(violetShard, violetShard.getUnlocalizedName().substring(5));

    	for(int i=1; i<9; i++){
    		coalNum = "Items.coal";
    		for(int r=1; r<i; r++){
    			coalNum = coalNum + ", Items.coal";
    		}
    		System.out.println(coalNum);
    	}

GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1), VioletMod.violetShard, coalNum);

}

}

 

I did cut out a large amount of code just to make it easier to troubleshoot.

Link to comment
Share on other sites

Not completely sure, but I don't think you can use a string as an argument for a crafting recipe. I think that if you made coalNum an Item and set it to Items.coal, it'd work.

public Item coalNum = Items.coal;

should work.

 

EDIT: And that for loop thing won't work either as far as I know.

I'll put something here when I have something of value I need to put at the end of every post. For now it's this mostly pointless text.

Link to comment
Share on other sites

realy what I'm trying to do is not this 256 times.

 

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 1), VioletMod.violetShard, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 2), VioletMod.violetShard, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 3), VioletMod.violetShard, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 4), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 5), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 6), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 7), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 8), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 2), VioletMod.violetShard,1, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 3), VioletMod.violetShard,1, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 4), VioletMod.violetShard,1, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 5), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 6), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 7), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 8), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum);

    GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 9), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum);

Link to comment
Share on other sites

The last parameter of ItemStack is the damage value, not the stack size - do you have different item subtypes?

 

If not, and you just want one item per coal, i.e. 1 coal = 1 shard, 2 coals = 2 shards, etc., then all you need is to register the first recipe:

GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard), VioletMod.violetShard, Items.coal);

Then the player just clicks away and voilá, they have tons of shards.

Link to comment
Share on other sites

I do have subtypes

Well you can't very well have every single subtype crafted in exactly the same way - if I put in one shard and one coal, what type of shard do I get back? Does the recipe require the same type of shard as input?

 

Then you can just loop through the subtypes and add the one recipe for each:

for (int i = 0; i < numSubtypes; ++i) {
ItemStack stack = new ItemStack(shard, 1, i); // shard of appropriate subtype
GameRegistry.addShapelessRecipe(stack, stack, Items.coal); // combining the shard with coal gives you... itself?
}

You're going to have to explain exactly what you are trying to do - what items combined give what item?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.