Rewrite authentication handling

Fix logout not working until restart
This commit is contained in:
johni0702
2015-08-31 16:16:22 +02:00
parent d72d12783f
commit aee9d6b232
14 changed files with 210 additions and 180 deletions

View File

@@ -6,8 +6,8 @@ import de.johni0702.minecraft.gui.element.GuiLabel;
import de.johni0702.minecraft.gui.element.GuiPasswordField;
import de.johni0702.minecraft.gui.element.GuiTextField;
import de.johni0702.minecraft.gui.layout.CustomLayout;
import eu.crushedpixel.replaymod.ReplayMod;
import eu.crushedpixel.replaymod.gui.GuiConstants;
import eu.crushedpixel.replaymod.online.authentication.AuthenticationHandler;
public class GuiLoginPrompt extends AbstractGuiScreen<GuiLoginPrompt> {
@@ -34,8 +34,8 @@ public class GuiLoginPrompt extends AbstractGuiScreen<GuiLoginPrompt> {
new Thread(new Runnable() {
@Override
public void run() {
switch(AuthenticationHandler.authenticate(username.getText(), password.getText())) {
case AuthenticationHandler.SUCCESS:
switch(ReplayMod.apiClient.login(username.getText(), password.getText())) {
case SUCCESS:
statusLabel.setText("");
getMinecraft().addScheduledTask(new Runnable() {
@Override
@@ -44,10 +44,10 @@ public class GuiLoginPrompt extends AbstractGuiScreen<GuiLoginPrompt> {
}
});
break;
case AuthenticationHandler.INVALID:
case INVALID_DATA:
statusLabel.setI18nText("replaymod.gui.login.incorrect");
break;
case AuthenticationHandler.NO_CONNECTION:
case IO_ERROR:
statusLabel.setI18nText("replaymod.gui.login.connectionerror");
break;
}

View File

@@ -7,9 +7,9 @@ import de.johni0702.minecraft.gui.element.*;
import de.johni0702.minecraft.gui.layout.CustomLayout;
import de.johni0702.minecraft.gui.layout.HorizontalLayout;
import de.johni0702.minecraft.gui.layout.VerticalLayout;
import eu.crushedpixel.replaymod.ReplayMod;
import eu.crushedpixel.replaymod.api.ApiException;
import eu.crushedpixel.replaymod.gui.GuiConstants;
import eu.crushedpixel.replaymod.online.authentication.AuthenticationHandler;
import eu.crushedpixel.replaymod.utils.EmailAddressUtils;
import eu.crushedpixel.replaymod.utils.RegexUtils;
import net.minecraft.client.gui.FontRenderer;
@@ -80,7 +80,7 @@ public class GuiRegister extends AbstractGuiScreen<GuiRegister> {
String username = usernameInput.getText().trim();
String mail = mailInput.getText().trim();
String password = passwordInput.getText();
AuthenticationHandler.register(username, mail, password);
ReplayMod.apiClient.register(username, mail, password);
getMinecraft().addScheduledTask(new Runnable() {
@Override

View File

@@ -14,7 +14,6 @@ import eu.crushedpixel.replaymod.gui.GuiConstants;
import eu.crushedpixel.replaymod.gui.elements.*;
import eu.crushedpixel.replaymod.gui.replayviewer.GuiReplayViewer;
import eu.crushedpixel.replaymod.holders.GuiEntryListStringEntry;
import eu.crushedpixel.replaymod.online.authentication.AuthenticationHandler;
import net.minecraft.client.gui.*;
import net.minecraft.client.resources.I18n;
import org.lwjgl.input.Keyboard;
@@ -22,8 +21,9 @@ import org.lwjgl.input.Keyboard;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
public class GuiReplayCenter extends GuiScreen implements GuiYesNoCallback {
@@ -59,7 +59,7 @@ public class GuiReplayCenter extends GuiScreen implements GuiYesNoCallback {
Keyboard.enableRepeatEvents(true);
if(!initialized) {
if(!AuthenticationHandler.isAuthenticated()) {
if(!ReplayMod.apiClient.isLoggedIn()) {
mc.displayGuiScreen(new GuiLoginPrompt(new GuiMainMenu(), this, true).toMinecraft());
}
@@ -73,11 +73,11 @@ public class GuiReplayCenter extends GuiScreen implements GuiYesNoCallback {
topBar.add(bestButton);
GuiButton downloadedReplayButton = new GuiButton(GuiConstants.CENTER_DOWNLOADED_REPLAYS_BUTTON, 20, 30, I18n.format("replaymod.gui.center.top.downloaded"));
downloadedReplayButton.enabled = AuthenticationHandler.isAuthenticated();
downloadedReplayButton.enabled = ReplayMod.apiClient.isLoggedIn();
topBar.add(downloadedReplayButton);
GuiButton favoritedReplayButton = new GuiButton(GuiConstants.CENTER_FAVORITED_REPLAYS_BUTTON, 20, 30, I18n.format("replaymod.gui.center.top.favorited"));
favoritedReplayButton.enabled = AuthenticationHandler.isAuthenticated();
favoritedReplayButton.enabled = ReplayMod.apiClient.isLoggedIn();
topBar.add(favoritedReplayButton);
GuiButton searchButton = new GuiButton(GuiConstants.CENTER_SEARCH_BUTTON, 20, 30, I18n.format("replaymod.gui.center.top.search"));
@@ -382,7 +382,7 @@ public class GuiReplayCenter extends GuiScreen implements GuiYesNoCallback {
mc.addScheduledTask(new Runnable() {
@Override
public void run() {
AuthenticationHandler.logout();
ReplayMod.apiClient.logout();
mc.displayGuiScreen(new GuiMainMenu());
}
});

View File

@@ -7,7 +7,6 @@ import eu.crushedpixel.replaymod.gui.GuiConstants;
import eu.crushedpixel.replaymod.gui.elements.*;
import eu.crushedpixel.replaymod.gui.elements.listeners.ProgressUpdateListener;
import eu.crushedpixel.replaymod.gui.replayviewer.GuiReplayViewer;
import eu.crushedpixel.replaymod.online.authentication.AuthenticationHandler;
import eu.crushedpixel.replaymod.recording.ReplayMetaData;
import eu.crushedpixel.replaymod.registry.KeybindRegistry;
import eu.crushedpixel.replaymod.registry.ResourceHelper;
@@ -135,7 +134,7 @@ public class GuiUploadFile extends GuiScreen implements ProgressUpdateListener {
return;
}
if(!AuthenticationHandler.isAuthenticated()) {
if(!ReplayMod.apiClient.isLoggedIn()) {
mc.displayGuiScreen(new GuiLoginPrompt(parent, this, true).toMinecraft());
return;
}
@@ -320,12 +319,12 @@ public class GuiUploadFile extends GuiScreen implements ProgressUpdateListener {
FileUtils.copyFile(replayFile, tmp);
ReplayFileIO.addFilesToZip(tmp, toAdd);
uploader.uploadFile(GuiUploadFile.this, AuthenticationHandler.getKey(), name, tags, tmp, category, desc);
uploader.uploadFile(GuiUploadFile.this, name, tags, tmp, category, desc);
FileUtils.deleteQuietly(tmpMeta);
FileUtils.deleteQuietly(tmp);
} else {
uploader.uploadFile(GuiUploadFile.this, AuthenticationHandler.getKey(), name, tags, replayFile, category, desc);
uploader.uploadFile(GuiUploadFile.this, name, tags, replayFile, category, desc);
}
ReplayMod.uploadedFileHandler.markAsUploaded(replayFile);