Update chatroom script for server rewrite

This commit is contained in:
2025-07-12 20:19:39 -07:00
parent 87caca7722
commit 4274f5b205

View File

@@ -1,7 +1,10 @@
using System;
using System.Collections;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.Networking;
@@ -56,7 +59,7 @@ public class ChatroomMenu : MonoBehaviour
EncryptedWWWForm dataForm = new();
dataForm.AddField("content", text);
dataForm.AddField("gameSession", BazookaManager.Instance.GetAccountSession());
dataForm.AddField("token", BazookaManager.Instance.GetAccountSession());
using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "sendChatroomMessage.php", dataForm.GetWWWForm());
request.SetRequestHeader("Requester", "BerryDashClient");
request.SetRequestHeader("ClientVersion", Application.version);
@@ -67,28 +70,39 @@ public class ChatroomMenu : MonoBehaviour
return;
}
string response = SensitiveInfo.Decrypt(request.downloadHandler.text, SensitiveInfo.SERVER_RECEIVE_TRANSFER_KEY);
switch (response)
if (response == "-999")
{
case "-999":
ShowStatus("Server error while fetching data");
break;
case "-998":
return;
}
else if (response == "-998")
{
ShowStatus("Client version too outdated to access servers");
break;
case "-997":
return;
}
else if (response == "-997")
{
ShowStatus("Encryption/decryption issues");
break;
case "-996":
return;
}
else if (response == "-996")
{
ShowStatus("Can't send requests on self-built instance");
break;
case "-1":
ShowStatus("Authentication error");
break;
case "1":
return;
}
else
{
var jsonResponse = JObject.Parse(response);
if ((bool)jsonResponse["success"])
{
StopCoroutine(refreshLoopRoutine);
refreshLoopRoutine = StartCoroutine(Loop());
content.transform.localPosition = new Vector2(0f, 0f);
break;
content.transform.localPosition = new UnityEngine.Vector2(0f, 0f);
}
else
{
ShowStatus((string)jsonResponse["message"]);
}
}
}
@@ -159,25 +173,18 @@ public class ChatroomMenu : MonoBehaviour
ShowStatus("Can't send requests on self-built instance");
break;
default:
var split = response.Split(':');
if (split[0] == "1")
{
shouldClear = false;
foreach (var row in split[1].Split("|"))
var jsonResponse = JArray.Parse(response);
foreach (JObject entry in jsonResponse.Cast<JObject>())
{
var rowSplit = row.Split(';');
var id = rowSplit[0];
var username = Encoding.UTF8.GetString(Convert.FromBase64String(rowSplit[1]));
var chatContent = Encoding.UTF8.GetString(Convert.FromBase64String(rowSplit[2]));
var icon = rowSplit[3];
var overlay = rowSplit[4];
var uid = rowSplit[5];
var birdR = rowSplit[6];
var birdG = rowSplit[7];
var birdB = rowSplit[8];
var overlayR = rowSplit[9];
var overlayG = rowSplit[10];
var overlayB = rowSplit[11];
var username = (string)entry["username"];
var chatContent = Encoding.UTF8.GetString(Convert.FromBase64String((string)entry["content"]));
var id = BigInteger.Parse((string)entry["id"]);
var icon = (int)entry["icon"];
var overlay = (int)entry["overlay"];
var uid = BigInteger.Parse((string)entry["userid"]);
var birdColor = (JArray)entry["birdColor"];
var overlayColor = (JArray)entry["overlayColor"];
if (content.transform.Find("ChatroomRow_" + id + "_" + uid) != null)
{
@@ -198,31 +205,31 @@ public class ChatroomMenu : MonoBehaviour
usernameText.text = username;
messageText.text = chatContent;
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == "1")
if (icon == 1)
{
playerIcon.sprite = Tools.GetIconForUser(int.Parse(uid));
playerIcon.sprite = Tools.GetIconForUser(uid);
}
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
if (overlay == "0")
if (overlay == 0)
{
playerOverlayIcon.gameObject.SetActive(false);
}
else if (overlay == "8")
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new Vector2(-16.56f, 14.81f);
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == "11")
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new Vector2(-14.74451f, 20.39122f);
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == "13")
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new Vector2(-16.54019f, 14.70365f);
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
try
{
playerIcon.color = new Color32(byte.Parse(birdR), byte.Parse(birdG), byte.Parse(birdB), 255);
playerOverlayIcon.color = new Color32(byte.Parse(overlayR), byte.Parse(overlayG), byte.Parse(overlayB), 255);
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
playerOverlayIcon.color = new Color((int)overlayColor[0] / 255f, (int)overlayColor[1] / 255f, (int)overlayColor[2] / 255f);
}
catch (Exception)
{
@@ -232,11 +239,6 @@ public class ChatroomMenu : MonoBehaviour
rowInfo.name = "ChatroomRow_" + id + "_" + uid;
rowInfo.SetActive(true);
}
}
else
{
ShowStatus("Error fetching messages.");
}
break;
}
if (shouldClear)