1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Done mym launcher does not work

Discussion in 'Other' started by DoomKeeper, May 19, 2017.

Thread Status:
Not open for further replies.
  1. Timkoo

    Timkoo Well-Known Member

    Messages:
    529
    Likes Received:
    39
    Local Time:
    9:21 AM
    did you try to use VPN? maybe that helps, i have link for one but you need to start conversation with me in order to get
     
  2. brandonlk

    brandonlk Well-Known Member

    Messages:
    616
    Likes Received:
    173
    Local Time:
    8:21 AM
    try using your email address that you used to create your minecraft account instead of your normal minecraft username, sometimes that is my issue
     
  3. wyndman

    wyndman Well-Known Member

    Messages:
    4,045
    Likes Received:
    2,014
    Local Time:
    3:21 AM
    Use what ever vpn you are using now, login to the moJang website change your password. Try logging in again after a few minutes.
     
  4. DoomKeeper

    DoomKeeper Well-Known Member

    Messages:
    21
    Likes Received:
    0
    Local Time:
    10:21 AM
    why should i change password it doesnt have anything wrong with any other launcher it does have problem with mym one tho.
     
  5. yurikha27

    yurikha27 Well-Known Member

    Messages:
    92
    Likes Received:
    33
    Local Time:
    3:21 AM
    Hi there,
    As a Java programmer myself, I've taken a look at your error log and the source code of the launcher, and I can explain some things. I can't exactly pinpoint the problem, but I'm going to try to walk you through what the error log says and some possible issues. Hopefully you can provide some more information so we can find the issue faster.
    Let's look at the error log:
    // A bunch of stacktrace garbage that's useful if you can read it, but I won't spend the time explaining it.

    This is a summary of the exception thrown. Apparently the JSON deserializer (this converts from a certain web-based object format into objects that Java can read) cannot create a Recommendation object because Recommendation.AVOID is not defined somewhere.
    Recommendation objects are used by launcher creators to give input on which modpacks to use, so this would probably be loaded before you log in. It's unlikely, then, that this is the real problem you're facing.
    Now, this may not be particularly helpful to you, but this is a very odd error because enumerations are declared in source code, and I see the declaration in the relevant class file (you can find it for yourself in the Feature class I've posted in the spoiler).
    It's important to note deserialization errors are usually caught elsewhere in the code and are almost never propagated to upper levels of the stack. And they definitely do not affect separate modules like the authentication. (I'm assuming good coding practices on the part of the SKLauncher developer). Note that, in particular, this deserialization error is occurring when loading modpack list data, not authentication data.
    So this is probably one of those "ignored" bugs in the launcher that nobody cares about because it doesn't affect usage that much. Let's get on to the real problem.

    In addition, this appears to have nothing to do with Minecraft authentication, which is handled in the auth package. So the error you're getting with login could be a bug where the launcher either isn't able to receive a valid reply from Mojang's auth servers, or where Mojang's auth servers are declining your login requests. This could mean you have the wrong password, but since you claim to be able to login with other launchers, I will assume it's the MyM launcher's problem.

    Before continuing, I would like to ask you to ensure that you can login on other launchers, don't have CAPS lock on, and are able to login on minecraft.net.

    Okay, so you've tried the above and it doesn't help. I cannot fix the MyM launcher for you, but you can attempt to "Play Offline" and use the ReAuth mod to login once you have launched the modpack. Once you have clicked the "Play Offline" button, the launcher will download the modpack and let you launch. Then you go to the "Multiplayer" tab, click the "Re-login" button at the top left of your screen, and enter your username and password. If this does not work, then please post here and I can try to figure something else out (i.e. file transplants).


    Relevant class:
    Code:
    /*
    * SK's Minecraft Launcher
    * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors
    * Please see LICENSE.txt for license information.
    */
    
    package com.skcraft.launcher.model.modpack;
    
    import com.fasterxml.jackson.annotation.JsonCreator;
    import com.fasterxml.jackson.annotation.JsonIdentityInfo;
    import com.fasterxml.jackson.annotation.JsonValue;
    import com.fasterxml.jackson.annotation.ObjectIdGenerators;
    import com.google.common.base.Strings;
    import lombok.Data;
    
    @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="name")
    @Data
    public class Feature implements Comparable<Feature> {
    
    	public enum Recommendation {
    		STARRED,
    		AVOID;
    
    		@JsonCreator
    		public static Recommendation fromJson(String text) {
    			return valueOf(text.toUpperCase());
    		}
    
    		@JsonValue
    		public String toJson() {
    			return name().toLowerCase();
    		};
    	};
    
    	private String name;
    	private String description;
    	private Recommendation recommendation;
    	private boolean selected;
    
    	public Feature() {
    	}
    
    	public Feature(String name, String description, boolean selected) {
    		this.name = name;
    		this.description = description;
    		this.selected = selected;
    	}
    
    	public Feature(Feature feature) {
    		setName(feature.getName());
    		setDescription(feature.getDescription());
    		setSelected(feature.isSelected());
    	}
    
    	@Override
    	public int hashCode() {
    		return super.hashCode();
    	}
    
    	@Override
    	public boolean equals(Object other) {
    		return super.equals(other);
    	}
    
    	@Override
    	public int compareTo(Feature o) {
    		return Strings.nullToEmpty(getName()).compareTo(Strings.nullToEmpty(o.getName()));
    	}
    }
    Code:
    /*** Eclipse Class Decompiler plugin, copyright (c) 2016 Chen Chao ([email protected]) ***/
    package com.fasterxml.jackson.databind.deser.std;
    
    import com.fasterxml.jackson.core.JsonParser;
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.core.JsonToken;
    import com.fasterxml.jackson.databind.DeserializationConfig;
    import com.fasterxml.jackson.databind.DeserializationContext;
    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.JsonDeserializer;import com.fasterxml.jackson.databind.JsonDeserializer<*>;
    import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
    import com.fasterxml.jackson.databind.util.ClassUtil;
    import com.fasterxml.jackson.databind.util.EnumResolver;
    import java.io.IOException;
    import java.lang.reflect.Method;
    
    public class EnumDeserializer extends StdScalarDeserializer<Enum<?>> {
    	private static final long serialVersionUID = -5893263645879532318L;
    	protected final EnumResolver<?> _resolver;
    
    	public EnumDeserializer(EnumResolver<?> paramEnumResolver) {
    		super(Enum.class);
    		this._resolver = paramEnumResolver;
    	}
    
    	public static JsonDeserializer<?> deserializerForCreator(
    			DeserializationConfig paramDeserializationConfig,
    			Class<?> paramClass, AnnotatedMethod paramAnnotatedMethod) {
    		Object localObject = paramAnnotatedMethod.getRawParameterType(0);
    		if (localObject == String.class)
    			localObject = null;
    		else if ((localObject == Integer.TYPE)
    				|| (localObject == Integer.class))
    			localObject = Integer.class;
    		else if ((localObject == Long.TYPE) || (localObject == Long.class))
    			localObject = Long.class;
    		else {
    			throw new IllegalArgumentException(
    					"Parameter #0 type for factory method ("
    							+ paramAnnotatedMethod
    							+ ") not suitable, must be java.lang.String or int/Integer/long/Long");
    		}
    
    		if (paramDeserializationConfig.canOverrideAccessModifiers()) {
    			ClassUtil.checkAndFixAccess(paramAnnotatedMethod.getMember());
    		}
    		return ((JsonDeserializer<?>) new FactoryBasedDeserializer(paramClass,
    				paramAnnotatedMethod, (Class) localObject));
    	}
    
    	public boolean isCachable() {
    		return true;
    	}
    
    	public Enum<?> deserialize(JsonParser paramJsonParser,
    			DeserializationContext paramDeserializationContext)
    			throws IOException, JsonProcessingException {
    		JsonToken localJsonToken = paramJsonParser.getCurrentToken();
    		Enum localEnum;
    		if ((localJsonToken == JsonToken.VALUE_STRING)
    				|| (localJsonToken == JsonToken.FIELD_NAME)) {
    			String str = paramJsonParser.getText();
    			localEnum = this._resolver.findEnum(str);
    			if (localEnum == null) {
    				if ((paramDeserializationContext.isEnabled(
    						DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT))
    						&& (((str.length() == 0)
    								|| (str.trim().length() == 0)))) {
    					return null;
    				}
    
    				if (!(paramDeserializationContext.isEnabled(
    						DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL))) {
    					throw paramDeserializationContext.weirdStringException(str,
    							this._resolver.getEnumClass(),
    							"value not one of declared Enum instance names: "
    									+ this._resolver.getEnums());
    				}
    			}
    
    			return localEnum;
    		}
    
    		if (localJsonToken == JsonToken.VALUE_NUMBER_INT) {
    			if (paramDeserializationContext.isEnabled(
    					DeserializationFeature.FAIL_ON_NUMBERS_FOR_ENUMS)) {
    				throw paramDeserializationContext.mappingException(
    						"Not allowed to deserialize Enum value out of JSON number (disable DeserializationConfig.DeserializationFeature.FAIL_ON_NUMBERS_FOR_ENUMS to allow)");
    			}
    
    			int i = paramJsonParser.getIntValue();
    			localEnum = this._resolver.getEnum(i);
    			if ((localEnum == null) && (!(paramDeserializationContext.isEnabled(
    					DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL)))) {
    				throw paramDeserializationContext.weirdNumberException(
    						Integer.valueOf(i), this._resolver.getEnumClass(),
    						"index value outside legal index range [0.."
    								+ this._resolver.lastValidIndex() + "]");
    			}
    
    			return localEnum;
    		}
    		throw paramDeserializationContext
    				.mappingException(this._resolver.getEnumClass());
    	}
    
    	protected static class FactoryBasedDeserializer
    			extends StdScalarDeserializer<Object> {
    		private static final long serialVersionUID = -7775129435872564122L;
    		protected final Class<?> _enumClass;
    		protected final Class<?> _inputType;
    		protected final Method _factory;
    
    		public FactoryBasedDeserializer(Class<?> paramClass1,
    				AnnotatedMethod paramAnnotatedMethod, Class<?> paramClass2) {
    			super(Enum.class);
    			this._enumClass = paramClass1;
    			this._factory = paramAnnotatedMethod.getAnnotated();
    			this._inputType = paramClass2;
    		}
    
    		public Object deserialize(JsonParser paramJsonParser,
    				DeserializationContext paramDeserializationContext)
    				throws IOException, JsonProcessingException {
    			Object localObject;
    			if (this._inputType == null)
    				localObject = paramJsonParser.getText();
    			else if (this._inputType == Integer.class)
    				localObject = Integer.valueOf(paramJsonParser.getValueAsInt());
    			else if (this._inputType == Long.class)
    				localObject = Long.valueOf(paramJsonParser.getValueAsLong());
    			else
    				throw paramDeserializationContext
    						.mappingException(this._enumClass);
    			try {
    				return this._factory.invoke(this._enumClass,
    						new Object[] { localObject });
    			} catch (Exception localException) {
    				Throwable localThrowable = ClassUtil
    						.getRootCause(localException);
    				if (localThrowable instanceof IOException) {
    					throw ((IOException) localThrowable);
    				}
    				throw paramDeserializationContext.instantiationException(
    						this._enumClass, localThrowable);
    			}
    		}
    	}
    }
     
  6. DoomKeeper

    DoomKeeper Well-Known Member

    Messages:
    21
    Likes Received:
    0
    Local Time:
    10:21 AM
    pack needs an update and it needs to be in online mode xD so does not start in any way.. nvm will use curse for different modpack... mym launcher is cancer lol
     
Thread Status:
Not open for further replies.

Share This Page