Jump to content

Recommended Posts

Posted (edited)

I am trying to have my item heal when the player right clicks with it out. How should I go about this? Thank you. I realize I know how to increase the health, add a cooldown, I'm familiar with getting health, setting health. I would use itemInteractionForEntity however, I do not know how to heal without interacting with an entity which may be compromising in an intense fight. 

Edited by Justin_Perry
Posted

Item#onItemUse.

Some tips:

  Reveal hidden contents

 

Posted
  On 3/27/2019 at 11:13 PM, DavidM said:

Item#onItemUse.

Expand  
public class stimSelf extends Item implements IHasModel {
	
public stimSelf(String name) {
		
		setUnlocalizedName(name);
		setRegistryName(name);
		setCreativeTab(CreativeTabs.MISC);
		modItems.ITEMS.add(this);
	}
	
	@Override
	public void registerModels() {
		Main.proxy.registerItemRenderer(this, 0, "inventory");
	}
	
	@Override
	public ActionResult<ItemStack> onItemUse(ItemStack itemStack, World world, EntityPlayer player) {
		
		if (player.getHealth() < player.getMaxHealth()) {
			System.out.println("We healed.");
			player.setHealth(player.getHealth() + 5.0F);
			player.getCooldownTracker().setCooldown(modItems.STIM_SELF, 300);
		}else {
			System.out.println("We have not healed.");
		}
		
		return null;
	}
}

 

I have no output. Can you help?

 

Warning: The method onItemUse(ItemStack, World, EntityPlayer) of type stimSelf must override or implement a supertype method.

 

Thank you.

Posted
  On 3/27/2019 at 11:36 PM, Justin_Perry said:

Warning: The method onItemUse(ItemStack, World, EntityPlayer) of type stimSelf must override or implement a supertype method. 

Expand  

It usually means your signature doesn't match with the function you are overriding.

As a result your function doesn't get called at all.

 

Also i think your return value should be FAILED or SUCCESS.

I am not sure at the moment, look at what the parents function does.

  • Like 1
Posted
  On 3/27/2019 at 11:44 PM, Keitaro said:

It usually means your signature doesn't match with the function you are overriding.

As a result your function doesn't get called at all.

 

Also i think your return value should be FAILED or SUCCESS.

I am not sure at the moment, look at what the parents function does.

Expand  

Not very helpful.

Posted (edited)
  On 3/28/2019 at 12:03 AM, Justin_Perry said:

Not very helpful.

Expand  

... He literally just told you what is problem is and how to fix it.

 

Like what Keitaro said:

  On 3/27/2019 at 11:44 PM, Keitaro said:

It usually means your signature doesn't match with the function you are overriding.

As a result your function doesn't get called at all.

Expand  

, check your parameters. An overriding method must have the same parameters as the method it is overriding.

Edited by DavidM

Some tips:

  Reveal hidden contents

 

Posted
  On 3/28/2019 at 12:06 AM, DavidM said:

... He literally just told you what is problem is and how to fix it.

 

Check your parameters. An overriding method must have the same parameters as the method it is overriding.

Expand  

Something that may be easy for you to understand and interpret can be hard for others. I have checked my parameters. 

public class stimSelf extends Item implements IHasModel {
	
public stimSelf(String name) {
		
		setUnlocalizedName(name);
		setRegistryName(name);
		setCreativeTab(CreativeTabs.MISC);
		modItems.ITEMS.add(this);
	}
	
	@Override
	public void registerModels() {
		Main.proxy.registerItemRenderer(this, 0, "inventory");
	}
	
	@Override
	public ActionResult<ItemStack> onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int par7, float xFloat, float yFloat, float zFloat) {
		
		if (player.getHealth() < player.getMaxHealth()) {
			System.out.println("We healed.");
			player.setHealth(player.getHealth() + 5.0F);
			player.getCooldownTracker().setCooldown(modItems.STIM_SELF, 300);
			return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, stack);
		}else {
			System.out.println("We have not healed.");
			return new ActionResult<ItemStack>(EnumActionResult.FAIL, stack);
		}
		
	
	}
}

You tell me.

Posted (edited)
  On 3/28/2019 at 12:15 AM, Justin_Perry said:

Something that may be easy for you to understand and interpret can be hard for others

Expand  

"Overriding" is basic java knowledge; you are expected to know it according to the forum rules.

 

  On 3/28/2019 at 12:15 AM, Justin_Perry said:

You tell me.

Expand  

Since you did not specify the version of Minecraft you are modding for, I'm going to assume it's 1.12.2.

Item#onItemUse is defined as:

public EnumActionResult onItemUse (EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)

Well as you can see:

  • "EnumActionResult" is not spelt "ActionResult<ItemStack>"
  • "EntityPlayer" is not spelt "ItemStack"
  • "BlockPos" is not spelt "int"

Therefore, you are creating a new method instead of overriding an existing one.

 

As a general suggestion, you should always use your IDE to do the overriding for you instead of manually typing it out.

