114 lines
3.5 KiB
C#
114 lines
3.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
public class NewLoginManager : MonoBehaviour
|
|
{
|
|
public GameObject loadingPanel;
|
|
public GameObject newUsernamePanel;
|
|
public GameObject usernameWarning;
|
|
public TMP_InputField usernameInput;
|
|
public Button btn_login;
|
|
public TMP_Text statusTxt;
|
|
public static bool loginSaved {get{return PlayerPrefs.HasKey("username") && PlayerPrefs.HasKey("password");}}
|
|
public static string savedUsername{get{return (loginSaved)? PlayerPrefs.GetString("username") : "";}}
|
|
public static string savedPassword{get{return (loginSaved)? PlayerPrefs.GetString("password") : "";}}
|
|
|
|
void Start()
|
|
{
|
|
statusTxt.text = "Checking credentials";
|
|
btn_login.onClick.AddListener(OnRegisterButton);
|
|
loadingPanel.SetActive(true);
|
|
if(!loginSaved){
|
|
Register();
|
|
}else{
|
|
TutorialManager.justRegistered=false;
|
|
Login();
|
|
}
|
|
}
|
|
|
|
public void Register(){
|
|
if(usernameInput.text.Length >=2){
|
|
StartCoroutine(register());
|
|
loadingPanel.SetActive(true);
|
|
}else{
|
|
newUsernamePanel.SetActive(true);
|
|
loadingPanel.SetActive(false);
|
|
}
|
|
}
|
|
|
|
IEnumerator register(){
|
|
statusTxt.text = "Registering you in...";
|
|
WWWForm form = new WWWForm();
|
|
form.AddField("key", "#2CuV1Bit^S!sW1ZcgRv8BhrO");
|
|
form.AddField("username", usernameInput.text);
|
|
|
|
WWW www = new WWW(DBmanager.phpRoot + "register_instant.php",form);
|
|
yield return www;
|
|
|
|
|
|
|
|
OnRegister(www.text);
|
|
}
|
|
|
|
void OnRegister(string id){
|
|
try{
|
|
TutorialManager.justRegistered=true;
|
|
int new_id = int.Parse(id);
|
|
PlayerPrefs.SetString("username", usernameInput.text+"#"+ id);
|
|
PlayerPrefs.SetString("password", id);
|
|
PlayerPrefs.Save();
|
|
|
|
Login();
|
|
}catch{
|
|
statusTxt.text = "Failed";
|
|
MessageDialog.instance.ShowMessage("Failed!", "Failed to register you into the game.\nReason: " + id);
|
|
newUsernamePanel.SetActive(true);
|
|
usernameInput.text = "";
|
|
}
|
|
|
|
}
|
|
|
|
void Login(){
|
|
StartCoroutine(login());
|
|
}
|
|
|
|
IEnumerator login(){
|
|
statusTxt.text = "Logging you in...";
|
|
|
|
WWWForm form = new WWWForm();
|
|
form.AddField("name", savedUsername);
|
|
form.AddField("password", savedPassword);
|
|
WWW www = new WWW(DBmanager.phpRoot + "login.php",form);
|
|
|
|
yield return www;
|
|
Debug.Log(www.text);
|
|
|
|
if(DBmanager.Login(www.text)==0){
|
|
SceneManager.LoadScene("GameScene");
|
|
}else{
|
|
statusTxt.text = "Failed!";
|
|
|
|
MessageDialog.instance.ShowQuestion("Error",
|
|
"Failed to log you in using saved credentials.\nDo you want to open game with guest account?",OnYes:Register, OnNo:OnLoginFailed);
|
|
}
|
|
}
|
|
|
|
void OnLoginFailed(){
|
|
MessageDialog.instance.ShowQuestion("Sorry", "Looks like there's been an issue logging you in\nPress yes to close the app and Try again later.", OnYes:()=>{Application.Quit();},onlyYes:true,OnNo:()=>{});
|
|
}
|
|
|
|
public void OnUsernameInputChanged(string newValue){
|
|
btn_login.interactable= (usernameInput.text.Length > 2);
|
|
usernameWarning.SetActive(usernameInput.text.Length< 2);
|
|
}
|
|
|
|
void OnRegisterButton(){
|
|
newUsernamePanel.SetActive(false);
|
|
Register();
|
|
}
|
|
}
|