Files
PuzzleColorBall/Assets/Scripts/UsernameHandler.cs

134 lines
3.9 KiB
C#
Raw Normal View History

2023-03-20 19:56:27 +01:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Text;
using TMPro;
public class UsernameHandler : MonoBehaviour
{
public string username; //playerlistbe benne van az id-val
public int userid;
private string path;
public TMP_InputField input;
public GameObject inputBackground;
public Canvas usernameInputCanvas;
private StreamWriter writer;
private StreamReader reader;
private DatabaseData db;
private PlayerList playerList;
2023-05-02 13:46:38 +02:00
private CoinCounter cc;
2023-03-20 19:56:27 +01:00
private void Awake() {
input.gameObject.SetActive(false);
inputBackground.SetActive(false);
2023-05-22 14:37:24 +02:00
2023-03-20 19:56:27 +01:00
path = Application.persistentDataPath + "/username.txt";
2023-05-22 14:37:24 +02:00
2023-05-02 13:46:38 +02:00
cc = FindObjectOfType<CoinCounter>();
2023-05-22 14:37:24 +02:00
db = FindObjectOfType<DatabaseData>();
2023-03-20 19:56:27 +01:00
db.GetPlayerData();
}
private void Start() {
usernameCheck();
}
2023-03-21 17:13:35 +01:00
2023-03-20 19:56:27 +01:00
2023-05-22 14:37:24 +02:00
public void CallReadUsername(string username) => StartCoroutine(ReadUsername(username));
private IEnumerator ReadUsername(string username){ //kiirja az inputbol kapott usernevet fajlba
2023-03-20 19:56:27 +01:00
this.username = username;
2023-05-22 14:37:24 +02:00
Debug.Log("username" + this.username);
2023-03-20 19:56:27 +01:00
writer = new StreamWriter(path, false, Encoding.Default);
writer.Write(username);
writer.Close();
input.gameObject.SetActive(false);
inputBackground.SetActive(false);
usernameInputCanvas.gameObject.SetActive(false);
2023-05-22 14:37:24 +02:00
db.PostNewPlayerData(username); //nincs meg ilyen username az adatbazisba ezert vigye fel uj kent
Debug.Log("<color=red>uwr before:</color>" + db.GetUnityWebRequest().downloadHandler.text);
yield return new WaitUntil(() => db.GetUnityWebRequest().downloadHandler.text.Equals("Uj username!"));
Debug.Log("<color=red>uwr after:</color>" + db.GetUnityWebRequest().downloadHandler.text);
//eltarol playerek frissitese
db.players.player = null;
db.GetPlayerData();
yield return new WaitUntil(() => db.players.player != null); //varjon amig lekeri az adatokat
getId(true);
2023-03-20 19:56:27 +01:00
}
2023-05-22 14:37:24 +02:00
private void getId(bool newuser){
2023-03-20 19:56:27 +01:00
foreach(var item in db.players.player){
if(item.player_name.Equals(username)){
userid = item.player_id;
2023-05-22 14:37:24 +02:00
break;
2023-03-20 19:56:27 +01:00
}
}
2023-05-02 13:46:38 +02:00
2023-05-22 14:37:24 +02:00
if(newuser){
db.PostNewCoinData(0, userid); //ne uressel terjen vissza
}
2023-05-02 13:46:38 +02:00
db.GetCoinDataCall(userid);
2023-03-20 19:56:27 +01:00
}
private void usernameCheck(){
string data = "";
try
{
reader = new StreamReader(path);
}
catch (System.IO.FileNotFoundException)
{
//ha nem letezik a fajl aktivalja az inputot
usernameInputCanvas.gameObject.SetActive(true);
inputBackground.SetActive(true);
input.gameObject.SetActive(true);
}
if(File.Exists(path)){
while(!reader.EndOfStream){
data += reader.ReadLine();
}
if(data.Equals("")){ //nincs username meg
usernameInputCanvas.gameObject.SetActive(true);
input.gameObject.SetActive(true);
inputBackground.SetActive(true);
}else{
//van username
username = data;
Debug.Log("username: " + username);
2023-05-22 14:37:24 +02:00
getId(false);
2023-05-02 13:46:38 +02:00
//StartCoroutine(waitForCoins());
2023-03-20 19:56:27 +01:00
input.gameObject.SetActive(false);
inputBackground.SetActive(false);
usernameInputCanvas.gameObject.SetActive(false);
}
}
}
2023-05-02 13:46:38 +02:00
private IEnumerator waitForCoins(){
yield return new WaitUntil(() => db.coins != 0);
cc.SetCoin(db.GetCoins(userid));
Debug.Log("uh coin"+cc.coin);
}
2023-03-20 19:56:27 +01:00
}