Jump to content

Im new to modding and I dont see in the exemple mod that i have the CreativeModeTabEvent event


Recommended Posts

Posted

Duplicate post.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Posted (edited)
7 minutes ago, warjort said:

Duplicate post.

yea i accidently post it in tutorial do you know how can i remove it?  btw thank you for the help hahahha

Edited by YairKro
Posted

If you mean the CreativeModeTabEvent.Register event, to register your own tab, you need to create a listener on the mod bus

@Mod.EventBusSubscriber(modid = "your_mod_id", bus = Mod.EventBusSubscriber.Bus.MOD)
public class CreativeTabEvents {
  
  @SubscribeEvent
  public static void onRegisterCreativeTabs(final CreativeModeTabEvent.Register event) {

	event.registerCreativeModeTab(new ResourceLocation("your_mod_id", "tab_name"),
                builder -> builder
                        .icon(() -> new ItemStack(MyModItems.MyItem))
                        .title(Component.translatable("itemGroup." + "your_mod_id" + "." + name)) //you are not forced to this syntax, but it's pretty common
                        .build());
  }
}

Assuming that MyModItems.MyItem is an item in a class of your mod that has all the items (of course you can set it to whatever item or block you want, even vanilla ones).

If, instead, you want to add items to your creative tab, you need to listen to the CreativeModeTabEvent.BuildContents event, in a similar way. In here you want to check which tab is being populated (event.getTab()) and, if is your tab, add as many item stacks as you want using event.acceptAll(itemStacks) method
 

@SubscribeEvent
  public static void onTabBuildContents(final CreativeModeTabEvent.BuildContents event) {
	final CreativeModeTab tab = event.getTab();
  	if(tab.equals(MY_CREATIVE_TAB)) {
      	event.acceptAll(List.of(
      		new ItemStack(MyModItems.MyItem),
        	new ItemStack(MyModItems.MySecondItem)
        	...
      ));
    }
  }

Of course you need to have reference to your tab, so when you register it during the CreativeModeTabEvent.Register event make sure to store the registered tab into a variable so you can use it later on to add items to it.

You can see how I handle my tabs here to get an idea: https://github.com/JimiIT92/MineWorld/blob/master/src/main/java/org/mineworld/core/MWTabs.java

Don't blame me if i always ask for your help. I just want to learn to be better :)

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



×
×
  • Create New...

Important Information

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