using System.Text;
using UnityEngine;
using UnityEngine.UI;
///
/// 修改公告界面
///
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 = 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;
}
}
}