API JsonCRUD:
Code : Tout sélectionner
using LitJson;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using UnityEngine;
using UnityEngine.Networking;
/// <summary>
/// API qui contient mes fonctions afin de Lire, Modifier, Reset un fichier Json
/// </summary>
public class JsonCRUDS
{
/// <summary>
/// Permet d'écrire dans un fichier json, ainsi que vérifier si il est sur android ou sur un ordinateur.
/// </summary>
/// <param name="pathFile">Chemin d'accès si tu es sur ordinateur</param>
/// <param name="obj">L'objet qui sera converti en json</param>
public void writeFile(string pathFile, object obj)
{
JsonData data = JsonMapper.ToJson(obj);
UnityWebRequest writer = UnityWebRequest.Put(pathFile, data.ToString());
writer.method = "POST";
writer.SetRequestHeader("Content-Type", "application/json");
writer.SetRequestHeader("Accept", "application/json");
writer.SendWebRequest();
using (StreamWriter streamWriter = new StreamWriter(pathFile))
{
string json = data.ToString();
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
}
/// <summary>
/// Permet de reset un fichier json, ainsi que vérifier si il est sur android ou sur un ordinateur.
/// </summary>
/// <param name="pathFileAndroid">Chemin d'accès si tu es sur android</param>
/// <param name="pathFileNotAndroid">Chemin d'accès si tu es sur ordinateur</param>
public void resetFile(string pathFileAndroid, string pathFileNotAndroid)
{
if (Application.platform == RuntimePlatform.Android)
{
File.WriteAllText(pathFileAndroid, string.Empty);
return;
}
else
{
File.WriteAllText(pathFileNotAndroid, string.Empty);
return;
}
//File.WriteAllText(pathFileNotAndroid, string.Empty);
//return;
}
/// <summary>
/// Permet de lire un fichier json sur android ou ordinateur.
/// </summary>
/// <param name="pathFile">Chemin d'accès au fichier Json</param>
/// <returns>Renvoie l'intérieur du fichier json</returns>
public string readFile(string pathFile)
{
UnityWebRequest reader = UnityWebRequest.Get(pathFile);
reader.SendWebRequest();
return reader.downloadHandler.text;
}
}
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using LitJson;
/// <summary>
/// Class qui va gerer le system de connexion de mon utilisateur
/// </summary>
public class Connexion : MonoBehaviour
{
[Header("Script")]
private MessageListe message = new MessageListe();
private JsonCRUDS jsonCRUDS = new JsonCRUDS();
[Header("Panel PopUp")]
public GameObject panelPop;
[Header("InputField")]
public InputField adresseMail;
public InputField password;
[Header("Boutton Accepter")]
public Button accept;
[Header("Boutton Close PopUp")]
public Button close;
[Header("Panel Login")]
public GameObject panelLogin;
[Header("Audio Source")]
public AudioSource soundClick;
[Header("Waiting Seconde")]
public float waitSeconde;
[Header("Script ProgressBar")]
public GameObject scriptProgressBar;
public Text textTest;
private bool ok = true;
/// <summary>
/// Vérifier si au lancement de l'application le json [utilisateur.json] est vide, si oui -> je fais rien, si non -> lancement de ma barre de progression.
/// </summary>
public void Start()
{
string jsonFile = jsonCRUDS.readFile(Application.streamingAssetsPath + "/Utilisateur.json");
if (jsonFile != "")
{
textTest.text = jsonFile;
//scriptProgressBar.SetActive(true);
}
else
{
textTest.text = "Vide";
}
}
/// <summary>
/// Appeller mon IEnumerator ConnexionUser_() de ma class.
/// </summary>
public void ConnexionUser()
{
StartCoroutine(ConnexionUser_());
}
/// <summary>
/// Appeller mon IEnumerator ClosePopUp_() de ma class.
/// </summary>
private void ClosePopUp()
{
StartCoroutine(ClosePopUp_());
}
/// <summary>
/// Jouer un son avant le system de connexion ainsi que gérer le system de connexion.
/// </summary>
/// <returns>Crée un timer entre le son jouer et le system de Connexion</returns>
IEnumerator ConnexionUser_()
{
BouttonSound btnSoundClick = new BouttonSound(soundClick);
btnSoundClick.Play();
yield return new WaitForSeconds(waitSeconde);
if (adresseMail.placeholder.isActiveAndEnabled)
{
this.OpenPopUp(message.Texte_Empty_Mail);
}
else if (password.placeholder.isActiveAndEnabled)
{
this.OpenPopUp(message.Texte_Empty_Password);
}
else if (!adresseMail.placeholder.isActiveAndEnabled && !password.placeholder.isActiveAndEnabled)
{
ConnectMinecraft();
}
accept.onClick.RemoveAllListeners();
accept.onClick.AddListener(ClosePopUp);
close.onClick.RemoveAllListeners();
close.onClick.AddListener(ClosePopUp);
}
/// <summary>
/// Jouer un son avant la fermeture de la Pop-Up ainsi que fermer la Pop-Up. {Utilise l'api [BouttonSound.class]}
/// </summary>
/// <returns>Crée un timer entre le son jouer et le system de fermer la Pop-Up</returns>
IEnumerator ClosePopUp_()
{
BouttonSound btnSoundClick = new BouttonSound(soundClick);
btnSoundClick.Play();
yield return new WaitForSeconds(waitSeconde);
panelPop.SetActive(false);
}
/// <summary>
/// Ouvrire la fenêtre Pop-Up avec un message custom. {Utilise l'api [PopUp.class]}
/// </summary>
/// <param name="message_">Message qui sera afficher dans ma PopUp</param>
private void OpenPopUp(string message_)
{
PopUp popUp = new PopUp(message_, panelPop);
popUp.Build();
}
/// <summary>
/// Tester si l'adresse email ainsi que le mot de passe sont des identifiants valides de Mojang ensuite si ils sont corrects les Enregistrés dans un json sinon j'ouvre une Pop-Up avec un message customiser. {utilise l'api [ConnectMinecraft.class] et [JsonCRUDS.class]}
/// </summary>
private void ConnectMinecraft()
{
try
{
ConnectMinecraft cm = new ConnectMinecraft(adresseMail.text, password.text);
string token = cm.Access_Token1;
JsonData data = JsonMapper.ToObject(token);
InformationPlayer.username = data["selectedProfile"]["name"].ToString();
InformationPlayer.uuid = data["selectedProfile"]["id"].ToString();
//textTest.text = data["selectedProfile"]["name"].ToString() + data["selectedProfile"]["id"].ToString();
UtilisateurJson utilisateurJson = new UtilisateurJson(InformationPlayer.username,InformationPlayer.uuid);
jsonCRUDS.writeFile(Application.streamingAssetsPath + "/Utilisateur.json", utilisateurJson);
ok = true;
//scriptProgressBar.SetActive(true);
}
catch (WebException e)
{
this.OpenPopUp(message.Texte_Error_Mail_Password);
}
}
}
public class UtilisateurJson
{
public string username;
public string uuid;
public UtilisateurJson(string username_, string uuid_)
{
this.username = username_;
this.uuid = uuid_;
}
}