本帖最后由 sunny00123 于 2013-7-3 22:31 编辑

其实我是写在这里的=。= 还是过来水一下吧

首先要说的是研究完forge在1.6.1安装之后,发现补丁形式的forge输入补丁已经跪了,估计以后也没多大可能性。
大家都转移阵地使用mod版本的输入补丁吧,这里个人推荐的是ZLainSama的coremod输入修复mod。
由于本人并不是正版用户总之这次折腾起来确实很蛋疼,这里要感谢pa001024大神,Zesty组长sama。
在拿到minecraft1.6.1的完整打包目录后,发现现在的版本不用启动器启动起来越来越麻烦了。
先来看看minecraft1.6.1的目录,有三个必须文件目录。
├─1.6.1
│ ├─.minecraft
│ │ ├─assets(这个是图标资源,声音资源,语言资源目录)
│ │ ├─libraries(这里是游戏运行所需的jar支持文件目录)
│ │ └─versions(游戏版本目录,某种意义上来说minecraft终于支持各种版本切换了,包括forge之间的切换)
│ ├─run.bat
│ └─runforge.bat
对于java程序来说,启动无非是需要载入组建以及运行参数到jvm中。换句话说只要minecraft官方没有强制验证帐号,
那么通过编写启动命令就是可以直接起动。
以下给出一个bat命令启动形式,也就是1.6.1目录下run.bat的内容
  1. @echo off
  2. rem 设置用户名
  3. set user=Player
  4. set appdata=%~dp0
  5. java -Xincgc -Xmx1G -XX:+PrintGC -Djava.library.path="%appdata%.minecraft\versions\1.6.1\1.6.1-natives" -cp "%appdata%.minecraft\libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar;%appdata%.minecraft\libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar;%appdata%.minecraft\libraries\com\google\guava\guava\14.0\guava-14.0.jar;%appdata%.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;%appdata%.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;%appdata%.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;%appdata%.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;%appdata%.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;%appdata%.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;%appdata%.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;%appdata%.minecraft\libraries\net\java\jinput\jinput-platform\2.0.5\jinput-platform-2.0.5-natives-windows.jar;%appdata%.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;%appdata%.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;%appdata%.minecraft\libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar;%appdata%.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;%appdata%.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;%appdata%.minecraft\libraries\org\lwjgl\lwjgl\lwjgl-platform\2.9.0\lwjgl-platform-2.9.0-natives-windows.jar;%appdata%.minecraft\versions\1.6.1\1.6.1.jar" net.minecraft.client.main.Main --username %user% --session ${auth_session} --version 1.6.1 --gameDir %appdata%.minecraft --assetsDir %appdata%.minecraft\assets
  6. pause
复制代码
简单来说就是java [jvm参数] -Djava.library.path=[lwjgl的组建目录] -cp [libraries目录下所需jar文件和versions目录下主程序]
net.minecraft.client.main.Main 则是minecraft程序的启动入口,一共有5个参数。
--username 玩家用户名
--session 正版登录后的会话ID
--version 游戏版本
--gameDir 游戏目录(也就是.minecraft的目录)
--assetsDir assets文件夹的目录(不传入此参数游戏缺少声音以及语言支持)
以上参数信息是从官方更新中对应版本的json文件中描述所得,如果需要体验和测试的话请自行研究。

那么再说些关于mcp的问题,
以往将minecraft.jar和minecraft_server.jar拖入jars文件的安装方法已经改变
目前mcp802的安装只需要提供服务端放入jars,而客户端的文件则自动从json文件中获取
这对非正版用户使用实在是造成了不便,不过forge的安装则不用考虑这么多,直接执行install.cmd就会自动下载mcp以及minecraft所需文件,并进行反编译。但是调试启动貌似遇到需要登录验证的问题,编译和reobf无影响。
调试启动解决方案

修改Main class

传入启动参数


最后就是关于forge安装
本以为像以前一样下载universal版本之后删除minecraft.jar中的META-INF拖入就行,但果然还是不行的。
1.6.1中forge的安装变成了lib外挂形式forge不再安装到minecraft主程序内,在正版启动器中还可以通过版本进行切换。关于forge的安装貌似正版启动器中提供了magiclauncher类似的功能,还有forge官方也提供了界面化安装包,但是木有正版就是白搭。于是从pa大大那里得到的安装forge后的minecraft完整版分析来看,forge安装到了libraries中。然后在versions下建立了forge版本包括json文件。通过正版启动器可以在forge版本和其他版本切换。
那么命令启动要怎么办,还是一样的通过命令加载,但是载入点有变化。
首先分析libraries目录
这是没安装forge的libraries目录 这是安装forge之后的libraries目录
├─argo
│ └─argo
│   └─2.25_fixed
├─com
│ ├─google
│ │ ├─code
│ │ │ └─gson
│ │ │   └─gson
│ │ │     └─2.2.2
│ │ └─guava
│ │   └─guava
│ │     └─14.0
│ └─paulscode
│   ├─codecjorbis
│   │ └─20101023
│   ├─codecwav
│   │ └─20101023
│   ├─libraryjavasound
│   │ └─20101123
│   ├─librarylwjglopenal
│   │ └─20100824
│   └─soundsystem
│     └─20120107
├─commons-io
│ └─commons-io
│   └─2.4
├─net
│ ├─java
│ │ ├─jinput
│ │ │ ├─jinput
│ │ │ │ └─2.0.5
│ │ │ └─jinput-platform
│ │ │   └─2.0.5
│ │ └─jutils
│ │   └─jutils
│ │     └─1.0.0
│ └─sf
│   └─jopt-simple
│     └─jopt-simple
│       └─4.5
└─org
  ├─apache
  │ └─commons
  │   └─commons-lang3
  │     └─3.1
  ├─bouncycastle
  │ └─bcprov-jdk15on
  │   └─1.47
  └─lwjgl
    └─lwjgl
      ├─lwjgl
      │ └─2.9.0
      ├─lwjgl-platform
      │ └─2.9.0
      └─lwjgl_util
        └─2.9.0


















