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