分享

MCP的Mod制作教程(1)

 gljin_cn 2015-02-25
 本帖最后由 szszss 于 2012-8-12 17:14 编辑

MCP的Mod制作教程(1)
MCP和Eclipse的配置
作者:szszss

索引贴地址:
http://www./thread-18949-1-2.html

首先需要强调,这个教程不是给没有任何编程基础的人准备的...你至少要懂得最基础的编程知识和OOP(面向对象编程)的基础,如果你真的对编程一窍不通的话建议先读读Java教程.

首先你要确保你安装了JDK(Java开发环境),具体的安装方法可以看这个

自从MCP70a开始,JDK6用户和JDK7用户遇到的情况会有所不同,MCP70a装配了FernFlower反编译器,然而它似乎对JDK6的支持不是很好,我使用JDK6进行反编译时在客户端的RenderBlock类反编译时遇到了问题.然而这个反编译器自然有它的强力之处:它修正了ModLoaderMP的MinecraftServer类反编译错误问题.然而这种福利只有JDK7用户能体验到.
However,这个地球上大部分人仍在使用JRE6,所以开发者不得不考虑兼容性,以兼容性至上的开发者建议使用JDK6,以性能和稳定性至上的建议使用JDK7.我使用的是JDK6,JDK7的一些部分我是咨询MineLogin的开发者Fanhua的,所以出了事找他(Fanhua:CNMB...)

然后你要下载MCP并配置它,我最早是倡导所有人都自行配置MCP,但现在我发现每次自行配置MCP都非常麻烦而且耗时间,并且有些人的机器非常神奇,无论怎么弄就是反编译不对,所以我上传了一份已经配置好的MCP7.0a,它包括完整的源代码文件和所需的资源文件,理论上是解压即用.所以你现在有2个选择,一个是下载一份已配置好的MCP,另一种是自己配置.
使用已配置好的MCP:
http://dl./c0maxsbm9b

自行配置MCP:
够爷♂们,首先你要下载MCP7.0a
它的Wiki网址是

很不幸的是下载需要在MedieFire进行,MedieFire是隔三差五被墙,然后隔三差五解封,如果你使用MCPLab本站的下载地址还要面对可怕的速度和限时...以前我会在妖々舞上上传最新版的MCP.然而西行妖被退治后妖々舞一蹶不振最终在8月7号埋骨于弘川了.所以我转战DBank,上传了一份MCP70a.(如果你需要旧版请联系我)
<<这个是MCP6.1的截图,MCP7.0a和它相同
MCP解压到一个文件夹内.对文件夹的命名没有什么太大要求,我习惯直接命名为MCP,老外习惯命名为source.
此外,你需要配置MCP的文件,包括:
(1)从官网下载一个对应版本的Minecraft_Server.jar拷贝到Jars目录下(有可能你下载到的是Minecraft_Server.zip,将后缀名从.zip改为.jar就行了)
(2)MC目录下的bin文件夹全部拷进MCP下的Jars.
(3)复制资源文件,MC目录下的resources文件夹拷入MCPJars
(4)安装ModLoader(并打上反编译修正补丁),有条件还要安一个AudioMod,别忘记删掉验证文件.
(5)安装ModLoaderMP.

很麻烦吧...所以我将我的Jars文件夹全部打包并上传了,你可以直接下载并使用.这套文件已被验证可以正常反编译.
标准套(MC1.3.1,客户端包含ModLoader,ModLoaderMPAudioMod,服务器包括ModLoaderMP)
(不知道为什么,这次我换成了zip,以前我用rar打包)
(很抱歉,但从MCP7.0a开始,我只提供标准套了-w-||)

配置好的jars文件夹应该是这样
之后运行MCP下的decompile.bat开始反编译,此时高潮来了
对JDK6的用户
FernFlower对JDK6支持不好,它会把你的RenderBlock类给艹花了,所以我们得解除FernFlower,进入你的MCP目录下的conf\patches,删掉minecraft_server_ff和minecraft_ff.之后运行decompile.bat

