MIF_E31221325/Assets/script/regist.cs

148 lines
4.0 KiB
C#

using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using TMPro;
using System.Collections;
public class regist : MonoBehaviour
{
public TMP_Text nama;
public TMP_Text noAbsen;
public TMP_Text pesanKoneksi;
[System.Serializable]
public class SimpleResponse
{
public int id;
}
//auto login
void Start()
{
// Auto login jika data sudah ada
if (PlayerPrefs.HasKey("userId"))
{
int id = PlayerPrefs.GetInt("userId");
string savedNama = PlayerPrefs.GetString("namaUser");
string savedAbsen = PlayerPrefs.GetString("noAbsen");
if (GlobalUser.Instance != null)
{
GlobalUser.Instance.userId = id;
GlobalUser.Instance.namaUser = savedNama;
GlobalUser.Instance.noAbsen = savedAbsen;
}
// SceneManager.LoadScene("pretest"); // ganti sesuai nama scene
//perubahan sementara
// Cek apakah pretest sudah selesai
if (PlayerPrefs.GetInt("pretest_selesai", 0) == 1)
{
SceneManager.LoadScene("MainMenu"); // ganti sesuai nama scene main kamu
}
else
{
SceneManager.LoadScene("pretest");
}
}
}
/// spasi
void Update()
{
// Tombol back HP atau Escape di laptop = keluar game langsung di scene register
if (Input.GetKeyDown(KeyCode.Escape))
{
Application.Quit();
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#endif
}
}
public string BersihkanKarakter(string input)
{
// Hilangkan karakter yang tidak bisa di-encode ke UTF-8
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(input);
return System.Text.Encoding.UTF8.GetString(bytes);
}
public void Btn_Registrasi()
{
StartCoroutine(KirimData(nama.text, noAbsen.text));
}
IEnumerator KirimData(string namaUser, string absenUser)
{
WWWForm form = new WWWForm();
form.AddField("nama", namaUser);
form.AddField("no_absen", absenUser);
form.AddField("api", "register");
string url = "https://wifiapi.wazzgroup.com/api.php";
using (UnityWebRequest www = UnityWebRequest.Post(url, form))
{
www.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); // tambahan penting
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success)
{
Debug.LogError("Gagal kirim data: " + www.error);
if (pesanKoneksi != null)
{
pesanKoneksi.text = "Pastikan perangkat terhubung dengan internet!";
StartCoroutine(HilangkanPesanSetelahDelay(2f)); // Hilangkan setelah 2 detik
}
}
else
{
string response = www.downloadHandler.text;
Debug.Log("Respon server: " + response);
SimpleResponse data = JsonUtility.FromJson<SimpleResponse>(response);
if (GlobalUser.Instance != null)
{
GlobalUser.Instance.userId = data.id;
GlobalUser.Instance.namaUser = namaUser;
GlobalUser.Instance.noAbsen = absenUser;
}
//sipan perfab
PlayerPrefs.SetInt("userId", data.id);
PlayerPrefs.SetString("namaUser", namaUser);
PlayerPrefs.SetString("noAbsen", absenUser);
PlayerPrefs.Save();
SceneManager.LoadScene("pretest");
}
}
}
IEnumerator HilangkanPesanSetelahDelay(float delay)
{
yield return new WaitForSeconds(delay);
if (pesanKoneksi != null)
{
pesanKoneksi.text = "";
}
}
}