本文通篇基于Linux/IntellijIDEA进行讲解,Windows/MAC/Eclipse用户请自行依葫芦画瓢。
本文不属于入门教程,不适合小白阅读
设置Forge工作区
你得首先去MinecraftForg下载一份源代码。我这里用的是最新的forge-1.7.10-10.13.2.1258-src.zip 接着,找个地方建立一个文件夹,这将是你的工程目录,我的叫Forge1.7.10-1258。然后再在里面建立一个目录,比方说就叫forge-1.7.10-10.13.2.1258-src,把你的Forge源码解压进去。 现在,你的文件夹层次应该看起来是这样的:
|
等以上操作完成后,就可以打开IDEA,选“Create New Project”,注意要建立一个空工程(Empty Project)![]() "Project Name"自然可以随意填写,"Project Location"则是之前创建的目录,下方的"Project Format"推荐选"Directory Based" 点"Finish"之后应该会自动打开"Project Structure"窗口,如果没有的话可以按Ctrl+Alt+Shift+S或是从菜单栏"File --> Project Structure" 打开窗口之后我们首先要选择SDK版本:先点左边的"Project",然后在右边"Project SDK"里选一个,我是选了Java8,你当然可以选择任何版本(不要低于Java6) ![]() 接着点左边的"Modules",再点那个绿色的“+”号,接着选"Import Module" ![]() 然后选forge-1.7.10-10.13.2.1258-src目录下的forge-1.7.10-10.13.2.1258-src.iml文件就好。 Import完了之后检查下有没有报错,如果没问题就可以点右下角OK。 重新cd到forge-1.7.10-10.13.2.1258-src目录下,执行如下三条命令让gradle自动建立运行配置。
继续选菜单栏"Run --> Edit Configurations",点左侧的"Minecraft Client",修改"Working Directory"到forge-1.7.10-10.13.2.1258-src/eclipse。 ![]() 你也可以像我一样指定一个username。接着对"Minecraft Server"也如法炮制。然后右下角"OK"退出。 现在Forge应该就可以运行了,在IDEA的主界面右上角有这么一片区域,选"Minecraft Client"然后点右侧那个绿色的三角箭头即可 ![]() |
如果之前的步骤都没有问题,你就可以继续了 为了更好地演示运行配置以及发布流程,我决定写一个Mod,添加一种矿石:“Xp Ore”,顾名思义,挖掉后能得到大量经验。 我们需要新建一个Module来写我们的代码:菜单栏"File --> New Module" "Module Name"就叫XpOre好了,然后继续打开"Project Structure",将forge-1.7.10-10.13.2.1258-src添加成为它的依赖。 ![]() 那个菜单同样是点右边的绿色加号出来,点"Module Dependency"后在弹出来的窗口里选"forge-1.7.10-10.13.2.1258-src"然后"OK"即可。 之后就可以写Mod了!至于具体Mod怎么写我就不在这里提了,请各位参考其他文章。 这是我的代码和目录层次结构,请自行调整,我就不把每一步的细节都写出来了。 请记得把`java`和`resources`两个目录设置成代码根目录和资源根目录,具体方法是在文件夹上右键然后"Mark Directory As" ![]() (xp_ore.png是矿石的材质,其实就是拿金矿石的材质把几个像素涂成绿色让它看起来比较像附魔瓶的颜色) 要想让这个Mod在IDEA里运行起来,有两种方式。 第一种比较简单,直接菜单栏"Run --> Edit Configurations --> 'Minecraft Client' --> Use classpath of mod ..."下拉列表里选"XpOre",保存退出运行即可。这种方式比较适合只开发一个Mod的情况。 当有N个Module互相依赖的时候,我推荐创建另一个Module,比方说,叫"Run"。然后令其依赖`forge-1.7.10-10.13.2.1258-src`和你需要加载的其他Module,然后"Use classpath of mod"选择"Run"即可。 |
发布其实相当方便,把forge-1.7.10-10.13.2.1258-src文件夹里的`build.gradle`复制到`XpOre`文件夹下面 按自己喜好修改其中的`version`,`group`和`archivesBaseName`即可。比方说我的是:
最后来一张Mod的效果图 ![]() |
全文完