add filter chat

This commit is contained in:
CuongNV
2026-03-23 16:01:58 +07:00
parent 5a2408629d
commit 015d06c16c
4 changed files with 106 additions and 29 deletions
+6 -28
View File
@@ -3,6 +3,7 @@ using BrewMonster.Network;
using BrewMonster.UI;
using System;
using System.Collections.Generic;
using BrewMonster.PerfectWorld.Scripts.Utility.ChatFilter;
using BrewMonster.Scripts.Managers;
using UnityEngine;
using TMPro;
@@ -299,7 +300,7 @@ public class CECUIManager : MonoSingleton<CECUIManager>
return null;
}
public CDlgMessageBox ShowMessageBoxYes(string title, string message, AUIDialog dlg, Action onClickedYes)
{
var msgBox = GetInGameUIMan().GetDialog("DlgMessageBox") as CDlgMessageBox;
@@ -336,7 +337,7 @@ public class CECUIManager : MonoSingleton<CECUIManager>
return null;
}
// public CDlgMessageBox ShowMessageBox(MessageBoxData messageBoxData)
// {
// var msgBox = GetInGameUIMan().GetDialog("DlgMessageBox") as CDlgMessageBox;
@@ -467,7 +468,7 @@ public class CECUIManager : MonoSingleton<CECUIManager>
// g_pGame->GetGameRun()->GetPendingLogOut().AppendForSaveConfig(new CECPendingLogoutCrossServer());
// else
// g_pGame->GetGameRun()->GetPendingLogOut().AppendForSaveConfig(new CECPendingLogoutHalf());
EC_Game.GetGameRun().GetPendingLogOut().AppendForSaveConfig(new CECPendingLogoutHalf());
}
else
@@ -714,7 +715,7 @@ public class CECUIManager : MonoSingleton<CECUIManager>
// {
// EC_Game.GetGameRun().StartGame(0, Vector3.zero);
// }
CECShortcut pSC = EC_Game.GetGameRun().GetPoseCmdShortcuts().GetShortcut(slot);
if (pSC != null) // && pObjSrc->GetDataPtr("ptr_CECShortcut") == pSC
{
@@ -775,29 +776,6 @@ public class CECUIManager : MonoSingleton<CECUIManager>
public void FilterBadWords(ref string str)
{
if (string.IsNullOrEmpty(str))
return;
string strLwr = str.ToLower();
char[] chars = str.ToCharArray();
foreach (string bad in gameUI.m_vecBadWords)
{
int pos = 0;
string badLwr = bad.ToLower();
while ((pos = strLwr.IndexOf(badLwr, pos, StringComparison.Ordinal)) >= 0)
{
for (int j = 0; j < badLwr.Length; j++)
{
chars[pos + j] = '*';
}
pos += badLwr.Length;
}
}
str = new string(chars);
str = ChatFilterService.Filter(str, out var isValidWord);
}
}
+1 -1
View File
@@ -1,3 +1,3 @@
fileFormatVersion: 2
guid: 598459b2399743b5ba1eb55fd1d9611e
guid: 474cab0ba62d0eb45bdc28c5b381eb18
timeCreated: 1762861835
+96
View File
@@ -0,0 +1,96 @@
using System;
using System.Net;
using CSNetwork;
using CSNetwork.GPDataType;
using BrewMonster.Common;
using UnityEngine;
// Account login info struct
public struct AccountLoginInfo
{
public uint login_time;
public uint login_ip;
public uint current_ip;
public void Reset()
{
login_time = 0;
login_ip = 0;
current_ip = 0;
}
}
// Game runtime partial class
partial class CECGameRun
{
public AccountLoginInfo m_AccountLoginInfo = new AccountLoginInfo();
public bool m_bAccountLoginInfoShown = false;
public byte m_accountInfoFlag = 0;
public bool m_bAccountInfoShown = false;
public void ResetAccountLoginInfo()
{
m_AccountLoginInfo.Reset();
m_bAccountLoginInfoShown = true;
}
public void ShowAccountLoginInfo()
{
Debug.Log("[Cuong] ShowAccountLoginInfo");
if (!m_bAccountLoginInfoShown)
{
m_bAccountLoginInfoShown = true;
// Assuming CECUIConfig::Instance().GetGameUI().bEnableShowIP translates to true for now
bool bEnableShowIP = true;
if (bEnableShowIP)
{
// Last login time
DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime t = Epoch.AddSeconds(m_AccountLoginInfo.login_time).ToLocalTime();
string timeStr = string.Format("({0}-{1:00}-{2:00} {3:00}:{4:00})",
t.Year, t.Month, t.Day, t.Hour, t.Minute);
string textTime = string.Format("Lần đăng nhập trước: {0}", timeStr); // 9343
EventBus.Publish(new GameSession.ChatMessageEvent { context = textTime, channel = (byte)ChatChannel.GP_CHAT_SYSTEM });
Debug.Log($"[Cuong] ShowAccountLoginInfo {textTime}");
// Last login IP
string ipStr = new IPAddress((long)m_AccountLoginInfo.login_ip).ToString();
string textIp = string.Format("IP đăng nhập trước: {0}", ipStr); // 9344
EventBus.Publish(new GameSession.ChatMessageEvent { context = textIp, channel = (byte)ChatChannel.GP_CHAT_SYSTEM });
Debug.Log($"[Cuong] ShowAccountLoginInfo {textIp}");
// Current login IP
string curIpStr = new IPAddress((long)m_AccountLoginInfo.current_ip).ToString();
string textCurIp = string.Format("IP đăng nhập hiện tại: {0}", curIpStr); // 9345
EventBus.Publish(new GameSession.ChatMessageEvent { context = textCurIp, channel = (byte)ChatChannel.GP_CHAT_SYSTEM });
Debug.Log($"[Cuong] ShowAccountLoginInfo {textCurIp}");
}
}
}
public void SetAccountInfoFlag(byte accountinfo_flag)
{
m_accountInfoFlag = accountinfo_flag;
m_bAccountInfoShown = false;
}
public void ShowAccountInfo()
{
if (!m_bAccountInfoShown)
{
m_bAccountInfoShown = true;
bool bEnableCompleteAccount = true;
if (bEnableCompleteAccount && ((m_accountInfoFlag & 0x03) != 0))
{
string text = "Hoàn tất thông tin tài khoản..."; // 9347
EventBus.Publish(new GameSession.ChatMessageEvent { context = text, channel = (byte)ChatChannel.GP_CHAT_SYSTEM });
Debug.Log($"[Cuong] ShowAccountInfo {text}");
}
}
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 598459b2399743b5ba1eb55fd1d9611e
timeCreated: 1762861835