Minecraft(我的世界)中文论坛

 找回密码
 注册(register)
查看: 11252|回复: 43

[其它开发教程] JMCCC使用教程——Java启动器类库,几行代码下载并启动MC

[复制链接]
发表于 2016-4-5 20:37:54 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 yushijinhun 于 2016-4-8 21:55 编辑

JMCCC是由 @yushijinhun@Darkyoooooo 开发的一个Java启动器核心,支持:
  • 启动Minecraft
  • 正版验证(以及Yggdrasil的其它API)
  • 下载Minecraft
  • 下载并安装Forge/Liteloader

并且JMCCC是开源的(MIT许可证),JMCCC在GitHub上的项目:https://github.com/to2mbn/JMCCC

本教程的适用人群:有一定经验的Java开发者

目录
  • 环境搭建
  • 启动游戏
  • 正版登录
  • 下载游戏
  • 下载并安装Forge及Liteloader
  • 获取正版玩家的皮肤
  • OS X下Dock相关配置
  • 忽略Forge的数字签名
  • 使用HttpAsyncClient来进行下载
  • 使用Ehcache缓存下载的文件
  • 修改Minecraft1.9中的version_type
  • 使用自定义的Yggdrasil API提供商


点击下面的页码来跳到下一页。

评分

参与人数 21人气 +28 金粒 +312 收起 理由
ddyy163 + 1 MCBBS有你更精彩~
357951js + 2 + 10 MCBBS有你更精彩~
tnqzh123 + 1 + 15 MCBBS有你更精彩~
CNife + 1 + 5 感谢教程,学习一个
zc2202 + 1 我第二步就懵逼了
星燚 + 3 + 15 很棒的作品!
ufof + 2 很棒的作品!
Ashidiya + 1 十分感谢!
tt36999 + 1 + 15 非常方便,简单易用
chyx + 2 + 50 Mcbbs有你更精彩~
13012352613 + 1 + 15 jmccc大法好
1396342222 + 1 + 10 可怕的作品!
wyxa + 1 + 15 大触我们做朋友吧!
614315880 + 1 + 11 围观...
lj2000lj + 1 可怕的作品!
pca006132 + 2 + 35 很棒的作品!
RecursiveG + 2 + 30 已加入教程全家桶
TanDan2016 + 1 很棒的作品!
zou5610 + 1 + 15 很棒的作品!
丶皇天 + 20 Java大法好!

查看全部评分

发表于 2016-4-9 13:47:01 | 显示全部楼层
太好了,终于找到了JMCCC的教程了
回复

使用道具 举报

发表于 2016-4-10 09:23:26 | 显示全部楼层
LZ为什么我启动不了MC,这是我的代码
  1. public class start_up
  2. {
  3.         ReadString readString=new ReadString();
  4.         public start_up()throws Exception
  5.         {
  6.                 String gameMemory = ReadString.readFileContent("","gameMemory.TD");
  7.                 String gameName = ReadString.readFileContent("", "gameName.TD");
  8.                 String gamePath = ReadString.readFileContent("", "gamePath.TD");
  9.                 String gameVersion = ReadString.readFileContent("", "gameVersion.TD");
  10.                  int a = Integer.parseInt(gameMemory);
  11.                  System.out.print("gameMemory  "+a+"  gameName  "+gameName+"  gamePath  "+gamePath+"  gameVersion"+gameVersion);
  12.                  Launcher launcher = LauncherBuilder.buildDefault();
  13.                  LaunchOption option = new LaunchOption(gameVersion, new OfflineAuthenticator(gameName), new MinecraftDirectory(gamePath));
  14.                  
  15.                  option.setMaxMemory(a);
  16.                  
  17.                  launcher.launch(option);
  18.         }
  19. }
复制代码
回复

使用道具 举报

发表于 2016-4-10 10:40:33 | 显示全部楼层
TanDan2016 发表于 2016-4-10 09:23
LZ为什么我启动不了MC,这是我的代码

stderror有没有输出什么
回复

使用道具 举报

发表于 2016-4-15 20:43:13 | 显示全部楼层
Darkyoooooo 发表于 2016-4-10 10:40
stderror有没有输出什么

空指针错误,不过我自己也经解决了
回复

使用道具 举报

发表于 2016-4-19 11:36:14 | 显示全部楼层
好复杂...这是自己做启动器吗...
回复

使用道具 举报

发表于 2016-4-23 21:31:52 | 显示全部楼层
空指针错误,不过我自己也经解决了
回复

使用道具 举报

发表于 2016-4-23 22:14:38 | 显示全部楼层
非常好用!!正在用。
回复

使用道具 举报

发表于 2016-4-28 06:57:41 | 显示全部楼层
看到 Callback 就一定要吐槽了...
LZ 一定是 JS症患者2333

顺便感谢下这个库
回复

使用道具 举报

发表于 2016-4-29 20:42:58 | 显示全部楼层
感谢分享!!!非常重要
回复

使用道具 举报

发表于 2016-5-1 20:53:18 | 显示全部楼层
好赞,我的阅读恐惧症又犯了
回复

使用道具 举报

