Jump to content

Recommended Posts

Posted

Hi community, I am there a new member. I wants start something new about java and get the news experiences.
But I came across the "error". I spent my 3 hours to get the solutions but I couldnt find it.

I had this problem
https://imgur.com/a/8GdLRQO

Log of starting Minecraft:
https://pastebin.com/W49B6Y6e/?e=1

I did it by this tutorial: https://www.youtube.com/watch?v=rQLhheYcnrY&t=1485s
This thins him work.

I try it 2 times created 2 projects and I had the same problem.

Thanks for help and get solution for this :)

Posted
9 minutes ago, XpresS said:

Ugh, another crappy youtube tutorial. I've watched a total of 10 seconds of it and I immediately saw the CommonProxy, IHasModel, static initializers and ItemBase. No, thanks. In general youtube tutorials are pretty bad, don't rely on them. I have yet to see at least an okay modding tutorial on youtube. They teach you all the things not to do so I am not surprized you are encountering issues.

 

 As for your issue - I see no errors in the log which likely means that you've not registered a model for your items in the first place but I can't tell for sure since you've shown zero code. So could you please provide some of your code so we can inspect it for issues?

Posted
Quote

CommonProxy

A concept of a common proxy makes no sense. Proxies exist to separate sided only code. If your code is "common" then it goes into your mod class, not into your proxy.

 

serverSide = Reference.COMMON_PROXY_CLASS

This makes even less sense. Server proxy either hosts noop methods that are only applicable for the client or server-side only methods. Your common proxy can't be your server proxy.

 

ItemBase is an antipattern. You do not need it.

 

public static final Item RUBY = new ItemBase("ruby", CreativeTabs.MATERIALS);

Don't ever use static initializers. Instantinate your stuff in the appropriate registry event.

 

Quote

implements IHasModel

IHasModel is stupid. All items need models, no exception and there is nothing about an item model that requires access to private/protected things. Register your models directly in the ModelRegistryEvent, not in your item classes.

 

What is up with your ruby.json model? Why are there so many transforms specified? Why is it's parent a item/handheld? 

 

Main.proxy.registerItemRenderer(this, 0, "invetory");

invetory != inventory. Actually also related and the cause of your issue:

 

public class CommonProxy{

	public void registerItemRenderer(Item item, int meta, String id) {}
}
public class ClientProxy extends CommonProxy{

	public void regsterItemRenderer(Item item, int meta, String id) {
		ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), id));
	}
}

regsterItemRenderer != registerItemRenderer. This is why you

a) Never use a CommonProxy but instead an interface.

b) Never manually override methods and use the override feature of your IDE

c) Always annotate methods that are intended to be overridden with @Override

 

As an unrelated sidenote:

21 minutes ago, XpresS said:

Any particular reason you've hosted your code on mediafire of all places? You can just create a free github repository, you know?

 

21 minutes ago, XpresS said:

Are there some function tutorial, where I can learn more about Forge ?

 

  • Like 1
Posted (edited)
26 minutes ago, V0idWa1k3r said:

What is up with your ruby.json model? Why are there so many transforms specified? Why is it's parent a item/handheld? 

I thinked ruby.json has been wrong. I tried more format of these thing.

 

26 minutes ago, V0idWa1k3r said:

invetory != inventory. Actually also related and the cause of your issue:

Yeah its my wrong. :/:) 
 

 

26 minutes ago, V0idWa1k3r said:

Never use a CommonProxy but instead an interface.

I agree with you, when you know this tutorial is totaly bullshit I will find another.

 

26 minutes ago, V0idWa1k3r said:

Never manually override methods and use the override feature of your IDE

I didnt override methors manually its do eclipse. 

 

26 minutes ago, V0idWa1k3r said:

Any particular reason you've hosted your code on mediafire of all places? You can just create a free github repository, you know?

I tried it but, I didnt learn more about it, but I had github :D

Thanks for get solutions and oriantate on good way. I will find another tutorials.

I am looking on this but i didnt understands of these tutorials how on to.
https://mcforge.readthedocs.io/en/latest/concepts/registries/#registering-things

