package net.minecraft.client.main; import com.google.common.collect.HashMultimap; import com.google.gson.Gson; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.io.File; import java.lang.reflect.ParameterizedType; import java.net.Authenticator; import java.net.InetSocketAddress; import java.net.PasswordAuthentication; import java.net.Proxy; import java.net.Proxy.Type; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import joptsimple.ArgumentAcceptingOptionSpec; import joptsimple.NonOptionArgumentSpec; import joptsimple.OptionParser; import joptsimple.OptionSet; import net.minecraft.client.Minecraft; import net.minecraft.util.Session; @SideOnly(Side.CLIENT) public class Main { private static final java.lang.reflect.Type field_152370_a = new ParameterizedType() { private static final String __OBFID = "CL_00000828"; public java.lang.reflect.Type[] getActualTypeArguments() { return new java.lang.reflect.Type[] {String.class, new ParameterizedType() { private static final String __OBFID = "CL_00001836"; public java.lang.reflect.Type[] getActualTypeArguments() { return new java.lang.reflect.Type[] {String.class}; } public java.lang.reflect.Type getRawType() { return Collection.class; } public java.lang.reflect.Type getOwnerType() { return null; } } }; } public java.lang.reflect.Type getRawType() { return Map.class; } public java.lang.reflect.Type getOwnerType() { return null; } }; private static final String __OBFID = "CL_00001461"; public static void main(String[] p_main_0_) { System.setProperty("java.net.preferIPv4Stack", "true"); OptionParser optionparser = new OptionParser(); optionparser.allowsUnrecognizedOptions(); optionparser.accepts("demo"); optionparser.accepts("fullscreen"); ArgumentAcceptingOptionSpec argumentacceptingoptionspec = optionparser.accepts("server").withRequiredArg(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec1 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(25565), new Integer[0]); ArgumentAcceptingOptionSpec argumentacceptingoptionspec2 = optionparser.accepts("gameDir").withRequiredArg().ofType(File.class).defaultsTo(new File("."), new File[0]); ArgumentAcceptingOptionSpec argumentacceptingoptionspec3 = optionparser.accepts("assetsDir").withRequiredArg().ofType(File.class); ArgumentAcceptingOptionSpec argumentacceptingoptionspec4 = optionparser.accepts("resourcePackDir").withRequiredArg().ofType(File.class); ArgumentAcceptingOptionSpec argumentacceptingoptionspec5 = optionparser.accepts("proxyHost").withRequiredArg(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec6 = optionparser.accepts("proxyPort").withRequiredArg().defaultsTo("8080", new String[0]).ofType(Integer.class); ArgumentAcceptingOptionSpec argumentacceptingoptionspec7 = optionparser.accepts("proxyUser").withRequiredArg(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec8 = optionparser.accepts("proxyPass").withRequiredArg(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec9 = optionparser.accepts("username").withRequiredArg().defaultsTo("Player" + Minecraft.getSystemTime() % 1000L, new String[0]); ArgumentAcceptingOptionSpec argumentacceptingoptionspec10 = optionparser.accepts("uuid").withRequiredArg(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec11 = optionparser.accepts("accessToken").withRequiredArg().required(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec12 = optionparser.accepts("version").withRequiredArg().required(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec13 = optionparser.accepts("width").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(854), new Integer[0]); ArgumentAcceptingOptionSpec argumentacceptingoptionspec14 = optionparser.accepts("height").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(480), new Integer[0]); ArgumentAcceptingOptionSpec argumentacceptingoptionspec15 = optionparser.accepts("userProperties").withRequiredArg().required(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec16 = optionparser.accepts("assetIndex").withRequiredArg(); ArgumentAcceptingOptionSpec argumentacceptingoptionspec17 = optionparser.accepts("userType").withRequiredArg().defaultsTo("legacy", new String[0]); NonOptionArgumentSpec nonoptionargumentspec = optionparser.nonOptions(); OptionSet optionset = optionparser.parse(p_main_0_); List list = optionset.valuesOf(nonoptionargumentspec); String s = (String)optionset.valueOf(argumentacceptingoptionspec5); Proxy proxy = Proxy.NO_PROXY; if (s != null) { try { proxy = new Proxy(Type.SOCKS, new InetSocketAddress(s, ((Integer)optionset.valueOf(argumentacceptingoptionspec6)).intValue())); } catch (Exception exception) { ; } } final String s1 = (String)optionset.valueOf(argumentacceptingoptionspec7); final String s2 = (String)optionset.valueOf(argumentacceptingoptionspec8); if (!proxy.equals(Proxy.NO_PROXY) && func_110121_a(s1) && func_110121_a(s2)) { Authenticator.setDefault(new Authenticator() { private static final String __OBFID = "CL_00000829"; protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(s1, s2.toCharArray()); } }); } int i = ((Integer)optionset.valueOf(argumentacceptingoptionspec13)).intValue(); int j = ((Integer)optionset.valueOf(argumentacceptingoptionspec14)).intValue(); boolean flag = optionset.has("fullscreen"); boolean flag1 = optionset.has("demo"); String s3 = (String)optionset.valueOf(argumentacceptingoptionspec12); HashMultimap hashmultimap = HashMultimap.create(); Iterator iterator = ((Map)(new Gson()).fromJson((String)optionset.valueOf(argumentacceptingoptionspec15), field_152370_a)).entrySet().iterator(); while (iterator.hasNext()) { Entry entry = (Entry)iterator.next(); hashmultimap.putAll(entry.getKey(), (Iterable)entry.getValue()); } File file2 = (File)optionset.valueOf(argumentacceptingoptionspec2); File file3 = optionset.has(argumentacceptingoptionspec3) ? (File)optionset.valueOf(argumentacceptingoptionspec3) : new File(file2, "assets/"); File file1 = optionset.has(argumentacceptingoptionspec4) ? (File)optionset.valueOf(argumentacceptingoptionspec4) : new File(file2, "resourcepacks/"); String s4 = optionset.has(argumentacceptingoptionspec10) ? (String)argumentacceptingoptionspec10.value(optionset) : (String)argumentacceptingoptionspec9.value(optionset); String s5 = optionset.has(argumentacceptingoptionspec16) ? (String)argumentacceptingoptionspec16.value(optionset) : null; Session session = new Session((String)argumentacceptingoptionspec9.value(optionset), s4, (String)argumentacceptingoptionspec11.value(optionset), (String)argumentacceptingoptionspec17.value(optionset)); Minecraft minecraft = new Minecraft(session, i, j, flag, flag1, file2, file3, file1, proxy, s3, hashmultimap, s5); String s6 = (String)optionset.valueOf(argumentacceptingoptionspec); if (s6 != null) { minecraft.setServer(s6, ((Integer)optionset.valueOf(argumentacceptingoptionspec1)).intValue()); } Runtime.getRuntime().addShutdownHook(new Thread("Client Shutdown Thread") { private static final String __OBFID = "CL_00001835"; public void run() { Minecraft.stopIntegratedServer(); } }); if (!list.isEmpty()) { System.out.println("Completely ignored arguments: " + list); } Thread.currentThread().setName("Client thread"); minecraft.run(); } private static boolean func_110121_a(String p_110121_0_) { return p_110121_0_ != null && !p_110121_0_.isEmpty(); } }