Files
ReplayModCinematic/src/main/java/eu/crushedpixel/replaymod/online/authentication/AuthenticationHandler.java

96 lines
2.9 KiB
Java
Executable File

package eu.crushedpixel.replaymod.online.authentication;
import eu.crushedpixel.replaymod.ReplayMod;
import eu.crushedpixel.replaymod.api.client.ApiClient;
import eu.crushedpixel.replaymod.api.client.ApiException;
import eu.crushedpixel.replaymod.api.client.holders.AuthConfirmation;
import eu.crushedpixel.replaymod.api.client.holders.AuthKey;
import net.minecraftforge.common.config.Property;
import java.io.IOException;
public class AuthenticationHandler {
public static final int SUCCESS = 1;
public static final int INVALID = 2;
public static final int NO_CONNECTION = 3;
private static final ApiClient apiClient = new ApiClient();
private static String authkey = null;
private static String username = null;
public static boolean isAuthenticated() {
return authkey != null;
}
public static String getKey() {
return authkey;
}
public static String getUsername() { return username; }
public static boolean hasDonated(String uuid) throws IOException, ApiException {
return apiClient.hasDonated(uuid);
}
public static void register(String usrname, String mail, String password) throws IOException, ApiException {
AuthKey auth = apiClient.register(usrname, mail, password);
username = usrname;
authkey = auth.getAuthkey();
saveAuthkey(authkey);
}
public static void loadAuthkeyFromConfig() {
Property p = ReplayMod.instance.config.get("authkey", "authkey", "null");
String key = null;
if(!(p.getString().equals("null"))) {
key = p.getString();
}
if(key != null) {
AuthConfirmation conf = apiClient.checkAuthkey(key);
if(conf != null) {
authkey = key;
username = conf.getUsername();
} else {
saveAuthkey("null");
username = null;
}
}
}
public static int authenticate(String usrname, String password) {
try {
authkey = ReplayMod.apiClient.getLogin(usrname, password).getAuthkey();
username = usrname;
saveAuthkey(authkey);
return SUCCESS;
} catch(ApiException e) {
return INVALID;
} catch(Exception e) {
return NO_CONNECTION;
}
}
public static int logout() {
try {
ReplayMod.apiClient.logout(authkey);
authkey = null;
username = null;
saveAuthkey("null");
return SUCCESS;
} catch(ApiException e) {
return INVALID;
} catch(Exception e) {
return NO_CONNECTION;
}
}
private static void saveAuthkey(String authkey) {
ReplayMod.instance.config.removeCategory(ReplayMod.config.getCategory("authkey"));
ReplayMod.instance.config.get("authkey", "authkey", authkey);
ReplayMod.instance.config.save();
}
}