Edited by DavidM

Some tips:

  Reveal hidden contents

 

Posted
  On 3/28/2019 at 12:58 AM, DavidM said:

"Overriding" is basic java knowledge; you are expected to know it according to the forum rules.

 

Since you did not specify the version of Minecraft you are modding for, I'm going to assume it's 1.12.2.

Item#onItemUse is defined as:

public EnumActionResult onItemUse (EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)

Well as you can see:

  • "EnumActionResult" is not spelt "ActionResult<ItemStack>"
  • "EntityPlayer" is not spelt "ItemStack"
  • "BlockPos" is not spelt "int"

As a general suggestion, you should always use your IDE to do the overriding for you instead of manually typing it out.

Expand  

Alright, thank you for nothing. I will figure everything else I'll need to make this mod by myself or by reading. Thanks

Posted (edited)
  On 3/28/2019 at 1:04 AM, Justin_Perry said:

Alright, thank you for nothing. I will figure everything else I'll need to make this mod by myself or by reading. Thanks

Expand  

You won't get far without the understanding of basic java.

As a general suggestion, learn java before making a mod.

Edited by DavidM
  • Sad 1

Some tips:

  Reveal hidden contents

 

Posted
  On 3/28/2019 at 1:06 AM, DavidM said:

I doubt you will get anywhere without the understanding of basic java.

As a general suggestion, learn java before making a mod.

Expand  

I would rather have a lesser understanding of java on my own than continue to be ridiculed. I searched high and low on information on onItemUse, while your eventual solution may have worked, you have made me really discouraged from asking for more help. I haven't learned everything in Java, no. But I do know how to make classes, variables, functions, and a bit more. Again, I appreciate your help, but you are not a nice person. Please refrain from talking to me anymore.

Posted

Telling you that we expect you to have a working knowledge of the language you are using is not ridicule.

If Java is the first programming language you are learning, I'm afraid learning through Minecraft modding is about the worst way to go about it, please see if you can take an online course or something.

This is my Forum Signature, I am currently attempting to transform it into a small guide for fixing easier issues using spoiler blocks to keep things tidy.

 

As the most common issue I feel I should put this outside the main bulk:

The only official source for Forge is https://files.minecraftforge.net, and the only site I trust for getting mods is CurseForge.

If you use any site other than these, please take a look at the StopModReposts project and install their browser extension, I would also advise running a virus scan.

 

For players asking for assistance with Forge please expand the spoiler below and read the appropriate section(s) in its/their entirety.

  Reveal hidden contents

 

Posted
  On 3/28/2019 at 1:31 AM, DaemonUmbra said:

Telling you that we expect you to have a working knowledge of the language you are using is not ridicule.

If Java is the first programming language you are learning, I'm afraid learning through Minecraft modding is about the worst way to go about it, please see if you can take an online course or something.

Expand  

Telling me I don't know how to override is a complete insult. I have at least an item that heals others. I obviously had to override to do that. The issue is mostly the lack of forge documentation for low-level modders to look into. I have learned Python, taken C++ courses, and learned a moderate amount of Java.

Posted

Where did you get the method/function signature for onItemUse, did you copy it from a tutorial or from the base/super class?

This is my Forum Signature, I am currently attempting to transform it into a small guide for fixing easier issues using spoiler blocks to keep things tidy.

 

As the most common issue I feel I should put this outside the main bulk:

The only official source for Forge is https://files.minecraftforge.net, and the only site I trust for getting mods is CurseForge.

If you use any site other than these, please take a look at the StopModReposts project and install their browser extension, I would also advise running a virus scan.

 

For players asking for assistance with Forge please expand the spoiler below and read the appropriate section(s) in its/their entirety.

  Reveal hidden contents

 

Posted
  On 3/28/2019 at 1:50 AM, DaemonUmbra said:

Where did you get the method/function signature for onItemUse, did you copy it from a tutorial or from the base/super class?

Expand  

I was googling what other people used to execute a function when an item was right clicked. I found some old information and tried to incorporate it in 1.12. Apparently, it did not work. I found a youtube video that used the ActionResult<ItemStack> other than that, I was at a loss. I found no information that would have lead me to EnumActionResult. I have since implemented what DavidM suggested and it works. 

Posted

You looked at random people's code for answers before looking at the class you were extending?

This is my Forum Signature, I am currently attempting to transform it into a small guide for fixing easier issues using spoiler blocks to keep things tidy.

 

As the most common issue I feel I should put this outside the main bulk:

The only official source for Forge is https://files.minecraftforge.net, and the only site I trust for getting mods is CurseForge.

If you use any site other than these, please take a look at the StopModReposts project and install their browser extension, I would also advise running a virus scan.

 

For players asking for assistance with Forge please expand the spoiler below and read the appropriate section(s) in its/their entirety.

  Reveal hidden contents

 

Posted

And you chose to not look directly at the class and method you were overriding for the method signature, then got confused when you got the error that your override didn't work.

