Add timestamp & edited to chatroom and also do the same stuff from 2nd last commit in here in edit popup

This commit is contained in:
2026-02-07 22:56:40 -07:00
parent bf06c000db
commit a458207ae9
5 changed files with 166 additions and 1045 deletions

View File

@@ -5,6 +5,7 @@ using MikeSchweitzer.WebSocket;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.Networking;
@@ -117,7 +118,15 @@ public class ChatroomMenu : MonoBehaviour
{
if (data["data"]["newContent"].ToString() != null)
{
content.transform.Find("ChatroomRow_" + data["data"]["id"].ToString()).transform.GetChild(3).GetComponent<TMP_Text>().text = data["data"]["newContent"].ToString();
var rowInfo = content.transform.Find("ChatroomRow_" + data["data"]["id"].ToString());
var usernameText = rowInfo.transform.GetChild(0).GetComponent<TMP_Text>();
if (!usernameText.text.EndsWith(">(edited)</color>"))
{
var color = BazookaManager.Instance.GetColorSettingText();
string hex = new Color((((float)color[0]) - 100f) / 255f, (((float)color[1]) - 100f) / 255f, (((float)color[2]) - 100f) / 255f).ToHexString();
rowInfo.transform.GetChild(0).GetComponent<TMP_Text>().text += $" <color=#{hex}>(edited)</color>";
}
rowInfo.transform.GetChild(2).GetComponent<TMP_Text>().text = data["data"]["newContent"].ToString();
}
}
}
@@ -137,7 +146,11 @@ public class ChatroomMenu : MonoBehaviour
var messageText = rowInfo.transform.GetChild(2).GetComponent<TMP_Text>();
var optionsButton = rowInfo.transform.GetChild(3).GetComponent<Button>();
usernameText.text = message.Username;
var color = BazookaManager.Instance.GetColorSettingText();
string hex1 = new Color((((float)color[0]) - 50f) / 255f, (((float)color[1]) - 50f) / 255f, (((float)color[2]) - 50f) / 255f).ToHexString();
string hex2 = new Color((((float)color[0]) - 100f) / 255f, (((float)color[1]) - 100f) / 255f, (((float)color[2]) - 100f) / 255f).ToHexString();
usernameText.text = $"{message.Username} <color=#{hex1}>{Tools.FormatHumanTime(message.Timestamp)}</color>" + (message.EditedAt != 0 ? $" <color=#{hex2}>(edited)</color>" : null);
messageText.text = message.Content;
if (message.CustomIcon == null)
{
@@ -227,11 +240,10 @@ public class ChatroomMenu : MonoBehaviour
});
var rowInfo = editMessageChild.GetChild(2);
var usernameText = rowInfo.transform.GetChild(2).GetComponent<TMP_Text>();
var playerIcon = rowInfo.transform.GetChild(3).GetComponent<Image>();
var usernameText = rowInfo.transform.GetChild(1).GetComponent<TMP_Text>();
var playerIcon = rowInfo.transform.GetChild(2).GetComponent<Image>();
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
var messageText = rowInfo.transform.GetChild(4).GetComponent<TMP_Text>();
var optionsButton = rowInfo.transform.GetChild(5).GetComponent<Button>();
var messageText = rowInfo.transform.GetChild(3).GetComponent<TMP_Text>();
usernameText.text = selectedMessageForOptions.Username;
messageText.text = selectedMessageForOptions.Content;
@@ -258,11 +270,10 @@ public class ChatroomMenu : MonoBehaviour
else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = selectedMessageForOptions.CustomIcon;
rowInfo = editMessageChild.GetChild(3);
usernameText = rowInfo.transform.GetChild(2).GetComponent<TMP_Text>();
playerIcon = rowInfo.transform.GetChild(3).GetComponent<Image>();
usernameText = rowInfo.transform.GetChild(1).GetComponent<TMP_Text>();
playerIcon = rowInfo.transform.GetChild(2).GetComponent<Image>();
playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
messageText = rowInfo.transform.GetChild(4).GetComponent<TMP_Text>();
optionsButton = rowInfo.transform.GetChild(5).GetComponent<Button>();
messageText = rowInfo.transform.GetChild(3).GetComponent<TMP_Text>();
usernameText.text = selectedMessageForOptions.Username;
messageText.text = selectedMessageForOptions.Content;

View File

@@ -107,4 +107,22 @@ public static class Tools
return (totalXp, flooredLevel, currentXpInLevel, totalXpForLevel, percentDone);
}
public static string FormatHumanTime(long unixTimestamp)
{
DateTime date = DateTimeOffset.FromUnixTimeSeconds(unixTimestamp).LocalDateTime;
DateTime now = DateTime.Now;
bool isToday = date.Year == now.Year && date.Month == now.Month && date.Day == now.Day;
DateTime yesterday = now.AddDays(-1);
bool isYesterday = date.Year == yesterday.Year && date.Month == yesterday.Month && date.Day == yesterday.Day;
string timeStr = date.ToString("t");
if (isToday) return timeStr;
if (isYesterday) return $"Yesterday at {timeStr}";
string dateStr = date.ToShortDateString();
return $"{dateStr}, {timeStr}";
}
}

View File

@@ -40,4 +40,12 @@ public class ChatroomMessage
[Preserve]
[JsonProperty("customIcon")]
public string CustomIcon { get; set; }
[Preserve]
[JsonProperty("timestamp")]
public long Timestamp { get; set; }
[Preserve]
[JsonProperty("editedAt")]
public long EditedAt { get; set; }
}