我正在尝试添加我的项目
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);
}
}
我尝试看看是否有其他方法或者导入问题,但找不到任何东西可以请帮助
您正在开发哪个版本的 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)
将项目添加到选项卡