UPF/Assets/Game/Scripts/MaintainceChecker.cs
2022-10-06 23:45:04 +05:30

68 lines
1.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class MaintainceChecker : MonoBehaviour
{
public static int version = 1;
public static MaintainceChecker instance;
public int checkInterval = 10;
float t;
void Start()
{
instance =this;
CheckMaintainceStatus();
}
// Update is called once per frame
void Update()
{
if(t < checkInterval){
t+= Time.deltaTime;
}else{
t=0;
CheckMaintainceStatus();
}
}
public void CheckMaintainceStatus(){
StartCoroutine(checkMaintaince());
}
IEnumerator checkMaintaince(){
WWW req = new WWW(DBmanager.phpRoot+"get_server_status.php");
yield return req;
Debug.Log(req.text);
try{
// ServerStatus status = JsonUtility.FromJson<ServerStatus>(req.text);
String[] split = {"<td>"};
String[] data = req.text.Split(split, StringSplitOptions.RemoveEmptyEntries);
foreach(String item in data){
String[] _item = item.Split(',');
if(_item[0]=="maintaince"){
if(_item[1] == "1"){
//Maintaince mode
LoadingScreen.instance.LoadLevel("Maintaince");
}
}
if(_item[0]=="version"){
if(int.Parse(_item[1]) != version){
LoadingScreen.instance.LoadLevel("Update");
}
}
}
}catch(Exception e){
Debug.Log("Error while reading server status, Going maintaince mode");
Debug.LogError(e.Message);
LoadingScreen.instance.LoadLevel("Maintaince");
}
}
}