用户:MashKJo/1.12.2模组开发教程/1.构建开发环境:修订间差异

无编辑摘要
(创建页面,内容为“这一步,可以说是最难的一步。 不要以为笔者在开玩笑,实际上很多潜在的Modder都被这一步拦住了。 == 步骤 == 首先访问Forge官网:https://files.minecraftforge.net 。 然后选择版本,找到1.12.2,选择2859这个版本的“Mdk”一栏下载。注意如果你网不好,直接点击下载是不行的,因为这一步中插入了广告,在国内互联网环境下访问很不畅(<s>丝滑顺畅</s>)…”)
 
无编辑摘要
 
(未显示同一用户的1个中间版本)
第3行: 第3行:
不要以为笔者在开玩笑,实际上很多潜在的Modder都被这一步拦住了。
不要以为笔者在开玩笑,实际上很多潜在的Modder都被这一步拦住了。


== 步骤 ==
== 构建步骤 ==
首先访问Forge官网:https://files.minecraftforge.net 。
首先访问Forge官网:https://files.minecraftforge.net 。


第44行: 第44行:
     }
     }
  }
  }
 
把其中的链接替换成你要用的镜像源链接即可。
把其中的链接替换成你要用的镜像源链接即可。


但笔者建议直接下载构建好的离线包,当然下载完之后还是要在命令行中输入一下相关的构建命令。
但笔者建议直接下载构建好的离线包,当然下载完之后还是要在命令行中输入一下相关的构建命令。
== 修改build.gradle和Mod元数据 ==
如果你没有什么特殊需求的话,那么,对于<code>build.gradle</code>,你只需要修改以下的地方:
version = '1.0'
group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'modid'
jar {
    manifest {
        attributes([
            "Specification-Title": "examplemod",
            "Specification-Vendor": "examplemodsareus",
            "Specification-Version": "1", // We are version 1 of ourselves
            "Implementation-Title": project.name,
            "Implementation-Version": "${version}",
            "Implementation-Vendor" :"examplemodsareus",
            "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
        ])
    }
}
根据你的项目包名和模组的modid修改即可。
另外在文件末尾再加上这些,这是为了保证resources文件夹中的内容被读取:
sourceSets
{
    main
    {
        output.resourcesDir = output.classesDir
    }
}
另外,在路径<code>src/main/resources</code>下,你应该会找到<code>mcmod.info</code>和<code>pack.mcmeta</code>这两个文件。其中,<code>mcmod.info</code>是这样的:
[
{
  "modid": "examplemod",
  "name": "Example Mod",
  "description": "Example placeholder mod.",
  "version": "${version}",
  "mcversion": "${mcversion}",
  "url": "",
  "updateUrl": "",
  "authorList": ["ExampleDude"],
  "credits": "The Forge and FML guys, for making this example",
  "logoFile": "",
  "screenshots": [],
  "dependencies": []
}
]
按需修改即可。
至于<code>pack.mcmeta</code>,这个文件是用于资源包的,显然每个Forge模组都相当于一个资源包,这里要注意的是pack_format必须为3。如果你不小心删除了这个文件,启动游戏测试时,虽然这个文件会自动生成,但pack_format会莫名其妙的变成2,如果发现了这个情况,要手动改成3。至于为什么?去Minecraft Wiki的相关条目可以找到答案,这属于原版的知识了。
== 测试与发布Mod ==
运行客户端Minecraft:
gradlew runClient
运行服务端Minecraft:
gradlew runServer
另外,运行这两个命令时,会尝试连接Forge的服务器,如果这个时候Forge服务器正好抽风了,那就会BUILD FAILED,那么,你可以选择加上参数<code>--offline</code>,以离线运行游戏。
发布Mod:
gradlew build
然后你就可以在路径<code>build/libs</code>下看到一个.jar文件,这就是构建好的Mod了。
== 在IDE中执行Gradle Task ==
上述Gradle Task都是ForgeGradle这一Gradle插件提供的。实际上,你不需要非要在命令行中执行这些task,上述的三种IDE:IDEA、Eclipse和VSCode都有Gradle支持插件,因此理论上如果你使用这三种IDE之一,是可以直接在IDE中执行task的。但实际上VSCode似乎还需要经过手动的配置才可以使用此项功能。
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,417

个编辑