第四章 第一个物品(Item)
ℹ️提示
为了能提前体验一下把自己写的物品搬进游戏的快乐,本章跳过了一些工程文件的介绍直接开始制作物品,一些额外内容我们将会在第五章再次介绍。
这是一个教你怎么写一个对标 Minecraft1.21并使用NeoForge模组加载器的模组的教程。
⚠️警告
本教程只适用于使用
NeoForge模组加载器的Minecraft1.21版本,如果你在写别的版本的模组,参考本教程可能会导致你的代码出错或出现未经验证的问题。
ℹ️使用须知
在本教程中,我们只讨论如何用Java写模组,不会讨论有关MCreator这类模组制作器的使用。如果你不会Java,请先学习Java。
修改配置
你需要打开gradle.properties,这是一份属性文件,我们需要修改的正是它。
在这里摆一份经过翻译和额外注释的属性文件,请按照注释说明一步一步修改(你不必把我的注释也抄上去):
gradle.properties
# 设置用于Gradle命令的默认内存。可以由用户或命令行属性覆盖。
# 但是请你 不要修改 前半部分东西,我会在注释中告诉你哪里开始需要修改的。
# 这里是一些基础参数,比如虚拟机堆内存大小、守护、缓存使用之类的。
org.gradle.jvmargs=-Xmx1G
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=true
#下面两行是使用羊皮纸映射的设置。映射是什么?我后面会讲解的。
#详见 https://github.com/neoforged/ModDevGradle?tab=readme-ov-file#better-minecraft-parameter-names--javadoc-parchment
# 你也可以在这里找到最新版本: https://parchmentmc.org/docs/getting-started
parchment_minecraft_version=1.21
parchment_mappings_version=2024.07.28
# 环境属性
# 你可以在这里找到最新版本: https://projects.neoforged.net/neoforged/neoforge
# Minecraft版本必须与Neo版本一致才能获得有效的工件(即最终产出的jar包)
minecraft_version=1.21.1
# 可以使用Minecraft的任何发布版本作为Minecraft版本范围的限制。
# 快照、预发布和候选发布则不能保证正确的排序,
# 因为它们不遵循标准的版本控制约定(人话:无规矩不成方圆,没商量好的版本类型就算魔酱乱排序也无可厚非)
# 啊另外这个版本范围是高中数学的区间的写法,你至少得知道一下。(你应该知道的吧?)
minecraft_version_range=[1.21.1, 1.22)
# Neo版本必须与Minecraft版本一致才能获得有效的工件(把前面那句倒过来说了一遍)
neo_version=21.1.72
# 可以使用Neo的任何发布版本作为Neo版本范围的限制(跟念经似的)
neo_version_range=[21.1.0,)
# 但是只能使用FML的主要版本作为加载器版本范围的限制。
loader_version_range=[4,)
## 模组属性
# 注意啦!从这里开始要 >>>频繁修改<<< 啦!
# 下面这个是mod的唯一mod标识符。在英语区域设置中必须小写。必须符合正则表达式[a-z][a-z0-9_]{1,63}
# 必须与位于用@Mod注释的mod主类中的String常量匹配。
# 意思就是说这个mod_id是你写的模组的唯一身份证,不能与其他模组冲突(这点你倒不用过度担心,
# 但请不要把我提供的示例mod_id写上去)
# 重点在于mod_id后面的内容只能填入小写的英文字符、英文下划线和标准数字。
# 我们后面还会在模组的主类(即模组接入MC的一个起点)中定义一个这样的常量,两者要一模一样。
# 比如我要写一个废土风格的工业模组,我管它叫“工业遗迹”,英文名就叫Industrial Heritage,
# 那么我的mod_id就是“industrial_heritage”。
mod_id=examplemod
# 模组的名字,这个是给玩家看的,会显示在mod界面,所以可以写中文和空格什么的。
mod_name=Example Mod
# 模组库所遵循的协议。在这里翻阅适合你的协议: https://choosealicense.com/. All Rights Reserved 是默认的协议。
# 如果你不了解或不想了解什么是协议,你可以不管这里的内容。
mod_license=All Rights Reserved
# 模组版本,规范见 https://semver.org/lang/zh-CN/
# 这就是你的模组版本,你可以自己定版本,但是我建议你看看网站里“关于软件版本的建议-摘要”的部分。
mod_version=1.0.0
# mod的组ID。只在作为工件发布到Maven存储库时才用得到(也确实很重要)。
# 这应该与用于mod资源的基本包名相匹配,意思是你待会需要在你的src下面按顺序建立这仨文件夹
# 见 https://maven.apache.org/guides/mini/guide-naming-conventions.html
# 这里填入的就是你的三个级的包名,也大概是你的模组主类存放的位置。
# 也就是说,你最好还是遵循三级倒写域作为你的包名的逻辑。你其实也可以自己自由定义。
# 比如你买了个叫shits.coding.store的域名,那你可以写成store.coding.shit
# 比如我,我有一个GitPage,是makertechno.github.io,那么我可以写成github.makertechno.industrialheritage
# 其实,我更喜欢写成 none.maker.industrialheritage ,毕竟github也不是我开的。
mod_group_id=com.example.examplemod
# 模组作者. 这是会显示到模组列表的说明中的
mod_authors=你的名字, 别人的名字...
# 模组描述,是一个多行的介绍你模组的文本。通过\n表示换行。
mod_description=Example mod description.\nNewline characters can be used and will be replaced properly.
修改配置文件很重要的一点就是,这些内容一部分会应用到开发环境的路径逻辑中,也有一部分会应用到你最终在游戏内看到的模组介绍中。
MakerTechno于2025年6月2日起稿并暂时中止
MakerTechno修正于2025年6月28日,并添加了标识性头
MakerTechno改写于2025年8月4日,更改了本站教程的协议类型。
Copyright © 2025 MakerTechno. 保留所有权利。
在明确注明原文出处(包括作者名与原始链接)的前提下,允许非商业性地引用本作品片段。引用内容不得超过原文的 20%,不得歪曲原意或用于误导性语境。整篇转载或复制使用需获得作者授权。本网站所有教程不允许商用,也不会授予商用授权。