Minecraft Forge:无法解析 Item.Properties().tab() 方法

问题描述 投票:0回答:1

我正在尝试添加我的项目

public static final RegistryObject<Item> TITANIUM = ITEMS.register("titanium",
            () -> new Item(new Item.Properties().tab(CreativeModeTab.MISC)));

它对 .tab 说“无法解析属性中的方法选项卡”,对 MISC 说“无法解析符号”

这是完整代码

import net.darkcrown.firstmod.FirstMod;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

public class ModItems {
    public static final DeferredRegister<Item> ITEMS =
            DeferredRegister.create(ForgeRegistries.ITEMS, FirstMod.MOD_ID);

    public static final RegistryObject<Item> TITANIUM = ITEMS.register("titanium",
            () -> new Item(new Item.Properties().tab(CreativeModeTab.MISC)));

    public static void register(IEventBus eventBus) {
        ITEMS.register(eventBus);
    }
}

我尝试看看是否有其他方法或者导入问题,但找不到任何东西可以请帮助

minecraft-forge
1个回答
1
投票

您正在开发哪个版本的 forge/minecraft?

创意库存选项卡已针对 1.19.3 进行了重新设计(请参阅Minecraft 发布变更日志)。从那时起,

net.minecraft.world.item.Item.Properties.tab(CreativeModeTab)
方法就不再存在了。

将项目添加到创意模式选项卡的新方法在 forge 文档中进行了描述:

// Registered on the MOD event bus
// Assume we have RegistryObject<Item> and RegistryObject<Block> called ITEM and BLOCK
@SubscribeEvent
public void buildContents(CreativeModeTabEvent.BuildContents event) {
  // Add to ingredients tab
  if (event.getTab() == CreativeModeTabs.INGREDIENTS) {
    event.accept(ITEM);
    event.accept(BLOCK); // Takes in an ItemLike, assumes block has registered item
  }
}

它的工作原理是订阅 CreativeModeTabEvent,该事件在构建创意模式时发布。您检查正在创建的选项卡是否是您想要添加项目的选项卡。如果是这种情况,您可以使用

event.accept(YOUR_ITEM)

将项目添加到选项卡
© www.soinside.com 2019 - 2024. All rights reserved.