From 280fe267ede1e16af2cf2d86f7bfebe6b353fe3d Mon Sep 17 00:00:00 2001 From: StellaArtois Date: Mon, 21 Jul 2014 14:00:55 +0100 Subject: [PATCH] Update installer to 1.7.10. Forge version fixed at 1180. --- build.py | 2 +- create_install.bat | 4 + create_install.py | 3 + create_install.sh | 5 +- installer/1.7.10-forge-nohydra.json | 349 +++++++++++++++++++++++ installer/1.7.10-forge.json | 331 +++++++++++++++++++++ installer/1.7.10-nohydra.json | 207 ++++++++++++++ installer/1.7.10.json | 12 +- installer/Installer.java | 25 +- installer/installer.ipr | 42 +++ installer/installer.iws | 427 ++++++++++++++++++++++++++++ installer/installer.jar | Bin 54772 -> 56006 bytes 12 files changed, 1387 insertions(+), 20 deletions(-) create mode 100644 create_install.bat create mode 100644 create_install.py create mode 100644 installer/1.7.10-forge-nohydra.json create mode 100644 installer/1.7.10-forge.json create mode 100644 installer/1.7.10-nohydra.json create mode 100644 installer/installer.ipr create mode 100644 installer/installer.iws diff --git a/build.py b/build.py index ed9ff094..9895976d 100644 --- a/build.py +++ b/build.py @@ -3,7 +3,7 @@ from optparse import OptionParser import subprocess, shlex -mc_ver ="1.6.4" +mc_ver ="1.7.10" try: WindowsError diff --git a/create_install.bat b/create_install.bat new file mode 100644 index 00000000..974e2723 --- /dev/null +++ b/create_install.bat @@ -0,0 +1,4 @@ +@echo off +REM.\mcp\runtime\bin\python\python_mcp create_install.py +python create_install.py +pause \ No newline at end of file diff --git a/create_install.py b/create_install.py new file mode 100644 index 00000000..65e5cef9 --- /dev/null +++ b/create_install.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python +from build import create_install +create_install("mcp908") diff --git a/create_install.sh b/create_install.sh index 2d981cbc..593c615c 100755 --- a/create_install.sh +++ b/create_install.sh @@ -1,3 +1,2 @@ -#!/usr/bin/env python -from build import create_install -create_install("mcp811") +#!/bin/bash +python create_install.py $@ diff --git a/installer/1.7.10-forge-nohydra.json b/installer/1.7.10-forge-nohydra.json new file mode 100644 index 00000000..ca388ce1 --- /dev/null +++ b/installer/1.7.10-forge-nohydra.json @@ -0,0 +1,349 @@ +{ + "id": "1.7.10-minecrift-$VERSION", + "time": "2014-05-14T18:29:23+01:00", + "releaseTime": "2014-05-14T18:29:23+01:00", + "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} --userProperties ${user_properties} --userType ${user_type} --tweakClass cpw.mods.fml.common.launcher.FMLTweaker", + "libraries": [ + { + "name": "optifine:OptiFine:1.7.10_HD_U_A4" + }, + { + "name": "net.minecraftforge:forge:1.7.10-10.13.0.1180", + "url": "http://files.minecraftforge.net/maven/" + }, + { + "name": "net.minecraft:launchwrapper:1.9", + "serverreq": true + }, + { + "name": "org.ow2.asm:asm-all:4.1", + "serverreq": true + }, + { + "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": "net.sf.jopt-simple:jopt-simple:4.5", + "serverreq": true + }, + { + "name": "lzma:lzma:0.0.1", + "serverreq": true + }, + { + "name": "com.mojang:realms:1.3.1" + }, + { + "name": "org.apache.commons:commons-compress:1.8.1" + }, + { + "name": "org.apache.httpcomponents:httpclient:4.3.3" + }, + { + "name": "commons-logging:commons-logging:1.1.3" + }, + { + "name": "org.apache.httpcomponents:httpcore:4.3.2" + }, + { + "name": "java3d:vecmath:1.3.1" + }, + { + "name": "net.sf.trove4j:trove4j:3.0.3" + }, + { + "name": "com.ibm.icu:icu4j-core-mojang:51.2" + }, + { + "name": "com.paulscode:codecjorbis:20101023" + }, + { + "name": "com.paulscode:codecwav:20101023" + }, + { + "name": "com.paulscode:libraryjavasound:20101123" + }, + { + "name": "com.paulscode:librarylwjglopenal:20100824" + }, + { + "name": "com.paulscode:soundsystem:20120107" + }, + { + "name": "io.netty:netty-all:4.0.10.Final" + }, + { + "name": "com.google.guava:guava:16.0" + }, + { + "name": "org.apache.commons:commons-lang3:3.2.1" + }, + { + "name": "commons-io:commons-io:2.4" + }, + { + "name": "commons-codec:commons-codec:1.9" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "com.google.code.gson:gson:2.2.4" + }, + { + "name": "com.mojang:authlib:1.5.16" + }, + { + "name": "org.apache.logging.log4j:log4j-api:2.0-beta9" + }, + { + "name": "org.apache.logging.log4j:log4j-core:2.0-beta9" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1" + }, + { + "name": "de.fruitfly.ovr:JRift:0.3.2.1", + "url": "http://repo.minecraft-vr.com/" + }, + { + "name": "com.sixense:SixenseJava:062612.1", + "url": "http://repo.minecraft-vr.com/" + }, + { + "name": "net.aib42.mumblelink:JMumble:1.0", + "url": "http://repo.minecraft-vr.com/" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "tv.twitch:twitch:5.16" + }, + { + "name": "tv.twitch:twitch-platform:5.16", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "linux" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows-${arch}", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "tv.twitch:twitch-external-platform:4.5", + "rules": [ + { + "action": "allow", + "os": { + "name": "windows" + } + } + ], + "natives": { + "windows": "natives-windows-${arch}" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "de.fruitfly.ovr:JRiftLibrary:0.3.2.1", + "url": "http://repo.minecraft-vr.com/", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.aib42.mumblelink:JMumbleLibrary:1.1", + "url": "http://repo.minecraft-vr.com/", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "com.sixense:SixenseJavaLibrary:062612.0", + "url": "http://repo.minecraft-vr.com/", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 13, + "assets": "1.7.10" +} diff --git a/installer/1.7.10-forge.json b/installer/1.7.10-forge.json new file mode 100644 index 00000000..62cb95c5 --- /dev/null +++ b/installer/1.7.10-forge.json @@ -0,0 +1,331 @@ +{ + "id": "1.7.10-minecrift-$VERSION", + "time": "2014-05-14T18:29:23+01:00", + "releaseTime": "2014-05-14T18:29:23+01:00", + "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} --userProperties ${user_properties} --userType ${user_type} --tweakClass cpw.mods.fml.common.launcher.FMLTweaker", + "libraries": [ + { + "name": "optifine:OptiFine:1.7.10_HD_U_A4" + }, + { + "name": "net.minecraftforge:forge:1.7.10-10.13.0.1180", + "url": "http://files.minecraftforge.net/maven/" + }, + { + "name": "net.minecraft:launchwrapper:1.9", + "serverreq": true + }, + { + "name": "org.ow2.asm:asm-all:4.1", + "serverreq": true + }, + { + "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": "net.sf.jopt-simple:jopt-simple:4.5", + "serverreq": true + }, + { + "name": "lzma:lzma:0.0.1", + "serverreq": true + }, + { + "name": "com.mojang:realms:1.3.1" + }, + { + "name": "org.apache.commons:commons-compress:1.8.1" + }, + { + "name": "org.apache.httpcomponents:httpclient:4.3.3" + }, + { + "name": "commons-logging:commons-logging:1.1.3" + }, + { + "name": "org.apache.httpcomponents:httpcore:4.3.2" + }, + { + "name": "java3d:vecmath:1.3.1" + }, + { + "name": "net.sf.trove4j:trove4j:3.0.3" + }, + { + "name": "com.ibm.icu:icu4j-core-mojang:51.2" + }, + { + "name": "com.paulscode:codecjorbis:20101023" + }, + { + "name": "com.paulscode:codecwav:20101023" + }, + { + "name": "com.paulscode:libraryjavasound:20101123" + }, + { + "name": "com.paulscode:librarylwjglopenal:20100824" + }, + { + "name": "com.paulscode:soundsystem:20120107" + }, + { + "name": "io.netty:netty-all:4.0.10.Final" + }, + { + "name": "com.google.guava:guava:16.0" + }, + { + "name": "org.apache.commons:commons-lang3:3.2.1" + }, + { + "name": "commons-io:commons-io:2.4" + }, + { + "name": "commons-codec:commons-codec:1.9" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "com.google.code.gson:gson:2.2.4" + }, + { + "name": "com.mojang:authlib:1.5.16" + }, + { + "name": "org.apache.logging.log4j:log4j-api:2.0-beta9" + }, + { + "name": "org.apache.logging.log4j:log4j-core:2.0-beta9" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1" + }, + { + "name": "de.fruitfly.ovr:JRift:0.3.2.1", + "url": "http://repo.minecraft-vr.com/" + }, + { + "name": "net.aib42.mumblelink:JMumble:1.0", + "url": "http://repo.minecraft-vr.com/" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "tv.twitch:twitch:5.16" + }, + { + "name": "tv.twitch:twitch-platform:5.16", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "linux" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows-${arch}", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "tv.twitch:twitch-external-platform:4.5", + "rules": [ + { + "action": "allow", + "os": { + "name": "windows" + } + } + ], + "natives": { + "windows": "natives-windows-${arch}" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "de.fruitfly.ovr:JRiftLibrary:0.3.2.1", + "url": "http://repo.minecraft-vr.com/", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.aib42.mumblelink:JMumbleLibrary:1.1", + "url": "http://repo.minecraft-vr.com/", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 13, + "assets": "1.7.10" +} diff --git a/installer/1.7.10-nohydra.json b/installer/1.7.10-nohydra.json new file mode 100644 index 00000000..6573def0 --- /dev/null +++ b/installer/1.7.10-nohydra.json @@ -0,0 +1,207 @@ +{ + "id": "1.7.10-minecrift-$VERSION", + "time": "2014-05-14T18:29:23+01:00", + "releaseTime": "2014-05-14T18:29:23+01:00", + "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} --userProperties ${user_properties} --userType ${user_type} --tweakClass optifine.OptiFineTweaker", + "libraries": [ + { + "name": "optifine:OptiFine:1.7.10_HD_U_A4" + }, + { + "name": "net.minecraft:launchwrapper:1.7" + }, + { + "name": "com.mojang:realms:1.2.7" + }, + { + "name": "org.apache.commons:commons-compress:1.8.1" + }, + { + "name": "org.apache.httpcomponents:httpclient:4.3.3" + }, + { + "name": "commons-logging:commons-logging:1.1.3" + }, + { + "name": "org.apache.httpcomponents:httpcore:4.3.2" + }, + { + "name": "java3d:vecmath:1.3.1" + }, + { + "name": "net.sf.trove4j:trove4j:3.0.3" + }, + { + "name": "com.ibm.icu:icu4j-core-mojang:51.2" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "com.paulscode:codecjorbis:20101023" + }, + { + "name": "com.paulscode:codecwav:20101023" + }, + { + "name": "com.paulscode:libraryjavasound:20101123" + }, + { + "name": "com.paulscode:librarylwjglopenal:20100824" + }, + { + "name": "com.paulscode:soundsystem:20120107" + }, + { + "name": "io.netty:netty-all:4.0.10.Final" + }, + { + "name": "com.google.guava:guava:15.0" + }, + { + "name": "org.apache.commons:commons-lang3:3.1" + }, + { + "name": "commons-io:commons-io:2.4" + }, + { + "name": "commons-codec:commons-codec:1.9" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "com.google.code.gson:gson:2.2.4" + }, + { + "name": "com.mojang:authlib:1.5.13" + }, + { + "name": "org.apache.logging.log4j:log4j-api:2.0-beta9" + }, + { + "name": "org.apache.logging.log4j:log4j-core:2.0-beta9" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1" + }, + { + "name": "de.fruitfly.ovr:JRift:0.3.2.1", + "url": "http://repo.minecraft-vr.com/" + }, + { + "name": "net.aib42.mumblelink:JMumble:1.0", + "url": "http://repo.minecraft-vr.com/" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "tv.twitch:twitch:5.16" + }, + { + "name": "tv.twitch:twitch-platform:5.16", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "linux" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows-${arch}", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "tv.twitch:twitch-external-platform:4.5", + "rules": [ + { + "action": "allow", + "os": { + "name": "windows" + } + } + ], + "natives": { + "windows": "natives-windows-${arch}" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "de.fruitfly.ovr:JRiftLibrary:0.3.2.1", + "url": "http://repo.minecraft-vr.com/", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.aib42.mumblelink:JMumbleLibrary:1.1", + "url": "http://repo.minecraft-vr.com/", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 13, + "assets": "1.7.10" +} diff --git a/installer/1.7.10.json b/installer/1.7.10.json index 9759dabf..27a86424 100644 --- a/installer/1.7.10.json +++ b/installer/1.7.10.json @@ -94,15 +94,15 @@ }, { "name": "de.fruitfly.ovr:JRift:0.3.2.1", - "url": "http://repo.minecraft-vr.com/" + "url": "http://repo.minecraft-vr.com/" }, { "name": "com.sixense:SixenseJava:062612.1", - "url": "http://repo.minecraft-vr.com/" + "url": "http://repo.minecraft-vr.com/" }, { "name": "net.aib42.mumblelink:JMumble:1.0", - "url": "http://repo.minecraft-vr.com/" + "url": "http://repo.minecraft-vr.com/" }, { "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1", @@ -178,7 +178,7 @@ }, { "name": "de.fruitfly.ovr:JRiftLibrary:0.3.2.1", - "url": "http://repo.minecraft-vr.com/", + "url": "http://repo.minecraft-vr.com/", "natives": { "linux": "natives-linux", "windows": "natives-windows", @@ -192,7 +192,7 @@ }, { "name": "net.aib42.mumblelink:JMumbleLibrary:1.1", - "url": "http://repo.minecraft-vr.com/", + "url": "http://repo.minecraft-vr.com/", "natives": { "linux": "natives-linux", "windows": "natives-windows", @@ -206,7 +206,7 @@ }, { "name": "com.sixense:SixenseJavaLibrary:062612.0", - "url": "http://repo.minecraft-vr.com/", + "url": "http://repo.minecraft-vr.com/", "natives": { "linux": "natives-linux", "windows": "natives-windows", diff --git a/installer/Installer.java b/installer/Installer.java index 62be8d35..13e24129 100644 --- a/installer/Installer.java +++ b/installer/Installer.java @@ -25,7 +25,7 @@ /** * Derived from https://github.com/MinecraftForge/Installer/ - * Copyright 2013 MinecraftForge developers, Mark Browning, StellaArtois + * Copyright 2013 MinecraftForge developers, & Mark Browning, StellaArtois * * Licensed under GNU LGPL v2.1 or later. * @@ -34,8 +34,9 @@ */ public class Installer extends JPanel implements PropertyChangeListener { private static final long serialVersionUID = -562178983462626162L; - private static final String MC_VERSION = "1.6.4"; - private static final String OF_VERSION = "1.6.4_HD_U_D1"; + private static final String MC_VERSION = "1.7.10"; + private static final String OF_VERSION = "1.7.10_HD_U_A4"; + private static final String FORGE_VERSION = "10.13.0.1180"; private static final String OF_VERSION_EXT = "jar"; private static final String OF_LIB_PATH = "libraries/optifine/OptiFine/"; @@ -121,7 +122,7 @@ private boolean ExtractVersion() { if( jar_id != null ) { InputStream version_json; - if(useForge.isSelected() && forgeVersion.getSelectedItem() != forgeNotFound ) { + if(useForge.isSelected() /*&& forgeVersion.getSelectedItem() != forgeNotFound*/ ) { String filename; if( useHydra.isSelected() ) { filename = "version-forge.json"; @@ -136,7 +137,7 @@ public int read(byte[] buff) throws IOException { int ret = in.read(buff); if( ret > 0 ) { String s = new String( buff,0, ret, "UTF-8"); - s = s.replace("$FORGE_VERSION", (String)forgeVersion.getSelectedItem()); + //s = s.replace("$FORGE_VERSION", (String)forgeVersion.getSelectedItem()); ret = s.length(); System.arraycopy(s.getBytes("UTF-8"), 0, buff, 0, ret); } @@ -460,24 +461,28 @@ public Installer(File targetDir) JPanel forgePanel = new JPanel(); forgePanel.setLayout( new BoxLayout(forgePanel, BoxLayout.X_AXIS)); //Create forge: no/yes buttons - useForge = new JCheckBox("Install with Forge",false); + useForge = new JCheckBox("Install with Forge " + FORGE_VERSION,false); forgeVersion = new JComboBox(); //Add "yes" and "which version" to the forgePanel useForge.setAlignmentX(LEFT_ALIGNMENT); forgeVersion.setAlignmentX(LEFT_ALIGNMENT); forgePanel.add(useForge); - forgePanel.add(forgeVersion); + //forgePanel.add(forgeVersion); useHydra = new JCheckBox("Include Razer Hydra support",false); useHydra.setAlignmentX(LEFT_ALIGNMENT); - useHrtf = new JCheckBox("Setup binaural sound (OpenAL HRTF)", false); - useHrtf.setToolTipText("If checked, the installer will create the configuration file needed for ear-aware sound in Minecraft (and other games).
" + + useHrtf = new JCheckBox("Setup binaural audio", false); + useHrtf.setToolTipText( + "" + + "If checked, the installer will create the configuration file needed for OpenAL HRTF
" + + "ear-aware sound in Minecraft (and other games).
" + " If the file has previously been created, you do not need to check this again.
" + " NOTE: Your sound card's output MUST be set to 44.1Khz.
" + " WARNING, will overwrite " + (isWindows ? (appDataDir + "\\alsoft.ini") : (userHomeDir + "/.alsoftrc")) + "!
" + - " Delete the " + (isWindows ? "alsoft.ini" : "alsoftrc") + " file to disable HRTF again."); + " Delete the " + (isWindows ? "alsoft.ini" : "alsoftrc") + " file to disable HRTF again." + + ""); useHrtf.setAlignmentX(LEFT_ALIGNMENT); //Add option panels option panel diff --git a/installer/installer.ipr b/installer/installer.ipr new file mode 100644 index 00000000..2c5ef23c --- /dev/null +++ b/installer/installer.ipr @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/installer.iws b/installer/installer.iws new file mode 100644 index 00000000..f8af720b --- /dev/null +++ b/installer/installer.iws @@ -0,0 +1,427 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + + 1405942810236 + 1405942810236 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No facets are configured + + + + + + + + + + + + + + + 1.6 + + + + + + + + installer + + + + + + + + + + + + + + + + diff --git a/installer/installer.jar b/installer/installer.jar index 49cafee4495f554fca6f03f8af1319a799da3b9a..25615b5ebe0adac79673730f62299878f98e4e31 100644 GIT binary patch delta 14518 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