燕797 2024-05-07 18:50 采纳率: 100%
浏览 6
已结题

制作Fabric模组注册物品时的问题

我最近在学习做一个Fabric模组,原本很顺利的,依赖也配置好了.
可是在我注册物品的时候,意外出现了:
我在写常量ICE_ETHER(我的物品名)的时候,它报错说“无法解析符号 'FabricItemsSettings'”,我气死了
请教度娘也找不到解决方案,故此请教各位.
以下是代码:
ModItems:

import com.besson.tutorialmod.TemplateMod;
import net.minecraft.item.Item;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier;


public class ModItems {
    public static final Item ICE_ETHER = registerItems("ice_ether",new Item(new FabricItemsSettings()));//它就是说找不到FabricItemsSettings这个类

    private static Item registerItems(String name,Item item){
        return Registry.register(Registries.ITEM,new Identifier(TemplateMod.MOD_ID,name),item);
    }

    public static void registerModItems(){

    }

}

build.gradle:

plugins {
    id 'fabric-loom' version '1.6-SNAPSHOT'
    id 'maven-publish'
}

version = project.mod_version
group = project.maven_group

base {
    archivesName = project.archives_base_name
}

repositories {
    // Add repositories to retrieve artifacts from in here.
    // You should only use this when depending on other mods because
    // Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
    // See https://docs.gradle.org/current/userguide/declaring_repositories.html
    // for more information about repositories.
}

fabricApi {
    configureDataGeneration()
}

dependencies {
    // To change the versions see the gradle.properties file
    minecraft "com.mojang:minecraft:${project.minecraft_version}"
    mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
    modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"

    // Fabric API. This is technically optional, but you probably want it anyway.
    modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
    
}

processResources {
    inputs.property "version", project.version

    filesMatching("fabric.mod.json") {
        expand "version": project.version
    }
}

tasks.withType(JavaCompile).configureEach {
    it.options.release = 21
}

java {
    // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
    // if it is present.
    // If you remove this line, sources will not be generated.
    withSourcesJar()

    sourceCompatibility = JavaVersion.VERSION_21
    targetCompatibility = JavaVersion.VERSION_21
}

jar {
    from("LICENSE") {
        rename { "${it}_${project.base.archivesName.get()}"}
    }
}

// configure the maven publication
publishing {
    publications {
        create("mavenJava", MavenPublication) {
            artifactId = project.archives_base_name
            from components.java
        }
    }

    // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
    repositories {
        // Add repositories to publish to here.
        // Notice: This block does NOT have the same function as the block in the top level.
        // The repositories here will be used for publishing your artifact, not for
        // retrieving dependencies.
    }
}

fabric.mod.json:

{
    "schemaVersion": 1,
    "id": "templatemod",
    "version": "${version}",
    "name": "Template Mod",
    "description": "这是一个自创Mod",
    "authors": [
        "Chris",
        "北山"
    ],
    "contact": {
        "homepage": "https://fabricmc.net/",
        "sources": "https://github.com/FabricMC/fabric-example-mod"
    },
    "license": "CC0-1.0",
    "icon": "assets/templatemod/icon.png",
    "environment": "*",
    "entrypoints": {
        "main": [
            "com.besson.tutorialmod.TemplateMod"
        ],
        "client": [
            "com.besson.tutorialmod.TutoriaModClient"
        ],
        "fabric-datagen": [
            "com.besson.tutorialmod.TemplateModDataGenerator"
        ]
    },
    "mixins": [
        "templatemod.mixins.json"
    ],
    "depends": {
        "fabricloader": ">=0.15.11",
        "minecraft": "~1.20.6",
        "java": ">=21",
        "fabric-api": "*"
    },
    "suggests": {
        "another-mod": "*"
    }
}

gradle.properties:

# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G
org.gradle.parallel=true

# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.20.6
yarn_mappings=1.20.6+build.1
loader_version=0.15.11

# Mod Properties
mod_version=0.1-1.20.6
maven_group=com.besson.tutorialmod
archives_base_name=templatemod

# Dependencies
fabric_version=0.97.8+1.20.6

我的文件夹结构完全是Fabric的模板,肯定是没问题的.
百度上面完全没有这个问题的任何词条,从中午到晚上,找不到一点解决方案
请楼主认真回答,谢谢.

  • 写回答

3条回答 默认 最新

  • GISer Liu 2024-05-08 03:14
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据你提供的代码和错误信息,问题出在无法解析符号 'FabricItemsSettings',这是因为在你的代码中,尝试使用了一个名为
    FabricItemsSettings 的类,但是这个类并没有被导入或者定义。Fabric 模组开发中,并没有名为 FabricItemsSettings
    的类,所以编译器无法识别它。
    通常情况下,在 Fabric 模组开发中,注册物品不需要 FabricItemsSettings 这样的类。你可以直接使用 Minecraft 提供的
    Item.Settings,它是一个构建 Item 实例所需的设置类。下面是修改后的代码:
    java
    Copy code

    import com.besson.tutorialmod.TemplateMod;
    import net.minecraft.item.Item;
    import net.minecraft.registry.Registry;
    import net.minecraft.util.Identifier;
    public class ModItems {
    // 直接使用 Minecraft 提供的 Item.Settings
    public static final Item ICE_ETHER = registerItems("ice_ether", new Item(new Item.Settings()));
    private static Item registerItems(String name, Item item) {
    return Registry.register(Registry.ITEM, new Identifier(TemplateMod.MOD_ID, name), item);
    }
    public static void registerModItems() {
    // 在这里你可以添加更多的物品注册
    }
    }
    

    在这个修改后的代码中,我直接使用了 Minecraft 提供的 Item.Settings 类来创建物品实例,而不再使用
    FabricItemsSettings。这样就可以解决你遇到的编译错误了。
    修改后的代码需要重新编译和运行,确保没有其他错误。如果还有其他问题或者需要进一步帮助,请随时提问。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月16日
  • 已采纳回答 5月8日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见