Jump to content

Recommended Posts

Posted
Implicit super constructor ItemTool() is undefined for default constructor. Must define an explicit constructor

This error pops up in this code:

public class ItemStrangeTool extends ItemTool {

	protected ItemStrangeTool(float attackDamageIn, float attackSpeedIn, ToolMaterial materialIn,
			Set<Block> effectiveBlocksIn) {
		super(attackDamageIn, attackSpeedIn, materialIn, effectiveBlocksIn);

	}

}

How do I fix this?

Posted

Where is your 'new' expression, where you try to create an instance? Did you supply arguments?

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted
  On 4/19/2017 at 5:55 PM, 1BowTiesAreCool1 said:

I don't know...

Expand  

What's your XP level writing Java? Using other O-O languages?

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted
package bowtiesarecool.coulored_lights.init;

import bowtiesarecool.coulored_lights.items.ItemStrangeDust;
import bowtiesarecool.coulored_lights.items.ItemStrangeTool;
import bowtiesarecool.coulored_lights.items.ItemWork;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModItems {
	
	public static Item work;
	public static Item strange_dust;
	public static Item strange_tool;
	
	public static void Init(){
		work = new ItemWork();
		strange_dust = new ItemStrangeDust();
		strange_tool = new ItemStrangeTool();
	}
	
	public static void register() {
		GameRegistry.register(work);
		GameRegistry.register(strange_dust);
		GameRegistry.register(strange_tool);
	}
	
	public static void registerRenders() {
		registerRender(work);
		registerRender(strange_dust);
		registerRender(strange_tool);
	}
	
	private static void registerRender(Item item) {
		Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
	}
}

The error occurs in

strange_tool = new ItemStrangeTool();

 

Posted

You're getting an error because you're missing an argument in the statement new ItemStrangeTool(). You have to pass it a float, a float, a ToolMaterial, and a Set<Block>. 

 

Is ItemStrangeTool supposed to be a multitool?

Posted
  On 4/20/2017 at 5:30 PM, 1BowTiesAreCool1 said:

private static void registerRender(Item item) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory")); }

Expand  

I would suggest to add this little line of code above this method to ensure that it doesn't cause trouble on servers: @SideOnly(Side.CLIENT)

Besides of that, I would really suggest you to learn Java as diesieben07 already told you. ;)

It will really help you with modding.

Developer of Primeval Forest.

Posted
  On 4/19/2017 at 7:57 PM, 1BowTiesAreCool1 said:

None, I'm completely new

Expand  

Aha... Forge modding is a bad place to cut your programming milk teeth. That and this forum assumes Java proficiency so it can focus on the idiosyncrasies of Forge and Minecraft (which is plenty).

 

Please take at least one formal programming class that teaches an object-oriented language, and then study Java (e.g. read a book). You can do both at once if you can find a Java class.

 

When you come back in a few months, keep an online Java reference bookmark handy, and consult it on every mystery error before posting here.

  • Like 1

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted
  On 4/20/2017 at 7:11 PM, 1BowTiesAreCool1 said:

I'm only in eight grade so there are no classes I can take:(

Expand  

Ah, but you're close. Talk to an advisor before the end of the year. You may discover that there are opportunities that are not widely advertised. Find out what your school (or next year's school, or summer programs) can do for you.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted

My school can't do anything, so that's a downside. And I haven't heard about any kind of summer programs in my town, only summer school, which doesn't offer any programming as far as I know. I also begin in gymnasium(the swedish version of high school) in tenth grade. I'd love to learn it now and not wait until gymnasium.

Posted (edited)

In that case, team up with someone (friend, family member, friend's older sibling...) who has some programming experience. The help you need is more comprehensive and foundational than this forum's focus. In other words, you're missing a prerequisite for this course.

Edited by jeffryfisher

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted
  On 4/21/2017 at 3:27 PM, 1BowTiesAreCool1 said:

My school can't do anything, so that's a downside. And I haven't heard about any kind of summer programs in my town, only summer school, which doesn't offer any programming as far as I know. I also begin in gymnasium(the swedish version of high school) in tenth grade. I'd love to learn it now and not wait until gymnasium.

Expand  

If you want to learn it now and don't have any one to teach it to you etc., I would recommend you reading books and watching videos (if you can find some good videos). But even then, it takes a lot of time and research over the internet and self-training (and takes probably longer than with a good teacher).

 

Book I learned with:

  Reveal hidden contents

 

Developer of Primeval Forest.

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

    • Hi everyone, I'm currently developing a Forge 1.21 mod for Minecraft and I want to display a custom HUD overlay for a minigame. My goal: When the game starts, all players should see an item/block icon (from the base game, not a custom texture) plus its name/text in the HUD – similar to how the bossbar overlay works. The HUD should appear centered above the hotbar (or at a similar prominent spot), and update dynamically (icon and name change as the target item changes). What I've tried: I looked at many online tutorials and several GitHub repos (e.g. SeasonHUD, MiniHUD), but most of them use NeoForge or Forge versions <1.20 that provide the IGuiOverlay API (e.g. implements IGuiOverlay, RegisterGuiOverlaysEvent). In Forge 1.21, it seems that neither IGuiOverlay nor RegisterGuiOverlaysEvent exist anymore – at least, I can't import them and they are missing from the docs and code completion. I tried using RenderLevelStageEvent as a workaround but it is probably not intended for custom HUDs. I am not using NeoForge, and switching the project to NeoForge is currently not an option for me. I tried to look at the original minecraft source code to see how elements like hearts, hotbar etc are drawn on the screen but I am too new to Minecraft modding to understand. What I'm looking for: What is the correct way to add a custom HUD element (icon + text) in Forge 1.21, given that the previous overlay API is missing? Is there a new recommended event, callback, or method in Forge 1.21 for custom HUD overlays, or is everyone just using a workaround? Is there a minimal open-source example repo for Forge 1.21 that demonstrates a working HUD overlay without relying on NeoForge or deprecated Forge APIs? My ideal solution: Centered HUD element with an in-game item/block icon (from the base game's assets, e.g. a diamond or any ItemStack / Item) and its name as text, with a transparent background rectangle. It should be visible to the players when the mini game is running. Easy to update the item (e.g. static variable or other method), so it can change dynamically during the game. Any help, code snippets, or up-to-date references would be really appreciated! If this is simply not possible right now in Forge 1.21, it would also help to know that for sure. Thank you very much in advance!
    • The simple answer is there is not an easy way. You would need to know how to program in Java, as well as at least some familiarity with how Forge works so you could port the differences. You would also need the sourcecode for the original mod, and permission from the author to modify it, if they did not use some sort of open source license. So it's not impossible, but it would take some effort, but doing so would open up a whole new world of possibilities for you!
    • Does it still crash if you remove holdmyitems? Looks like that mod doesn't work on a server as far as I can tell from the error.  
    • Crashes the server when trying to start. Error code -1. Log  
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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