对JDK7的用户
直接运行decompile.bat,体验FernFlower的快感吧,You 0xB16B00B5

反编译时MCP可能提醒你有新版本,建议不要升级...(反正我升级了反而213)
如果你的MC版本没错的话,通常几分钟内便能反编译完成.
反编译过程中在Client阶段会报两个错误,如果我没猜错应该是RenderBlocks.#,StructureStro.#,这两个奇葩的文件老外反编译时也噗噗噗地弹错,无视就好了,不影响任何操作.
在反编译Server阶段可能会报个MinecraftServ#的错误,同样不影响任何操作.

反编译结束后开始正编译验证阶段,这时候高潮又来了.
对JDK6的用户
在使用FernFlower前,MCP对ModLoaderMP有个万年Bug,MinecraftServer类会抱大量错误,我们需要修正这个错误并重新完成正编译的最后阶段.修正的方法是将MCP目录下的src\minecraft_server\net\minecraft\server内的MinecraftServer.java的第516至第552行全部替换为一个},之后保存,听起来可能有些麻烦,所以我上传了一个已修正的MinecraftServer.java.
之后你需要运行MCP目录下的updatemd5.bat重新进行用于验证的正编译.打开bat后输入Yes,回车.
<<这个是MCP6.1的截图,MCP7.0a和它相同
如果一切顺利,大约几十秒后你就能完成全部正编译工作了(如果遇到错误可能是因为你的MinecraftServer.java没有修复正确).

对JDK7的用户
Fanhua说JDK7下用MCP7.0a反编译完全正常,所以我这里就认为使用JDK7的人不会遇到任何问题,直接顺利过正编译验证阶段.

当你配置完毕MCP后
我们就要配置Eclipse了(如果你是用记事本编java的话请容我一拜)(HTTP_404:我用VIM)
如果不知道Eclipse为何物请自行百度和下载,Eclipse版本最低要3.6
进入Eclipse,工作空间随便选一个,建议默认,随后创建一个新的JavaProject
关于项目的命名,许多人喜欢以自己的mod的名字来命名,但事实上有时我们不得不重复使用源文件,出于这些考虑,我建议干脆将项目命名为Minecraft
之后点击Next
然后我们要定位MC源代码的位置,默认情况下你会转入项目配置页面,右键Source窗内的Minecraft,选择Link Source,在新窗口内选择你的MCP文件夹下的src\minecraft
之后直接点击Finish,于是便完成了MC源代码的添加工作,以后我们的编程也要在源代码目录进行,所以原始项目自带的src就没用了,我习惯将它Remove from build path.
之后我们要添加用于编译的库,选择Libraries窗口,点击Add External JARs,将你的MCP下的jars\bin下的4个Jar文件全部加入(包括Minecraft.jar,MC使用了一个第三方声音引擎,反编译阶段它会被忽略,而正常编译阶段却需要它)
于是乎我们就完成配置了,点击下方的Finish,项目便正式建立了,Eclipse会花一段时间重建工作区(进度会在右下方显示),如果情况正常,不会有Error(错误)报告,但会有一大堆Warning(警告),警告可以忽略.
(大家好 我是第一个谜题)
(这张图内有一个很值得吐槽的东西,你发现了吗,提示:和东方有关)

以后我们的编程就要在net.minecraft.src这个Package内进行,所有的MC源文件都在里头.
(注:这张图是MCP5.6版的,新版多了一些目录,但都不重要)
顺便说明一下,关于Mod的编译,虽然MCP开发组说过配置完毕的Eclipse能够直接编译MC源代码,但我不建议这样做.我推荐依然使用MCP目录下的recompile.bat进行编译.编译完的Class文件不会被打包成Jar,而是会存在MCP下的Bin文件夹内.

下一篇:建立一个使用ModLoader的Mod

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约