minecraft吧 关注:2,568,809贴子:32,084,297

回复:我的世界启动器制作教程

只看楼主收藏回复

但是我要告诉您的是,branches里的版本列表是根本不全的!!!(有没有感觉到Forge团队深深的恶意?


来自Android客户端299楼2016-07-16 19:09
回复
    为了确保给用户显示最完整的版本,我们只有读取"number":部分,然后针对每个子项读取mcversion的值,比对是否是需要的版本。因为number里面是全的。


    来自Android客户端300楼2016-07-17 10:00
    回复
      2026-01-14 15:16:22
      广告
      不感兴趣
      开通SVIP免广告
      读取到Forge版本后我们就需要拼接出URL和文件名了!


      来自Android客户端301楼2016-07-18 18:57
      回复
        来自Android客户端302楼2016-07-19 21:25
        回复
          下 载 地 址 的拼接方式为 ht tp:/ /fi les.minecraftforge.n et/ma ven/n et/mine craftfor ge/for ge/MC游戏版本-for ge版本 (-bra nch的值,如果为nu ll就不需要括号内的内容) /for ge-MC游戏版本-For ge版本(-bra nch的值,如果为nu ll就不需要括号内的内容)-ins taller.ja r


          305楼2016-07-20 09:40
          回复
            那么,仅仅是下载就行了吗?显然不行。请大家下载302楼的链接,然后用压缩软件打开下载的JAR文件,可以看到有一个install_profile.json。打开它。


            306楼2016-07-20 09:46
            回复
              install_profile.json内容如下:
              {
              "install": {
              "profileName": "forge",
              "target":"1.10.2-forge1.10.2-12.18.1.2014",
              "path":"net.minecraftforge:forge:1.10.2-12.18.1.2014",
              "version":"forge 1.10.2-12.18.1.2014",
              "filePath":"forge-1.10.2-12.18.1.2014-universal.jar",
              "welcome":"Welcome to the simple forge installer.",
              "minecraft":"1.10.2",
              "mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
              "logo":"/big_logo.png"
              },
              "versionInfo": {
              "id": "1.10.2-forge1.10.2-12.18.1.2014",
              "time": "2016-07-13T19:08:46+0000",
              "releaseTime": "1960-01-01T00:00:00-0700",
              "type": "release",
              "minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
              "mainClass": "net.minecraft.launchwrapper.Launch",
              "inheritsFrom": "1.10.2",
              "jar": "1.10.2",
              "libraries": [
              {
              "name": "net.minecraftforge:forge:1.10.2-12.18.1.2014",
              "url": "http://files.minecraftforge.net/maven/"
              },
              {
              "name": "net.minecraft:launchwrapper:1.12",
              "serverreq":true
              },
              {
              "name": "org.ow2.asm:asm-all:5.0.3",
              "serverreq":true
              },
              {
              "name": "jline:jline:2.13",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
              "serverreq":true,
              "clientreq":false
              },
              {
              "name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "com.typesafe:config:1.2.1",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang:scala-compiler:2.11.1",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang:scala-library:2.11.1",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang:scala-reflect:2.11.1",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang:scala-swing_2.11:1.0.1",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "org.scala-lang:scala-xml_2.11:1.0.2",
              "url" : "http://files.minecraftforge.net/maven/",
              "checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
              "serverreq":true,
              "clientreq":true
              },
              {
              "name": "lzma:lzma:0.0.1",
              "serverreq":true
              },
              {
              "name": "net.sf.jopt-simple:jopt-simple:4.6",
              "serverreq":true
              },
              {
              "name": "java3d:vecmath:1.5.2",
              "clientreq":true,
              "serverreq":true
              },
              {
              "name": "net.sf.trove4j:trove4j:3.0.3",
              "clientreq":true,
              "serverreq":true
              }
              ]
              }
              }


              307楼2016-07-20 09:49
              回复
                相信您一定发现了,"versionInfo":后面的内容就是我们需要的json内容,我们只需要把JAR文件解压出来,然后解析install_profile.json,生成新的版本json文件即可。但是这样就没有jar文件了。我们只需要在读取到的json数据中加上"jar":"1.10.2(纯净版版本名)",即可。


                309楼2016-07-20 10:00
                回复
                  2026-01-14 15:10:22
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这样便完成了自动安装功能。代码要修改的太多,我就不发了,直接上网盘链接:http://pan.baidu.com/s/1eSI4osq


                  310楼2016-07-20 10:07
                  回复
                    之前有步骤做错的也可以下载参考。


                    311楼2016-07-20 10:10
                    回复
                      进阶九:正版登录


                      312楼2016-07-20 10:11
                      回复
                        正版登录是个非常烦的内容,我分开来讲解。
                        第一部分:加密


                        313楼2016-07-20 10:17
                        回复
                          我们知道(不知道的当我没说),正版登录是需要一个邮箱(不是用户名)和一个密码来登录。这就需要我们的启动器来为用户存储邮箱和密码。那么,你总不至于把别人的密码直接存储成文本文件吧?那样也太容易被盗号了。别人弄个小程序或者进你电脑假装操作一下,密码就到手了。因此现在市面上大部分启动器都是在存储密码是进行加密的。我们的启动器也要这么做,不然就没人要了。


                          314楼2016-07-20 10:21
                          回复
                            要想加密存储内容,我们有两种办法可以走:
                            1.通过加密配置文件
                            2.通过加密密码得到密文存储
                            我选的是第二种。不过无论是哪种,我们都需要一个加密算法。你可以使用现有的加密算法,比如MD5、HASH等。我呢,为了防止破解,建议大家自创一个加密算法。


                            本楼含有高级字体315楼2016-07-20 10:25
                            回复
                              2026-01-14 15:04:22
                              广告
                              不感兴趣
                              开通SVIP免广告
                              自创的加密算法最简单的自然是直接替换了。


                              来自Android客户端316楼2016-07-20 10:37
                              收起回复