发表于 2016-5-2 22:03:39 | 显示全部楼层
教程一出,赌450,java启动器要炸
回复

使用道具 举报

头像被屏蔽
发表于 2016-5-4 08:04:33 | 显示全部楼层
楼主真的是神一般的纯在 作品实在是太完美了
回复

使用道具 举报

发表于 2016-5-4 11:08:33 | 显示全部楼层
赞赞赞,很棒的作品!!赞赞赞,很棒的作品!!赞赞赞,很棒的作品!!赞赞赞,很棒的作品!!赞赞赞,很棒的作品!!赞赞赞,很棒的作品!!
回复

使用道具 举报

发表于 2016-5-26 17:40:00 | 显示全部楼层
为什么报错,这是什么原因!
环境:
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
Windows 7 64位 8G内存 i5CPU


调试信息:
Exception in thread "main" java.lang.NullPointerException
        at java.util.Objects.requireNonNull(Unknown Source)
        at org.to2mbn.jmccc.option.LaunchOption.<init>(LaunchOption.java:121)
        at org.to2mbn.jmccc.option.LaunchOption.<init>(LaunchOption.java:96)
        at mcgui.Mcgui.mc(Mcgui.java:34)
        at mcgui.Main.main(Main.java:12)



类一:
  1. package mcgui;

  2. public class Main {
  3.         public static void main(String[] args) throws Exception {
  4.                 Mcgui mc = new Mcgui();
  5.                 mc.logs = true; // 启动调试  boolean
  6.                 mc.charm = true; // 开启对Natives文件的快速检查  boolean
  7.                 mc.version = "1.8"; // 游戏版本  String
  8.                 mc.user = "test_user"; // 使用离线验证,用户名  String  
  9.                 mc.mineurl = "D:/Program Files (x86)/Minecraft 1.8-forge/.minecraft"; // .minecraft目录  String
  10.                 mc.mem = 512; // 最大内存512M  int
  11.                 mc.mc();
  12.                
  13.                 /*
  14.                  * mc.logs                        boolean
  15.                  * mc.charm                        boolean
  16.                  * mc.version                String
  17.                  * mc.user                        String
  18.                  * mc.mineurl                String
  19.                  * mc.mem                        int
  20.                  *
  21.                  */
  22.         }
  23. }
复制代码

类二:
  1. package mcgui;

  2. import org.json.*;
  3. import org.tukaani.xz.*;
  4. import org.to2mbn.jmccc.auth.OfflineAuthenticator;
  5. import org.to2mbn.jmccc.exec.GameProcessListener;
  6. import org.to2mbn.jmccc.launch.Launcher;
  7. import org.to2mbn.jmccc.launch.LauncherBuilder;
  8. import org.to2mbn.jmccc.option.LaunchOption;
  9. import org.to2mbn.jmccc.option.MinecraftDirectory;

  10. public class Mcgui {
  11.         boolean logs ; // 启动调试
  12.         boolean charm ; // 开启对Natives文件的快速检查
  13.         String version ; // 游戏版本
  14.         String user ; // 使用离线验证,用户名
  15.         String mineurl ; // .minecraft目录
  16.         int mem ; // 最大内存512M
  17.         
  18.         
  19.         public void mc() throws Exception {
  20.                
  21.         // 创建一个Launcher对象
  22.                 System.out.println("创建一个Launcher对象");
  23.                 Launcher launcher = LauncherBuilder.create()
  24.                             .setDebugPrintCommandline(logs) // 设置是否在启动时将启动参数输出到控制台以供调试,默认为false。
  25.                             .setNativeFastCheck(charm) // 设置是否开启对Natives文件的快速检查,默认为false。
  26.                             //开启该选项后,jmccc仅会通过比较文件大小来判断文件是否完整,这样可以加快启动速度,但有可能造成某些问题。
  27.                             .build();
  28.         System.out.println("创建对象成功");
  29.         
  30.         // 启动配置
  31.         System.out.println("启动配置");
  32.         LaunchOption option = new LaunchOption(
  33.                         version, // 游戏版本
  34.                 new OfflineAuthenticator(user), // 使用离线验证,用户名
  35.                 new MinecraftDirectory(mineurl) // .minecraft目录
  36.         );
  37.         System.out.println("启动成功!");
  38.         
  39.         // 最大内存512M
  40.         System.out.println(mem);
  41.         option.setMaxMemory(mem);
  42.         
  43.         // 启动游戏
  44.         System.out.println("启动游戏!");
  45.         
  46.         launcher.launch(option, new GameProcessListener() {

  47.             @Override
  48.             public void onLog(String log) {
  49.                 System.out.println(log); // 输出日志到控制台
  50.             }

  51.             @Override
  52.             public void onErrorLog(String log) {
  53.                 System.err.println(log); // 输出日志到控制台(同上)
  54.             }

  55.             @Override
  56.             public void onExit(int code) {
  57.                 System.err.println("游戏进程退出,状态码:" + code); // 游戏结束时输出状态码
  58.             }
  59.         });
  60.         System.out.println("游戏启动成功!");
  61.     }
  62. }
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2018-10-21 18:43 , Processed in 0.152247 second(s), 7 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

快速回复 返回顶部 返回列表