using Code.Scripts.Gameplay.Game; using Gameplay.Net; using PhxhSDK; using System.Text.RegularExpressions; namespace Gameplay.Naming { /// /// 取名管理器 /// public sealed class NamingManager : Singlenton { /// /// 有效校验正则表达式(只允许输入英文字符、中文字符和数字) /// private const string PATTERN = @"^[a-zA-Z0-9\u4e00-\u9fa5]*$"; /// /// 是否改过名 /// public bool IsChangeName { get { uint time = Actor.Instance.Base.GetProp(NLDPB.ActorProp.SetNickTime); return 0 != time; } } /// /// 从剧情打开改名UI /// public async void OpenNamePanelFromStory() { if (GameStateManager.Instance.GetCurState() is GameStateStory gameStateStory) gameStateStory.IsReady = false; await UI_WriteNameController.Open(() => { if (GameStateManager.Instance.GetCurState() is GameStateStory gameStateStory) gameStateStory.IsReady = true; }); } /// /// 输入校验 /// /// /// public string ValidateInput(string input) { if (!Regex.IsMatch(input, PATTERN)) return Regex.Replace(input, @"[^a-zA-Z0-9\u4e00-\u9fa5]", string.Empty); // 移除不合法的字符 return input; } } }