Jump to content

Recommended Posts

Posted

Hello!

    My name is Ablaze. I'm relatively new to Forge modding, but I'm doing my best. I want to add a potion effect to a food item. If it helps, I follow Wuppy29's tutorials.

 

Here is my Tutorial.java

 

package tutorial;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import net.minecraft.potion.Potion;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(modid = Tutorial.modid, name = "Tutorial Mod", version = "1.0")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class Tutorial {
public static final String modid = "AblazeTheBest_TutorialMod";

public static Block fieryIndestuctibleBlock;

public static Item fieryFood; 
@EventHandler
public void load(FMLInitializationEvent event)
{
	fieryIndestuctibleBlock = new BlockTutorialBlock(500, Material.rock).setUnlocalizedName("fieryIndestuctibleBlock");
	GameRegistry.registerBlock(fieryIndestuctibleBlock, modid + fieryIndestuctibleBlock.getUnlocalizedName().substring(5));
	LanguageRegistry.addName(fieryIndestuctibleBlock, "Fiery Indestructible Block");

	fieryFood = new ItemTutorial(5000, 3, 12.0f, false).setUnlocalizedName("fieryFood").setPotionEffect(Potion.fireResistance, 30, 0, 1.0F);
	GameRegistry.registerItem(fieryFood, modid + fieryFood.getUnlocalizedName().substring(5));
	LanguageRegistry.addName(fieryFood, "Fiery Food");
}
}

 

This is the line with the error:-

fieryFood = new ItemTutorial(5000, 3, 12.0f, false).setUnlocalizedName("fieryFood").setPotionEffect(Potion.fireResistance, 30, 0, 1.0F);

 

The error is:-

The method setPotionEffect(String) in the type Item is not applicable for the arguments (Potion, int, int, float)

 

BlockTutorialBlock.java:-

 

package tutorial;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockTutorialBlock extends Block{

public BlockTutorialBlock(int id, Material material) {
	super(id, material);
	this.setCreativeTab(CreativeTabs.tabBlock);
	this.setHardness(2.0f);
	this.setResistance(18000000.0f);
}

@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister par1IconRegister)
{
	this.blockIcon = par1IconRegister.registerIcon(Tutorial.modid + ":" + (this.getUnlocalizedName().substring(5)));
}

}

 

ItemTutorial.java:-

 

package tutorial;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemFood;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class ItemTutorial extends ItemFood{

public ItemTutorial(int id, int hunger, float saturation, boolean wolfFood) {
	super(id, hunger, saturation, wolfFood);
	this.setCreativeTab(CreativeTabs.tabFood);
}

@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister par1IconRegister)
{
	this.itemIcon = par1IconRegister.registerIcon(Tutorial.modid + ":" + (this.getUnlocalizedName().substring(5)));
}

}

 

What I want it to do:Add Fire Resistance to the item Fiery Food.

What it is doing:Giving an error saying

The method setPotionEffect(String) in the type Item is not applicable for the arguments (Potion, int, int, float)

 

Please reply.

 

Regards,

Ablaze.

 

 

 

Add me on Skype: AblazeTheBest. Send a message saying "#HeyAblaze"

 

Currently: Making a mod!

Posted

The method setPotionEffect(String) in the type Item is not applicable for the arguments (Potion, int, int, float)

Translation:

You are using wrong arguments in setPotionEffect(arguments).

You can only use a String with this method.

Posted

What I did in my mod was put

 

 

this.setPotionEffect(Potion.confusion.id, 100, 0, 1.0F); //potion effect, duration, effect level, probability of effect (1.0F = always, 0.0F = never)

 

 

in the same area you put

 

 

super(id, hunger, saturation, wolfFood);

this.setCreativeTab(CreativeTabs.tabFood);

 

 

so I advise trying

 

 

public ItemTutorial(int id, int hunger, float saturation, boolean wolfFood) {

super(id, hunger, saturation, wolfFood);

this.setCreativeTab(CreativeTabs.tabFood);

                this.setPotionEffect(Potion.fireResistance.id, 100, 0, 1.0F); //potion effect, duration, effect level, probability of effect (1.0F = always, 0.0F = never)

}

Posted

DerpenWolf's way does work but only for one effect (From my own experience). If you want the food to give you more than one you'd have to have the onFoodEaten method and add your effects there.

Posted

Thanks a lot for the quick reply guys! I solved the problem on my own. This was the problem- there is a setPotionEffect method in the Item class. That one uses a string. There is a setPotionEffect method in the ItemFood class, which uses int, int, int float. I was trying to use the latter, but java for some reason was using the former. This is how I fixed the code, for anyone else having the same problem, for later reference.

 

fieryFood = new ItemTutorial(5000, 3, 12.0f, false).setPotionEffect(Potion.fireResistance.id, 5, 0, 0.9f);
fieryFood.setUnlocalizedName("fieryFood");

 

Thanks a lot,

Ablaze.

 

P.S. Locking the topic.

Add me on Skype: AblazeTheBest. Send a message saying "#HeyAblaze"

 

Currently: Making a mod!

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Sorry for the late response, but the game opened and I made a world but it's stuck at 0% Here's the latest.log https://mclo.gs/peEb1R8 I disabled The Factory Must Grow and soulsweapons
    • Hey everyone! Two of my friends downloaded this modpack and are having an issue with the blocks loading in correctly. Grass looks like bamboo, waystones look like two barrels stacked on eachother, and wheat looks like water and stairs. What is this problem? How can we fix it? Neither of my other friends or myself had this issue. 
    • I removed Yung's cave biome mod and It wasnt in one of those biomes however the log file said the same line (([25Apr2025 21:20:15.500] [Flywheel Task Executor #5/WARN] [Embeddium-MixinTaintDetector/]: Mod(s) [oculus] are modifying Embeddium class me.jellysquid.mods.sodium.client.render.vertex.serializers.VertexSerializerRegistryImpl, which may cause instability.))
    • Note: i had a couple of ideas, but i just don't know how to execute them. The main idea was to make the new block (let's exemplify with a mixer) be essentially a clone of the mechanical mixer (different texture tho) that would have a different recipe type (instead of mixing, advanced_mixing) and i would copy all the create mod recipes and edit the processing time while also adding the tier dependent ones.
    • Hi! Before everything, thank you for even reading. I'm coming here in need of help making a few aspects for a create mod addon. It's an addon that aims to add almost the full periodic table with realistic ways of obtaining all the elements and capability of almost full automation. For what purpose? A techy armor and to go to the moon and rocky planets of the solar system. It'll have 3 different tiers of machines (mixer, millstone, crushing wheels): basic (just the normal create mod machines but renamed), advanced (25% faster and has recipes only possible for this tier and above) end elite (75% faster than basic and recipes only available for this tier). The problem is, I'm not a coder. I know less than the basics. I know how to do everything else but these machine tiers and i need some help if you can.
  • Topics

×
×
  • Create New...

Important Information

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