I must have how to on and get instructions step by step. 

Edited by XpresS
EDITED//
Posted

I got some bad code I didnt know why Its working can you explain me or repair ?

public class ItemBase extends Item{

	public ItemBase(String name) {
		this.setUnlocalizedName(name);
		this.setRegistryName(name);
		
		ModItems.ITEMS.add(this);
	}
	
	public ItemBase creativeTab(CreativeTabs tab) {
		this.creativeTab(tab);
		return this;		
	}
}


 

public final class ModItems {

	public static List<Item> ITEMS = new ArrayList<Item>();
	
	public static final Item RED_COAL = new ItemBase("redCoal").creativeTab(CreativeTabs.MATERIALS);
	
	@EventBusSubscriber
	public static class RegistrationHandler {
		@SubscribeEvent
		public static void registerItems(RegistryEvent.Register<Item> e) {
			e.getRegistry().registerAll(ITEMS.toArray(new Item[0]));
			IForgeRegistry<Item> registry = e.getRegistry();
			for(Item item : ITEMS) {
				registry.register(item);
				ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName()));
				System.out.println("Done registering: " + item.getUnlocalizedName() +"...");
			}
		}
	}
}


Error Log: https://pastebin.com/Uv30at7M

I searched on google as  Can not register to a locked registry. Modder should use Forge Register methods.
but I couldnt find solution.

I inspirated by https://github.com/Choonster-Minecraft-Mods/TestMod3/blob/2cb7b67adf7ab41e066c3308ac898224b2891752/src/main/java/choonster/testmod3/init/ModItems.java
Somebody on this forum post this link. 

Posted

Why are you registering models in the Register<Items> event?

There's a ModelRegistryEvent for a reason

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
12 minutes ago, XpresS said:

public static final Item RED_COAL = new ItemBase("redCoal").creativeTab(CreativeTabs.MATERIALS);

2 hours ago, V0idWa1k3r said:

Don't ever use static initializers. Instantinate your stuff in the appropriate registry event.

 

13 minutes ago, XpresS said:

ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName()));

This is client-side only and thus can't be used in common code otherwise you will crash the server. In any case this needs to happen in the ModelRegistryEvent, not anywhere else.

 

13 minutes ago, XpresS said:

e.getRegistry().registerAll(ITEMS.toArray(new Item[0]));

13 minutes ago, XpresS said:

for(Item item : ITEMS) { registry.register(item);

You are registering your items twice.

 

As for the error:

Quote

at sk.xpress.prisonthings.Main.PreInit(Main.java:20)

Whatever you are doing in your PreInit method in your main class crashes the game. I can't tell you what you are doing because you've not provided the code needed. But from the stacktrace it looks like you are calling the Item.registerItems method for god knows what reason.

  • Thanks 1
Posted (edited)

Okay I forgot for something in PreInit, my wrong.
 

23 minutes ago, V0idWa1k3r said:

Don't ever use static initializers. Instantinate your stuff in the appropriate registry event.


 

public final class ModItems {

    public static List<Item> ITEMS = new ArrayList<Item>();
    
    @EventBusSubscriber
    public static class RegistrationHandler {
        @SubscribeEvent
        public static void registerItems(RegistryEvent.Register<Item> e) {

        Item RED_COAL = new ItemBase("redCoal");
       Item ...
            e.getRegistry().registerAll(ITEMS.toArray(new Item[0]));
            for(Item item : ITEMS) {
                ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), null));
                System.out.println("Done registering: " + item.getUnlocalizedName() +"...");
            }
        }
    }
}

You think these item initializers or what ?

 

23 minutes ago, V0idWa1k3r said:

This is client-side only and thus can't be used in common code otherwise you will crash the server. In any case this needs to happen in the ModelRegistryEvent, not anywhere else.

And how can I register the item for server-side ?

Thanks to much for helping :)

Edited by XpresS
Posted
4 minutes ago, XpresS said:

And how can I register the item for server-side ?

Did you see what I've quoted? I didn't quote the item registration, I quoted this line

