[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fmtId2w-OkegMBqP6qmGSRd-AHv307sBywCa1PFqg7Is":3},{"item":4,"related":51},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":43,"sourceName":43,"sourceUrl":43,"status":44,"seoTitle":43,"seoDescription":43,"canonicalUrl":43,"isFeatured":45,"sno":46,"sortOrder":47,"publishedAt":48,"updatedAt":49,"createdAt":50},"356aa99a-b365-43ef-96ae-f7e5117ec256","article","《我的世界》游戏模组开发指南：用AI构建你的第一个模组","mc-ai-coding","在整理在《我的世界》Java版本模组开发过程中的心得体会，系统性地介绍模组开发全流程","# 一、模组加载器\n《我的世界》模组加载器可分为两大类：\n- Fabric-轻量化，加载快\n- Forge\u002FNeoForge-高度集成，功能丰富\n\n从玩家数量来说，Forge和NeoForge的玩家数量大于Fabric，理论上来说更受欢迎（也可能是因为大部分整合包都选择使用Forge或NeoForge作为模组加载器）。\n## 1.1 Fabric加载器\n### 1.1.1 简介\nFabric加载器作为目前《我的世界》（版本>1.14）的主流加载器之一，模组库数量庞大，玩家数量稳定。部分复杂功能可能需要依赖外部模组。\n### 1.1.2 环境配置\nFabric加载器在配置环境时需要搭配正确版本的Gradle、Fabric Version、Fabric API 和 Fabric Loom。例如：对于Minecraft JE 1.20.1 Fabric版本，一般使用\n- Gradle 8.7\n- Fabric Version 0.18.3\n- Fabric API xxx\n- Fabric Loom 1.6-SNAPSHOT\n> 以上环境配置部分可详细参考[Fabric Wiki](https:\u002F\u002Fwiki.fabricmc.net\u002Fzh_cn:tutorial:setup)\n### 1.1.3 创建项目\n创建新项目时，推荐使用[Fabric官方模组模版生成器](https:\u002F\u002Ffabricmc.net\u002Fdevelop\u002Ftemplate\u002F)，按照需要设置模组信息：\n- Mod Name-模组显示的名称，不影响代码\n- Mod ID-模组标识符，嵌入代码中\n- Package Name-项目内部路径名，一般为“开发者.模组名”，也可以直接使用模组名（开发者可以作为项目“水印”\n> 推荐在Advanced Options中关闭Mojang Mappings\n## 1.2 Forge\u002FNeoForge加载器\n### 1.2.1 简介\nForge和NeoForge加载器作为目前市面上玩家数量最多的加载器，内置多种编程方法工具，在不依赖外部模组的情况下可以实现多种功能。\n### 1.2.2 环境配置\n一般情况下，1.20及以下版本使用Forge加载器，1.21及以上版本使用NeoForge加载器。其在配置时也有一定区别。在1.20\u002F1.21版本，使用Gradle 9.0和对应的Forge\u002FNeoForge版本。在官方网站可以下载完整的模版文件，一般不需要再过多调整。\n### 1.2.3 创建项目\n创建新项目时，推荐使用[Forge官方模组模版生成器](https:\u002F\u002Ffiles.minecraftforge.net\u002Fnet\u002Fminecraftforge\u002Fforge\u002F)\u002F[NeoForge官方模组模版生成器](https:\u002F\u002Fneoforged.net\u002F)。\n# 二、编程环境\n## 2.1 编辑器选择\n一般情况下，推荐使用[IntelliJ IDEA](https:\u002F\u002Fwww.jetbrains.com\u002Fzh-cn\u002Fidea\u002Fdownload\u002F?section=windows)，并安装[MinecraftDev插件](https:\u002F\u002Fplugins.jetbrains.com\u002Fplugin\u002F8327)（也可直接在编辑器设置中的插件市场下载并安装）。\n## 2.2 AI编程配置\n### 2.2.1 TRAE\n初次尝试推荐使用TRAE，在编辑器自带的插件市场即可下载安装，简单注册账号后即可使用。\n### 2.2.2 Claude Code\n对于有复杂需求或大型项目编程的项目，推荐使用Claude Code，同样可在插件市场找到。对于国内环境，推荐使用[火山引擎](https:\u002F\u002Fwww.volcengine.com\u002F)，具体配置操作详见[火山引擎官方指南](https:\u002F\u002Fwww.volcengine.com\u002Fdocs\u002F82379\u002F1928262?lang=zh)。\n## 2.3 环境配置操作\n我们可以粗略地将src文件夹内的文件当作项目文件，将src以外的部分当作环境文件。每当环境文件内容发生变化，都需要刷新Gradle，可点击代码栏右上角的刷新图标快速刷新，此时右下角会出现进度提示，若配置失败，将报错信息交给AI分析。\n# 三、模组项目结构介绍\n## 3.1 Fabric通用结构\n```\n{mod_name}\u002F\n├── build.gradle              # Gradle 构建脚本（依赖声明、任务配置）\n├── gradle.properties         # 版本属性与元数据\n├── settings.gradle           # Gradle 项目设置\n├── gradle\u002F\n│   └── wrapper\u002F              # Gradle Wrapper 配置\n├── src\u002F\n│   ├── main\u002F\n│   │   ├── java\u002F             # Java 源码根目录\n│   │   │   └── com\u002Fexample\u002Fmodid\u002F\n│   │   │       ├── {ModClass}.java          # 主初始化类\n│   │   │       ├── {ModClass}Client.java    # 客户端初始化类（可选）\n│   │   │       ├── item\u002F                    # 物品相关类\n│   │   │       ├── block\u002F                   # 方块相关类\n│   │   │       └── mixin\u002F                   # Mixin 类目录\n│   │   │           └── ExampleMixin.java\n│   │   └── resources\u002F\n│   │       ├── fabric.mod.json              # 模组元数据（必需）\n│   │       ├── {modid}.mixins.json          # Mixin 配置（如使用）\n│   │       └── assets\u002F{modid}\u002F\n│   │           ├── lang\u002F\n│   │           │   ├── en_us.json           # 英文本地化\n│   │           │   └── zh_cn.json           # 中文本地化\n│   │           ├── models\u002F\n│   │           │   ├── item\u002F                # 物品模型定义\n│   │           │   └── block\u002F               # 方块模型定义\n│   │           ├── textures\u002F\n│   │           │   ├── item\u002F                # 物品纹理\n│   │           │   └── block\u002F               # 方块纹理\n│   │           └── blockstates\u002F             # 方块状态定义\n│   └── client\u002Fjava\u002F          # 客户端专用源码（分离架构时）\n├── run\u002F                      # 开发环境运行目录（自动生成）\n└── build\u002F                    # 构建输出目录（自动生成）\n```\n## 3.2 Forge\u002FNeoForge通用结构\n```\n{mod_name}\u002F\n├── build.gradle                    # Gradle 构建脚本\n├── gradle.properties               # 版本属性配置\n├── settings.gradle                 # Gradle 项目设置\n├── gradle\u002F\n│   └── wrapper\u002F                    # Gradle Wrapper 配置\n├── src\u002F\n│   ├── main\u002F\n│   │   ├── java\u002F                   # Java 源码根目录\n│   │   │   └── com\u002Fexample\u002Fmodid\u002F\n│   │   │       ├── {ModClass}.java              # 主入口类（@Mod 注解）\n│   │   │       ├── client\u002F                      # 客户端专用代码\n│   │   │       ├── common\u002F                      # 通用代码（物品、方块等）\n│   │   │       │   ├── item\u002F\n│   │   │       │   ├── block\u002F\n│   │   │       │   └── blockentity\u002F\n│   │   │       └── datagen\u002F                     # 数据生成器（可选）\n│   │   └── resources\u002F\n│   │       ├── META-INF\u002F\n│   │       │   ├── mods.toml                    # Forge 元数据（1.13+）\n│   │       │   ├── neoforge.mods.toml           # NeoForge 元数据（1.20.1+）\n│   │       │   └── accesstransformer.cfg        # 访问转换器配置（可选）\n│   │       ├── pack.mcmeta                      # 资源包元数据\n│   │       ├── assets\u002F\n│   │       │   └── {modid}\u002F\n│   │       │       ├── blockstates\u002F             # 方块状态定义\n│   │       │       ├── lang\u002F                    # 本地化文件\n│   │       │       │   ├── en_us.json\n│   │       │       │   └── zh_cn.json\n│   │       │       ├── models\u002F\n│   │       │       │   ├── block\u002F               # 方块模型\n│   │       │       │   └── item\u002F                # 物品模型\n│   │       │       ├── textures\u002F\n│   │       │       │   ├── block\u002F               # 方块纹理\n│   │       │       │   └── item\u002F                # 物品纹理\n│   │       │       ├── sounds.json              # 音效定义\n│   │       │       └── shaders\u002F                 # 着色器（可选）\n│   │       └── data\u002F\n│   │           └── {modid}\u002F\n│   │               ├── recipes\u002F                 # 配方 JSON\n│   │               ├── loot_tables\u002F             # 战利品表\n│   │               │   └── blocks\u002F\n│   │               ├── tags\u002F                    # 数据标签\n│   │               ├── advancements\u002F            # 进度定义\n│   │               └── structures\u002F              # 结构模板（可选）\n│   ├── client\u002Fjava\u002F                # 客户端专用源码（分离架构）\n│   ├── test\u002Fjava\u002F                  # 测试代码\n│   └── generated\u002F                  # 数据生成输出目录\n├── run\u002F                            # 开发环境运行目录（自动生成）\n└── build\u002F                          # 构建输出目录（自动生成）\n```\n# 四、Vibe Coading\n使用模组模版模组生成器生成模版文件后，在代码编辑器打开模组项目文件夹。\n在侧边栏展开AI编程插件，信任项目，用自然语言描述需求，例如：“帮我构建一个我的世界模组，游戏版本为Java 1.21.1，使用Fabric加载器（详细信息见gradle.properties），我需要xxx。”\n# 五、测试与调试\n在生成所需代码后，在终端控制台输入指令进行测试：\n- 清理缓存\n```\n.\u002Fgradlew clean\n```\n- 构建模组文件\n```\n.\u002Fgradlew build\n```\n- 运行测试客户端\n```\n.\u002Fgradlew runclient\n```\n- 以上指令可组合使用，如：\n```\n.\u002Fgradlew clean build runclient\n```\n> 在控制台中可使用上下方向键切换历史输入指令，无需重复输入\n# 六、模组导出\n在运行.\u002F gradlew build指令后，项目文件中的build\u002Flib文件夹中会出现对应名称的.jar模组文件，即为最终的客户端模组文件。\n# 七、模组上传与分发\n## 7.1 平台选择\n目前主流的模组分发平台有MC百科、Modrinth和Curseforge三大平台，国内分发首选MC百科，Modrinth在国内外的接受程度都较高，Curerforge则主打国外受众。\n## 7.2 分发原则\n在Modrinth和Curseforge上传的模组可被整合为链接内置于整合包中，在玩家下载并导入启动器时从平台下载被链接的模组。\n如果允许整合包制作者随意使用模组，在模组简介务必表明分发原则（即在打包时确保整合包中使用链接而不是内置模组本体）。否则整合包的下载量将不会被计算到模组中。...","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-16\u002Fca4f2822-9ed5-49d8-b804-bbd92739a9d5.png",[],[],"龙家轩","https:\u002F\u002Fweatheraintbad.com","f39339b1-aaa6-4e86-b0c2-a6e6a21113b5",{"id":18,"name":19,"slug":20,"description":21},"d6750616-07d9-4350-8485-1834c77be3d2","指南","guide","指导建议，仅供参考",[23,27,31,35,39],{"id":24,"name":25,"slug":26},"541aaa1f-7a45-4fd7-b0f4-8798d3cef066","《我的世界》","minecraft",{"id":28,"name":29,"slug":30},"a202d639-99a6-488a-a712-4d4c6ffd7e15","开发","dev",{"id":32,"name":33,"slug":34},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":36,"name":37,"slug":38},"144abe77-0dc6-4f66-a176-20bddb1c0bfa","编程","coding",{"id":40,"name":41,"slug":42},"88d2bc27-0e0f-468a-b907-2991cb97b87b","人工智能","ai",null,"published",false,30,0,"2026-02-07T00:00:00.000Z","2026-07-20T12:44:49.447Z","2026-07-16T11:26:54.204Z",[52,62,71],{"id":53,"type":6,"title":54,"slug":55,"summary":56,"coverUrl":57,"authorName":58,"sno":59,"publishedAt":60,"createdAt":61},"871e57ba-8d0e-4f70-a706-b7ec5f472ea7","Skill是什么？","what-is-skill","一套可复用、可安装、可共享的任务说明","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-18\u002F4c35d873-e4f1-418f-a9ae-bb56d85df6ff.jpg","Foundit",45,"2026-06-11T00:00:00.000Z","2026-07-18T15:17:09.969Z",{"id":63,"type":6,"title":64,"slug":65,"summary":66,"coverUrl":67,"authorName":58,"sno":68,"publishedAt":69,"createdAt":70},"153fb92b-ccb1-4311-ad7c-d93b36ea2203","WebAssembly Component Model：不同语言写的模块如何拼在一起？","webassembly-component-model-wasi-explained","WebAssembly 不只是一个能运行的二进制文件。Component Model 通过接口、类型和能力权限，让不同语言编写的组件能够组合。本文从 WIT、WASI 0.2 和宿主运行时讲清组件模型的价值、权限边界与适用场景。","\u002Fuploads\u002F2026-09-08\u002Fb44135d7-7561-477f-9edc-c52fd17b99f4.jpg",51,"2026-09-08T00:00:00.000Z","2026-09-08T03:19:21.154Z",{"id":72,"type":6,"title":73,"slug":74,"summary":75,"coverUrl":76,"authorName":77,"sno":78,"publishedAt":79,"createdAt":80},"ea23e2ef-cc1b-4977-ad38-bf95b363c953","SQLite复兴：从一个文件到边缘数据库","sqlite-libsql-turso-edge-database","SQLite 是没有服务器、就是一个文件的嵌入式数据库，零运维、极低延迟。借助 libSQL \u002F Turso，它正走向「边缘 + 多副本」，让读多写少的应用全球低延迟。","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-19\u002F611d83bb-2a21-4271-a183-155a89a5bb81.jpg","Foundit AI",70,"2026-07-17T00:00:00.000Z","2026-07-19T17:10:52.499Z"]