Just Start Typing Text and Press Enter

alt text
WuSiYu
学生,Web开发者
2019年十月
« 9月    
 123456
78910111213
14151617181920
21222324252627
28293031  

友情链接

文章归档

Menu
Close
4月 04, 2016

SMCL – 使用Python编写简单Minecraft启动器

15 Comments | By

Simple Minecraft Launcher,一个使用python3编写的轻量级Minecraft启动器。

代码见:http://ideone.com/aVWnVh , Github地址:https://github.com/WuSiYu/smcl。直接不加任何参数运行脚本会显示帮助和用法,这里就不再多说了。

 

下面介绍原理:

其实Minecraft这个东西,是可以用一句命令直接启动的。但由于java的尿性,-cp=”xxxx.jar:xxxxx.jar”这个加载用到的库的参数会非常的长,再加上Minecraft本身又有一堆参数,所以这个“一句命令”虽说是一句,却有一千多个字符长。。。

所以就有了启动器这么个玩意,说白了它的功能就是生成启动命令,然后执行它。

听起来虽然蛋疼,不过好在Minecraft的每个版本都会有一个json文件,里面详细的写明了用到的库、asset名、参数、主类等信息,只有解析它即可,并不复杂。

而关于盗版的问题,只要将参数中的user_type设置为Legacy即可直接跳过验证来启动,这大概是游戏界最简单的“破解”了吧。其实这是Mojang并不特别反对盗版的原因,要不然也不会这么轻松。

反正要是有钱还是都去买个正版吧,这么良心的游戏不多了。(某穷b说道。。。)

 

—– 2016-04-30 更新 —–

详细用法:

首先,这是一个命令行程序,没有界面的。而且需要命令行参数来用。

如果没有任何参数输入,则会显示帮助信息并退出。

下面是命令行参数的详细说明,python命令和脚本名视情况而定:

前三项可选,实际使用时去掉括号。游戏ID是必须的,如果没有写则不能启动。

如果minecraft所在目录未指定,则使用当前目录下的.minecraft目录

如果要启动的版本未指定,则会启动minecraft目录中最新的那个版本

如果最大内存未指定,则会设置为2048m,也就是2G

下面是一些栗子:

游戏ID:WuSiYu, minecraft目录为当前目录下的.minecraft目录(默认值),启动minecraft目录中最新的那个版本(默认值), JAVA最大内存为2G(默认值):

 

游戏ID:WuSiYu, minecraft目录为当前目录(将脚本放到.minecraft目录里时用这个),启动minecraft目录中最新的那个版本(默认值), JAVA最大内存为2G(默认值):

 

游戏ID:WuSiYu, minecraft目录为当前目录(将脚本放到.minecraft目录里时用这个), 启动1.7.10版本,JAVA最大内存为2G(默认值):

 

游戏ID:WuSiYu, minecraft目录为当前目录(将脚本放到.minecraft目录里时用这个), 启动1.7.10版本,JAVA最大内存为8G(也就是8192m):

 

PS:我现在还在继续编写这个启动器,预计会加入下载等功能

—– 16-04-30 更新结束 —–

 

下面附上完整代码:

0

15 Comments

  • zengda

    不错,不错,看看了!

    0
    2016年4月6日 - 下午2:46 Reply
  • 弹霄博科

    不错啊,也欢迎把代码放到Coding(https://coding.net/register?key=119123f2-cfc6-4c00-9277-7dc1bff962ed) 上来

    0
    2016年4月15日 - 上午6:40 Reply
    • 弹霄博科

      好明显的推荐,2333

      0
      2016年4月15日 - 上午6:41 Reply
  • MINECRAFT

    如果可以有更详细的教学就好了><

    0
    2016年4月20日 - 下午1:25 Reply
  • MINECRAFT

    要怎么样运行呢><

    0
    2016年4月20日 - 下午1:25 Reply
    • WuSiYu

      把代码存为.py文件,然后在终端里用python运行它就可以了。
      命令行参数会提示的。

      其实这个启动器的功能十分简单,仅仅是能启动Minecraft。写这个的目的其实主要是为了给做服里的专用客户端做准备。
      要是日常使用,我还是推荐使用HMCL这种比较成熟的启动器。

      0
      2016年4月21日 - 上午1:41 Reply
      • MINECRAFT

        谢谢回复,but出现了些问题
        1. 该代码已存档成 .py文件
        2. .minecraft的文件也放在同一个文件夹里面
        3. 也已添加用户名和Version

        运行时,cmd 出现
        [-d Minecraft_dir] [-v version] [-m 2048m] Username
        Launch Minecraft
        [-d Minecraft_dir]
        List Minecraft versions

        请问程式中的那一部分还需要进行修改的呢><

        0
        2016年4月25日 - 下午8:07 Reply
        • WuSiYu

          输出这个是正常的。
          这是一个命令行程序,需要通过命令行参数来运行。
          如果没有参数输入,则会输出帮助信息。

          正确的使用方法是:python3 xxxx.py -v 要启动的版本 -d minecraft的目录 -m 最大的内存 你的ID

          前3个参数是可选的,而ID是必须的。

          更详细的说明等我更新一下文章

          PS:抱歉这么晚才看到

          0
          2016年4月30日 - 下午7:37 Reply
        • WuSiYu

          文章已添加更详细的使用方法

          0
          2016年4月30日 - 下午8:00 Reply
          • MINECRAFT

            没关系没关系, 谢谢你的耐心回复喔

            明天我晚上试看看

            我会继续一直关注你的BLOG的,加油!

            0
            2016年5月2日 - 下午11:42
      • January

        Volkswagen is a good brand and Jetta is a good model. Go for it if you do2&8#n17;t mind its look because many people don’t like it. Many friends of mine who own Jetta from 1998 model to latest model, no one has any complaint so far.

        0
        2016年5月15日 - 上午3:30 Reply
  • 静静

    我只想知道你用的这个光影是什么

    0
    2016年5月20日 - 下午2:04 Reply
    • WuSiYu

      自己改了一些的KUDA 5.06

      0
      2016年5月20日 - 下午9:23 Reply
  • CarnivioN

    请教一下,java的参数我不是很懂,-Xincgc是什么意思呢?我运行的时候说“Unrecognized option: -Xincgc”

    0
    2016年8月12日 - 下午10:10 Reply
    • WuSiYu

      打开增量式GC,以减少GC开销
      加不加应该都是可以的

      0
      2016年8月19日 - 上午1:06 Reply

Leave A Comment

Author Details
SiYu Wu 学生,Web开发者,智能硬件&IOT爱好者
Share Post