基于mcp940反编译Minecraft源代码
引言
Minecraft中文叫“我的世界”,没怎么深入玩过,来试试把它源代码反编译出来吧。
参考教程:
https://minecraft.gamepedia.com/Mods/Creating_mods/Setting_up_the_MCP_workspace
我用的是最新的mcp940,对应版本是1.12。
遇到问题及解决
因为我的是Mac系统,遇到一些坑,下面简要说明一下。
客户端下载
因为官方客户端需要mojang账号才能登陆,而mojang账号注册点击没反应,因此怎么也进行不下去。
解决办法:网上找!还好,被我在百度贴吧找到了:https://tieba.baidu.com/p/5235025666
感谢楼主。
下载下来,解压到~/.minecraft目录
服务端下载
最新服务端在:https://minecraft.net/en-us/download/server
版本是1.12.1,而我们要找的是1.12,链接是猜出来的:https://s3.amazonaws.com/Minecraft.Download/versions/1.12/minecraft_server.1.12.jar
放入mcp目录的jars目录中。
运行一次:java -jar minecraft_server.1.12.jar
python命令
mcp的runtime目录的python脚本中,都指定由python2运行,现改为python。
text2speech库没有osx版本
此问题导致反编译时检查脚本出错。
解决办法:修改1.12.json,借用linux的,把“linux”改为“osx”,如下:
{"extract":{"exclude":["META-INF/"]},"name":"com.mojang:text2speech:1.10.3","natives":{"osx":"natives-linux","windows":"natives-windows"}
提示找不到库
如果反编译时提示类似“Copying library java-objc-bridge... Error copying library java-objc-bridge"的错误,那么就打开1.12.json文件,找到相关的库的下载链接,自行下载放到相应目录中即可。
结论
至此,可以成功反编译了。后续就可以尝试eclipse打开,研究分析源代码了。
后续:Eclipse打开项目
Eclipse中,把workspace指定到目录mcp940/eclipse目录下,启动Eclipse后自动就打开Client和Server项目了。
Server能正常运行,没问题。
客户端错误
Java Build Path中重新加入jar包,修正红叉错误。
因为用到了与text2speech相关的osx特性的代码需要注释掉,否则客户端会提示类没找到,没办法运行,例如:
GuiIngame.java中GuiIngame函数中NarratorChatListener相关的注释掉:
// IChatListener ichatlistener = NarratorChatListener.field_193643_a;
(this.field_191743_I.get(ChatType.CHAT)).add(new NormalChatListener(mcIn));
// (this.field_191743_I.get(ChatType.CHAT)).add(ichatlistener);
(this.field_191743_I.get(ChatType.SYSTEM)).add(new NormalChatListener(mcIn));
// (this.field_191743_I.get(ChatType.SYSTEM)).add(ichatlistener);
(this.field_191743_I.get(ChatType.GAME_INFO)).add(new OverlayChatListener(mcIn));
this.setDefaultTitlesTimes();
Minecraft.java中loadWorld函数的NarratorChatListener相关代码注释掉:
// NarratorChatListener.field_193643_a.func_193642_b();
好了,Eclipse可以正常运行Client了~
基于mcp940反编译Minecraft源代码相关推荐
- java通过对.class文件字节码加密,不被轻易反编译出源代码,分析及其实现。
java通过对字节码加密,不被轻易反编译出源代码. 分析: JVM运行java文件是通过加载.class文件实现程序运行的,而且这个过程被我们称为类加载机制. 执行加载这个动作的是类加载器(java. ...
- 请教大家:如何把.DCU文件反编译回源代码?谢谢。
请教大家:如何把.DCU文件反编译回源代码?谢谢. Delphi / Windows SDK/API http://www.delphi2007.net/DelphiAPI/html/delphi_2 ...
- apk反编译修改源代码_单击即可将APK反编译为源代码
apk反编译修改源代码 In this tutorial I will guide you how to decompile apk to source code in just one click. ...
- Vue打包后反编译到源代码
Vue打包后反编译到源代码(reverse-sourcemap) 1.打开cmd,使用管理员打开 2.找到需要编译的js的目录下,这里以d://dist/static/js目录为例 执行: cd d: ...
- 一些Java反编译工具/源代码查看工具的介绍
2019独角兽企业重金招聘Python工程师标准>>> 有的朋友抱怨他们在使用他们公司的闭源框架时看不到底层的源代码.那么可以尝试使用一些Java反编译工具. 下面我举个例子介绍具体 ...
- jar包反编译成源代码_IntelliJ IDEA 如何设置自动下载源代码和文档
如果在你的 Maven 项目中,如果你使用了一个 jar,但是这个 jar 没有源代码. IntelliJ IDEA 会先自动帮你反编译,然后提示你下载源代码. 你也可以设置自动下载源代码和文档. 自 ...
- Android 的 dex2jar 和 jd-gui 反编译 apk 源代码
2019独角兽企业重金招聘Python工程师标准>>> 要得到 apk 中的源文件,可以这样: 1.把dex文件反编译为jar文件的工具.(dex2jar) http://code. ...
- Android安卓反编译apk源代码,移动应用开发课程
https://blog.csdn.net/qq15577969/article/details/79515621 二.解压apk文件 举例我的apk文件是demo.apk,直接右键解压(也可以把后缀 ...
- vue打包后反编译到源代码(reverse-sourcemap)
1.打开cmd,使用管理员打开 2.找到需要编译的js的目录下,这里以d://dist/static/js目录为例 执行: cd d://dist/static/js 执行完成后在该目录会看到目录下存 ...
最新文章
- TP框架中field查询字段
- spring @Value 获取配置文件为 null 常见的几种方式
- 四、管理网站(一) Using the command line interface
- 马化腾首谈腾讯开源时,鹅厂已在Github上放出82个项目,标星24万+ | 附AI项目链接...
- 常用日志门面和日志实现
- 常见浏览器兼容性问题与解决方式
- NOIP 2006 T2 金明的预算方案
- 《CLR via C#》之线程处理——线程基础
- leetcode第 46 场双周赛
- 注入点批量收集工具_原来微信群也是能够批量管理的,学到了
- virtual void addChild(Node * child, int localZOrder)中ZOreder参数设置
- 阿里启动“Buy+”计划,正式成立 VR 实验室
- 2022低压电工上岗证题目及答案
- 【HenCoder Plus】第四期终于来了
- 安装tensorflow踩的那些坑
- Linux的基础操作
- LFS8.0完全安装搭建制作教程
- PV3D的小练习~太阳系八大行星
- 男生追女生的方法有哪些?
- 飞机客运售票系统oracle分析,民航机场售票管理系统.doc
热门文章
- upload-labs_pass21_CTF逻辑老饶了
- python绘图turtle小猪_turtle作图:用turtle画一个小猪佩奇(详解!)
- linux查看nginx、apache、php、php-fpm、mysql及配置项所在目录
- .NetCore 下开发独立的(RPL)含有界面的组件包 (四)授权过滤
- hadoop的运行机制
- python的@classmethod和@staticmethod
- sublime text3配置Python2、Python3的编译环境
- [转]Android中handler机制的原理
- HDU2167 Pebbles(状压DP)
- 20150728月度会议