Skip to content

Commit

Permalink
Fix item tab registration
Browse files Browse the repository at this point in the history
  • Loading branch information
cam72cam committed Apr 7, 2024
1 parent 756b1ba commit 192d36c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/main/java/cam72cam/mod/ModCore.java
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ public ModCore() {
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::postInit);
//FMLJavaModLoadingContext.get().getModEventBus().addListener(this::serverStarting);
//FMLJavaModLoadingContext.get().getModEventBus().addListener(this::serverStarted);
CommonEvents.Item.CREATIVE_TAB.register(FMLJavaModLoadingContext.get().getModEventBus());

MinecraftForge.EVENT_BUS.register(this);
}
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/cam72cam/mod/event/CommonEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import cam72cam.mod.ModCore;
import net.minecraft.core.BlockPos;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.entity.Entity;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.EntityType;
Expand All @@ -20,6 +21,8 @@
import net.minecraftforge.event.level.LevelEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegisterEvent;
import net.minecraftforge.registries.RegisterEvent.RegisterHelper;
Expand Down Expand Up @@ -56,7 +59,7 @@ public static final class Tile {

public static final class Item {
public static final Event<Consumer<RegisterHelper<net.minecraft.world.item.Item>>> REGISTER = new Event<>();
public static final Event<Consumer<RegisterHelper<CreativeModeTab>>> CREATIVE_TAB = new Event<>();
public static final DeferredRegister<CreativeModeTab> CREATIVE_TAB = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, ModCore.MODID);
}

public static final class Recipe {
Expand Down
8 changes: 6 additions & 2 deletions src/main/java/cam72cam/mod/item/CreativeTab.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,29 @@
import cam72cam.mod.ModCore;
import cam72cam.mod.event.ClientEvents;
import cam72cam.mod.event.CommonEvents;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraftforge.registries.DeferredRegister;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;

/** Creates/Registers a creative tab for custom items */

public class CreativeTab {
public CreativeModeTab internal;


// TODO expose existing creative tabs as constants to be used by mods

public List<CustomItem> inject = new ArrayList<>();

/** */
public CreativeTab(String label, Supplier<ItemStack> stack) {
CommonEvents.Item.CREATIVE_TAB.subscribe(event -> {
CommonEvents.Item.CREATIVE_TAB.register(label, () -> {
CreativeModeTab.Builder builder = CreativeModeTab.builder();
builder.title(Component.literal(label));
builder.icon(() -> stack.get().internal());
Expand All @@ -34,7 +38,7 @@ public CreativeTab(String label, Supplier<ItemStack> stack) {
});

internal = builder.build();
event.register(new ResourceLocation(ModCore.MODID, label), internal);
return internal;
});
}

Expand Down

0 comments on commit 192d36c

Please sign in to comment.