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

    • Cracked Launchers are not supported
    • Hi, I have a problem in minecraft java (only in forge 1.20.1), When I start the game after a moment the game crashed with code 1 this only in forge 1.20.1 , I tried to reinstall java, Upgrade java to 17, update the drivers to the latest version, downgrade the drivers to the pervious version, deleting .minecraft and reinstall it , but none of these ways working.   here is the log:   [Launcher] Launching Minecraft... I'm hiding! mods after C:\Users\Windows\AppData\Roaming\.minecraft\mods\tl_skin_cape_forge_1.20_1.20.1-1.32.jar [InnerMinecraftServersImpl]  search changers of the servers read servers from servers.dat [] [InnerMinecraftServersImpl]  prepare inner servers save servers to servers.dat [Launcher] Game skin type: TLAUNCHER [Launcher] Starting Minecraft Forge 1.20.1... [Launcher] Launching in: C:\Users\Windows\AppData\Roaming\.minecraft Starting garbage collector: 96 / 227 MB Garbage collector completed: 60 / 214 MB [Launcher] Processing post-launch actions. Assist launch: true =============================================================================================== [05:29:03] [main/INFO]: ModLauncher running: args [--username, *********, --version, Forge 1.20.1, --gameDir, C:\Users\Windows\AppData\Roaming\.minecraft, --assetsDir, C:\Users\Windows\AppData\Roaming\.minecraft\assets, --assetIndex, 5, --uuid, *************************************, --accessToken, вќ„вќ„вќ„вќ„вќ„вќ„вќ„вќ„, --clientId, null, --xuid, null, --userType, mojang, --versionType, modified, --width, 925, --height, 530, --launchTarget, forgeclient, --fml.forgeVersion, 47.3.22, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [05:29:04] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.12 by Oracle Corporation; OS Windows 10 arch amd64 version 10.0 [05:29:15] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [05:29:24] [main/INFO]: Trying GL version 4.6 [05:29:60] [main/INFO]: Requested GL version 4.6 got version 4.6 [05:29:67] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Windows/AppData/Roaming/.minecraft/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT FATAL ERROR in native method: Thread[pool-2-thread-1,5,main]: No context is current or a function that is not available in the current context was called. The JVM will abort execution.     at org.lwjgl.opengl.GL11C.nglGetString(org.lwjgl.opengl@3.3.1+7/Native Method)     at org.lwjgl.opengl.GL11C.glGetString(org.lwjgl.opengl@3.3.1+7/GL11C.java:978)     at net.minecraftforge.fml.earlydisplay.DisplayWindow.initRender(fmlearlydisplay@1.20.1-47.3.22/DisplayWindow.java:209)     at net.minecraftforge.fml.earlydisplay.DisplayWindow.lambda$start$5(fmlearlydisplay@1.20.1-47.3.22/DisplayWindow.java:292)     at net.minecraftforge.fml.earlydisplay.DisplayWindow$$Lambda$437/0x000001fab120a618.run(fmlearlydisplay@1.20.1-47.3.22/Unknown Source)     at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.12/Executors.java:539)     at java.util.concurrent.FutureTask.run(java.base@17.0.12/FutureTask.java:264)     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.12/ScheduledThreadPoolExecutor.java:304)     at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1136)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)     at java.lang.Thread.run(java.base@17.0.12/Thread.java:842) Here I am! [VersionManager] Refreshing versions locally... [VersionManager] Versions has been refreshed (6 ms) [Launcher] Launcher exited. [Launcher] Minecraft closed with exit code: 1 flush now [Launcher] [Crash] Signature "Bad video drivers" matches! [Crash] Signature "Bad video drivers" matches! [Launcher] [Crash] Crash has been recognized! [Crash] Crash has been recognized! flush now
    • 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
  • Topics

×
×
  • Create New...

Important Information

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