using System.Text;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
/// <summary>
|
/// 修改公告界面
|
/// </summary>
|
public class GuildChangeBroadcastWin : UIBase
|
{
|
[SerializeField] InputField inputField;
|
[SerializeField] Button okBtn;
|
|
protected override void InitComponent()
|
{
|
okBtn.SetListener(() =>
|
{
|
string msg = inputField.text;
|
if (!CheckLimit(msg, out int errorCode))
|
{
|
ShowErrorTip(errorCode);
|
return;
|
}
|
SendPack(msg);
|
CloseWindow();
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
var guildInfo = PlayerDatas.Instance.fairyData.fairy;
|
if (guildInfo == null)
|
return;
|
inputField.placeholder.GetComponent<Text>().text = string.IsNullOrEmpty(guildInfo.Broadcast) ? Language.Get("Guild_62") : guildInfo.Broadcast; ;
|
inputField.text = string.Empty;
|
}
|
|
private void SendPack(string msg)
|
{
|
CA623_tagCMChangeFamilyBroadcast pack = new CA623_tagCMChangeFamilyBroadcast();
|
pack.Msg = msg;
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
|
private bool CheckLimit(string info, out int errorCode)
|
{
|
errorCode = 0;
|
if (string.IsNullOrEmpty(info))
|
{
|
errorCode = 0;
|
return false;
|
}
|
|
if (SatisfyLength(info))
|
{
|
errorCode = 1;
|
return false;
|
}
|
|
if (DirtyWordConfig.IsDirtWord(info) || UIHelper.HasSpecCheckChat(info) || DirtyNameConfig.IsDirtName(info))
|
{
|
errorCode = 3;
|
return false;
|
}
|
return true;
|
}
|
|
private bool SatisfyLength(string name)
|
{
|
int length = Encoding.Default.GetBytes(name).Length;
|
int maxlength = inputField.characterLimit * 3; //纯中文字数
|
return length > maxlength;
|
}
|
|
private void ShowErrorTip(int _errorCode)
|
{
|
switch (_errorCode)
|
{
|
case 0:
|
//空
|
SysNotifyMgr.Instance.ShowTip("ChatInfoNoNull");
|
break;
|
case 1:
|
// 长度过长
|
SysNotifyMgr.Instance.ShowTip("NameError2", inputField.characterLimit);
|
break;
|
case 3:
|
// 脏字
|
SysNotifyMgr.Instance.ShowTip("NameSensitive");
|
break;
|
}
|
}
|
}
|