This is my Forum Signature, I am currently attempting to transform it into a small guide for fixing easier issues using spoiler blocks to keep things tidy.

 

As the most common issue I feel I should put this outside the main bulk:

The only official source for Forge is https://files.minecraftforge.net, and the only site I trust for getting mods is CurseForge.

If you use any site other than these, please take a look at the StopModReposts project and install their browser extension, I would also advise running a virus scan.

 

For players asking for assistance with Forge please expand the spoiler below and read the appropriate section(s) in its/their entirety.

  Reveal hidden contents

 

Posted (edited)

1.

  On 3/28/2019 at 1:35 AM, Justin_Perry said:

Telling me I don't know how to override is a complete insult. I have at least an item that heals others. I obviously had to override to do that.

Expand  
  On 3/27/2019 at 11:36 PM, Justin_Perry said:

I have no output. Can you help?

 

Warning: The method onItemUse(ItemStack, World, EntityPlayer) of type stimSelf must override or implement a supertype method.

Expand  

Your problem is caused by not (fully) knowing how overriding works, or else this error won’t occur.

The IDE is telling you "hey this method does not exist in the parent class", therefore you should make sure your method matches the method in the superclass.

 

2. Always look at the source code first, as the source code is definitely updated and functional, whereas answers on the internet can be old and not fitted to use in the current version.

Edited by DavidM

Some tips:

  Reveal hidden contents

 

Posted

If you know about

  On 3/28/2019 at 1:11 AM, Justin_Perry said:

functions

Expand  

you should really, really already know about overriding. Unless you meant methods, in which case overriding should probably be the next thing you learn.

About Me

  Reveal hidden contents

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Posted
  On 3/28/2019 at 1:35 AM, Justin_Perry said:

Telling me I don't know how to override is a complete insult.

Expand  

We have 4 people so far telling you that you should know how to override. All of them are more experienced than you at java from what we've seen so far. If you don't want to learn the java, we are no help to you until you know at least the basics.

  On 3/28/2019 at 12:03 AM, Justin_Perry said:

Not very helpful.

Expand  

 

  On 3/28/2019 at 12:06 AM, DavidM said:

... He literally just told you what is problem is and how to fix it.

Expand  

The post could have been ended right then and there if you knew how to override.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Recovering stolen Bitcoin can feel like an insurmountable challenge, especially after falling victim to scams that promise high returns with little investment. My journey began with excitement when I first learned about Bitcoin mining pools. The idea of earning substantial profits from a modest investment was enticing. I was encouraged to invest $5,200, and soon found myself caught in a web of endless demands for more money to access my funds. As time went on, I paid out hundreds of thousands of dollars, believing that each payment would finally unlock my investments. However, the requests never ceased, and I soon realized I was trapped in a scam. The weight of losing $826,000 worth of Bitcoin was unbearable, and I felt utterly helpless. I reached out to authorities, but their responses were disheartening, leaving me feeling even more isolated in my struggle. In my desperation, I even went to pray, seeking guidance and hope in what felt like a hopeless situation. I poured my heart out, asking for a sign or a way to recover my lost funds. It was during this time of reflection that I began searching for solutions online, hoping to find a way to recover my investments. That’s when I stumbled upon RAPID DIGITAL RECOVERY. At first, I was cynical after all, I had already been deceived so many times. However, I decided to reach out and share my story. The team at RAPID DIGITAL RECOVERY was understanding and compassionate, assuring me they had the expertise to help me recover my stolen Bitcoin. Within hours of providing them with the necessary information, I began to see progress. They guided me through the recovery process, keeping me informed every step of the way. It was surreal to watch as they worked diligently to trace my funds and navigate the complexities of the blockchain. To my astonishment, I received confirmation that my Bitcoin had been successfully recovered. The relief and joy I felt were indescribable. I had almost given up hope, but RAPID DIGITAL RECOVERY proved to be the lifeline I desperately needed. If you find yourself in a similar situation, I urge you to seek help from Reputable team at RAPID DIGITAL RECOVERY.  
    • https://mclo.gs/9Byd16j Hi, I've had my BetterMC world for a couple days now (1.19.2 vers & Fabric loader) but recently whenever I try to open the profile the minecraft launcher crashes and provides this error code. I've checked both this forum and google and haven't found any similar problems or solution to my problem. I'm not the best at reading crash logs but I gathered that there's an issue with fabric possibly, so I re-downloaded the same one on the modpack, then the latest version for 1.19.2 fabric and the issue still occurred. What can I do now?
    • it works now but idk why lmao. i removed terrablender and it didnt work. i then left it for a couple of days and, when i came back, updated the mods that needed updating because "what's the worst that could happen". i then tried launching it and now it works. i genuenly have no clue what i did to make it work, othen than updating the mods. so, thanks for your help
    • Add the crash-report or latest.log (logs-folder) with sites like https://mclo.gs/ and paste the link to it here  
  • Topics

×
×
  • Create New...

Important Information

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