4 minutes ago, XpresS said:

ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), null));

This is client side only and must happen in the ModelRegistryEvent. This line has nothing to do with item registration, it registeres a model for the item.

 

Item RED_COAL = new ItemBase("redCoal");
Item ...
e.getRegistry().registerAll(ITEMS.toArray(new Item[0]));

The issue with this approach is that the registry can't be dynamically reloaded now since you never clear the list. It is not a problem *now* but it is nonetheless an issue. As an example here is me registering items in one of my mods. As you can clearly see I do not use any kind of a list or anything to hold my items in. In fact I don't and just use ObjectHolders to get the reference to my items when I need it.

Posted
5 minutes ago, XpresS said:

You think these item initializers or what ?

No, a static initializer is when you call new in a place that is static.

 

Like this:

public static final Item RED_COAL = new ItemBase("redCoal").creativeTab(CreativeTabs.MATERIALS);

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
9 minutes ago, Draco18s said:

No, a static initializer is when you call new in a place that is static.

Hmm... Thanks

Now, I writed something 
 

	@EventBusSubscriber
	public static class RegistrationHandler {
		@SubscribeEvent
		public static void registerItems(RegistryEvent.Register<Item> e) {
			
			e.getRegistry().register(new ItemBase("redCoal"));
			e.getRegistry().register(new ItemBase("ruby"));
		
		//--->	ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
			
		}
	}