├─argo
│ └─argo
│   └─2.25_fixed
├─com
│ ├─google
│ │ ├─code
│ │ │ └─gson
│ │ │   └─gson
│ │ │     └─2.2.2
│ │ └─guava
│ │   └─guava
│ │     └─14.0
│ └─paulscode
│   ├─codecjorbis
│   │ └─20101023
│   ├─codecwav
│   │ └─20101023
│   ├─libraryjavasound
│   │ └─20101123
│   ├─librarylwjglopenal
│   │ └─20100824
│   └─soundsystem
│     └─20120107
├─commons-io
│ └─commons-io
│   └─2.4
├─lzma
│ └─lzma
│   └─0.0.1

├─net
│ ├─java
│ │ ├─jinput
│ │ │ ├─jinput
│ │ │ │ └─2.0.5
│ │ │ └─jinput-platform
│ │ │   └─2.0.5
│ │ └─jutils
│ │   └─jutils
│ │     └─1.0.0
│ ├─minecraft
│ │ └─launchwrapper
│ │   └─1.3
│ ├─minecraftforge
│ │ └─minecraftforge
│ │   └─8.9.0.757

│ └─sf
│   └─jopt-simple
│     └─jopt-simple
│       └─4.5
└─org
  ├─apache
  │ └─commons
  │   └─commons-lang3
  │     └─3.1
  ├─bouncycastle
  │ └─bcprov-jdk15on
  │   └─1.47
  ├─lwjgl
  │ └─lwjgl
  │   ├─lwjgl
  │   │ └─2.9.0
  │   ├─lwjgl-platform
  │   │ └─2.9.0
  │   └─lwjgl_util
  │     └─2.9.0
  ├─ow2
  │ └─asm
  │   └─asm-all
  │     └─4.1
  └─scala-lang
    ├─scala-compiler
    │ └─2.10.2
    └─scala-library
      └─2.10.2

forge以及所需的lib文件全部安装到了libraries中,那么相应的启动命令如下,也就是1.6.1目录下runforge.bat的内容
  1. @echo off
  2. rem 设置用户名
  3. set user=Player
  4. set appdata=%~dp0
  5. java -Xincgc -Xmx1G -XX:+PrintGC -Djava.library.path="%appdata%.minecraft\versions\1.6.1\1.6.1-natives" -cp "%appdata%.minecraft\libraries\net\minecraftforge\minecraftforge\8.9.0.757\minecraftforge-8.9.0.757.jar;%appdata%.minecraft\libraries\net\minecraft\launchwrapper\1.3\launchwrapper-1.3.jar;%appdata%.minecraft\libraries\org\scala-lang\scala-library\2.10.2\scala-library-2.10.2.jar;%appdata%.minecraft\libraries\org\scala-lang\scala-compiler\2.10.2\scala-compiler-2.10.2.jar;%appdata%.minecraft\libraries\org\ow2\asm\asm-all\4.1\asm-all-4.1.jar;%appdata%.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;%appdata%.minecraft\libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar;%appdata%.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;%appdata%.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;%appdata%.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;%appdata%.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;%appdata%.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;%appdata%.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;%appdata%.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;%appdata%.minecraft\libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar;%appdata%.minecraft\libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar;%appdata%.minecraft\libraries\com\google\guava\guava\14.0\guava-14.0.jar;%appdata%.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;%appdata%.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;%appdata%.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;%appdata%.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;%appdata%.minecraft\libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar;%appdata%.minecraft\versions\1.6.1\1.6.1.jar" net.minecraft.launchwrapper.Launch --username %user% --session ${auth_session} --version 1.6.1 --gameDir %appdata%.minecraft --assetsDir %appdata%.minecraft\assets --tweakClass cpw.mods.fml.common.launcher.FMLTweaker
  6. pause
复制代码
除了需要加载libraries下的文件 minecraft程序的启动入口也需要改为 net.minecraft.launchwrapper.Launch
此入口有6个参数
--username 玩家用户名
--session 正版登录后的会话ID
--version 游戏版本(正版启动器状态下会复制1.6.1的目录并改名为forge版本号,以上由于文件相同就不改了)
--gameDir 游戏目录(也就是.minecraft的目录)
--assetsDir assets文件夹的目录(不传入此参数游戏缺少声音以及语言支持)
--tweakClass cpw.mods.fml.common.launcher.FMLTweaker (简单说就是类似于挂载coremod样挂载了forge)
以上参数则是forge修改过的json文件中所得
对于手动安装forge来说其实是很麻烦的,不仅要下载forge还要下载forge的lib并放入libraries中。
Minecraft踏入新世界的节奏?
整合包上传中.....(上传完毕)http://pan.baidu.com/share/link? ... 20&uk=236397585

注意:运行之前请保证cmd中java命令有效,无效自行搜索java环境变量设置