配置
由于Mixin-0.7.11
还不支持使用Forge 1.13+
的ModLauncher
引导,所以本教程以Forge 1.12.2-14.23.5.2838
为例。
配置build.gradle
build.gradle
在
buildscript
中添加Sponge的Maven仓库,并应用MixinGradle插件。在
repositories
中添加Sponge的Maven仓库。在
dependencies
中添加对Mixin的依赖,并排除Minecraft中已存在的库。由于Forge并不引用Mixin,并且无法保证玩家添加的模组一定会包含Mixin,所以需要在模组打包时把Mixin一并打包进模组jar包中。 在
jar
中把引用的Mixin打包进去。由于Mixin需要用Tweaker引导(参见引导Mixin),所以还需要添加TweakClassMixinGradle添加了一个新的闭包:
mixin
,其所有可配置项参考这里。 一个最基本配置如下:(Mixin 混淆映射文件建议以mixins.<modid>.refmap.json
的形式命名)需要说明的是,正是因为有了这个文件,我们在编写代码时基本不需要过多地考虑混淆的问题,无论是在开发环境还是生产环境中,我们只需要按照mcp name写就可以了
配置完成后即可开始构建Forge开发环境。
配置json文件
在
src/main/resources
文件夹中新建一个json文件,推荐命名为mixins.<modid>.json
配置文件中的所有可配置项参考这里。
在Wiki中的相关属性解释:
package
: Mixin注入类所在的父包,这个包将会被添加到LaunchClassLoader
的transformerExceptions
中去;mixins
: 客户端和服务端都运行的Mixin注入类(填写相对于package
属性的全类名,下同);client
: 仅在客户端运行的Mixin注入类;server
: 仅在服务端运行的Mixin注入类;refmap
: 指定Mixin的混淆映射json文件名(需要与MixinGradle中设置的一致);priority
: 指定配置文件被载入的优先级,默认为1000;plugin
: 指定Mixin插件类名,这个类需要实现IMixinConfigPlugin
接口,这个插件允许程序在运行时修改Mixin配置(参考扩展);required
: 决定是否确保所有Mixin注入类都能找到目标类,如果设置为true
,一旦未能找到,那么就会抛出异常并终止游戏运行;minVersion
: 指定所使用的Mixin功能出现的最低版本,如果运行中的Mixin版本低于该版本,那么就会忽略高版本Mixin中的功能;setSourceFile
: 决定是否让注入类覆盖目标类的source file
属性,如果设置为true
,我们大概能在打印调用堆栈时看到而不是原先的
一个最基本的配置文件如下:
配置IDE
在构建Forge开发环境之后配置IDE。配置完成后,可以在编写Mixin注解时自动检查注解的合法性。
Eclipse
下载Mixin项目源代码仓库
在Mixin项目下运行
./gradlew build
命令来编译生成Mixin的jar包打开项目属性,并定位到
Java 编译器 -> 注解处理 -> 工厂路径
勾选
启用特定于项目的设置
复选框单击
添加外部JAR...
按钮,并选择刚刚编译生成好的带 -processor 后缀的jar包(应该位于Mixin-master/build/libs
文件夹内)定位到
Java 编译器 -> 注解处理
勾选
启用特定于项目的设置
复选框勾选
启用注解处理
复选框单击
新建...
按钮设置
键
为reobfSrgFile
设置
值
为mcp-srg.srg
文件的完整路径(对于Forge 1.12.2-14.23.5.2838 以及在不修改默认mappings
的情况下,此文件应该位于%GRADLE_USER_HOME%\caches\minecraft\de\oceanlabs\mcp\mcp_snapshot\20171003\1.12.2\srgs
文件夹内)
单击
应用并关闭
按钮即可
IntelliJ IDEA
Last updated