But now How will I load texture for items ? ( ModelLoader
 

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

    • So am trying to make a custom 1.19.2 modpack and everything works until I add Oculus. I have tried Oculus+Embedium and Oculus+Rubdium and by themselves they work but as soon as I add anything it crashes no matter what it is. The modpack works fine with just Embedium and Rubdium. Can you help me to see if this is something i can fix or do i just have to deal with not having shaders. Here is the crash log. Thank you for your time. https://paste.ee/p/WXfNZ24K
    • New users at Temureceive a 40 Off discount on orders over 40 Off Use the code [{acx318439}]] during checkout to get TemuDiscount 40 Off For New Users. You n save 40 Off off your first order with the Promo Code available for a limited time only. Extra 30% off for new and existing customers + Up to $40 Off % off & more. Temu Promo Codes for New users- [{acx318439}]] Temudiscount code for New customers- [{acx318439}]] Temu $40 Off Promo Code- [{acx318439}]] what are Temu codes- acx318439 does Temu give you $40 Off - [{acx318439}]] Yes Verified Temu Promo Code january 2025- {acx318439} TemuNew customer offer {acx318439} Temudiscount codejanuary 2025 {acx318439} 40 off Promo Code Temu {acx318439} Temu 40% off any order {acx318439} 40 dollar off Temu code {acx318439} TemuCoupon $40 Off off for New customers There are a number of discounts and deals shoppers n take advantage of with the Teemu Coupon Bundle [{acx318439}]]. TemuCoupon $40 Off off for New customers [{acx318439}]] will save you $40 Off on your order. To get a discount, click on the item to purchase and enter the code. You n think of it as a supercharged savings pack for all your shopping needs Temu Promo Code 80% off – [{acx318439}]] Free Temu codes 50% off – [{acx318439}]] TemuCoupon $40 Off off – [{acx318439}]] Temu buy to get ₱39 – [{acx318439}]] Temu 129 coupon bundle – [{acx318439}]] Temu buy 3 to get €99 – [{acx318439}]] Exclusive $40 Off Off TemuDiscount Code Temu $40 Off Off Promo Code : (acx318439) Temu Discount Code $40 Off Bundle acx318439) acx318439 Temu $40 Off off Promo Code for Exsting users : acx318439) Temu Promo Code $40 Off off Temu 40 Off coupon code (acx318439) will save you 40 Off on your order. To get a discount, click on the item to purchase and enter the code. Yes, Temu offers 40 Off Coupon Code “acx318439” for Existing Customers.  You can get a 40 Off bonus plus 30% off any purchase at Temu with the 40 Off Coupon Bundle at Temu if you sign up with the referral code [{acx318439}]] and make a first purchase of $40 Off or more. Temu Promo Code 40 off-{acx318439} Temu Promo Code -{acx318439} Temu Promo Code $40 Off off-{acx318439} kubonus code -{acx318439} Get ready to unlock a world of savings with our free Temu UK coupons! We’ve got you covered with a wide range of Temu UK coupon code options that will help you maximize your shopping experience.30% Off Temu UK Coupons, Promo Codes + 25% Cash Back [ acx318439]   Yes, Temu offers 40 off coupon code {acx318439} for first-time users. You can get a $40 bonus plus 40% off any purchase at Temu with the $40 Coupon Bundle if you sign up with the referral code [{acx318439}]] and make a first purchase of $40 or more. If you are who wish to join Temu, then you should use this exclusive TemuCoupon code 40 off (acx318439) and get 40 off on your purchase with Temu. You can get a 40% discount with TemuCoupon code {acx318439}. This exclusive offer is for existing customers and can be used for a 40 reduction on your total purchase. Enter coupon code {acx318439} at checkout to avail of the discount. You can use the code {acx318439} to get a 40 off TemuCoupon as a new customer. Apply this TemuCoupon code $40 off (acx318439) to get a $40 discount on your shopping with Temu. If you’re a first-time user and looking for a TemuCoupon code $40 first time user(acx318439) then using this code will give you a flat $40 Off and a 90% discount on your Temu shopping.     •    acx318439: Enjoy flat 40% off on your first Temu order.     •    acx318439: Download the Temu app and get an additional 40% off.     •    acx318439: Celebrate spring with up to 90% discount on selected items.     •    acx318439: Score up to 90% off on clearance items.     •    acx318439: Beat the heat with hot summer savings of up to 90% off.     •    acx318439: Temu UK Coupon Code to 40% off on Appliances at Temu. How to Apply Temu Coupon Code? Using the TemuCoupon code $40 off is a breeze. All you need to do is follow these simple steps:     1    Visit the Temu website or app and browse through the vast collection of products.     2    Once you’ve added the items you wish to purchase to your cart, proceed to the checkout page.     3    During the checkout process, you’ll be prompted to enter a coupon code or promo code.     4    Type in the coupon code: [{acx318439}]] and click “Apply.”     5    Voila! You’ll instantly see the $40 discount reflected in your total purchase amount. Temu New User Coupon: Up To 90% OFF For Existing Customers Temu Existing customer’s coupon codes are designed just for new customers, offering the biggest discounts 90% and the best deals currently available on Temu. To maximize your savings, download the Temu app and apply our Temu new user coupon during checkout.     •    acx318439: New users can get up to 80% extra off.     •    acx318439: Get a massive 40% off your first order!     •    acx318439: Get 20% off on your first order; no minimum spending required.     •    acx318439: Take an extra 15% off your first order on top of existing discounts.     •    acx318439: Temu UK Enjoy a 40% discount on your entire first purchase.  
    • What do I do now when it says "1 error"?
    • Hello everyone new here how are you all?
    • I haven't tested it but under https://minecraft.wiki/w/Items_model_definition it says now:   So I guess the resource location must have changed with 1.24.4, which means you need to move your models/item/ to the new source. But as I said I haven't tested this so it also may be that this wont work. Nevertheless give it a try      EDIT (important) So now I tested it and found out how it works   Let the model files (e.g. the .json from blockbench) within "assets/<your_mod_id>/models/item" In addition to that do the following: Every model you added will need a new file under "assets/<your_mod_id>/items" That file is also a JSON and looks like this: { "model": { "type": "minecraft:model", "model": "your_mod_id:item/custom_item" } } - "type" can be minecraft:model, minecraft:composite, minecraft:condition, minecraft:select, minecraft:range_dispatch, minecraft:empty, minecraft:bundle/selected_item or minecraft:special. (In most cases you would need minecraft:model) - "model" is the path to your actual model for this item. For example the value above would point to "assets/your_mod_id/models/item/custom_item"
  • 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.