초기커밋
This commit is contained in:
107
ServerCommon/Helper/StringRuleHelper.cs
Normal file
107
ServerCommon/Helper/StringRuleHelper.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
|
||||
|
||||
namespace ServerCommon;
|
||||
|
||||
public static class StringRuleHelper
|
||||
{
|
||||
public static ServerErrorCode isValidNickname(string nickName)
|
||||
{
|
||||
ArgumentNullReferenceCheckHelper.throwIfNull(nickName, () => $"stringValue is null");
|
||||
|
||||
// 첫번째 글자가 숫자인지 체크 한다.
|
||||
if (Regex.IsMatch(nickName[0].ToString(), "[0-9]") == true)
|
||||
{
|
||||
return ServerErrorCode.UserNicknameNotAllowedNumberAtFirstChars;
|
||||
}
|
||||
|
||||
// 특수문자가 포함되어 있는지 체크 한다.
|
||||
if (true == nickName.isContainSpecialChars(out _))
|
||||
{
|
||||
return ServerErrorCode.UserNicknameNotAllowWithSpecialChars;
|
||||
}
|
||||
|
||||
// 길이 체크
|
||||
if ( nickName.Length < MetaHelper.GameConfigMeta.UserNicknameMinLength ||
|
||||
nickName.Length > MetaHelper.GameConfigMeta.UserNicknameMaxLength )
|
||||
{
|
||||
return ServerErrorCode.UserNicknameAllowedMin2ToMax12;
|
||||
}
|
||||
|
||||
// 금지어 여부를 체크 한다.
|
||||
if (StringRuleHelper.isBanNickname(nickName) == true)
|
||||
{
|
||||
Log.getLogger().info($"User Nickname is Ban !!! : nickname:{nickName}");
|
||||
return ServerErrorCode.UserNicknameBan;
|
||||
}
|
||||
|
||||
return ServerErrorCode.Success;
|
||||
}
|
||||
|
||||
public static string convertStringFromBase64(string stringValue)
|
||||
{
|
||||
ArgumentNullReferenceCheckHelper.throwIfNull(stringValue, () => $"stringValue is null");
|
||||
|
||||
string decoded_text = string.Empty;
|
||||
try
|
||||
{
|
||||
byte[] byteArray = Convert.FromBase64String(stringValue);
|
||||
decoded_text = Encoding.UTF8.GetString(byteArray);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.getLogger().error($"convertStringFromBase64 exception occured {e.StackTrace}");
|
||||
}
|
||||
|
||||
return decoded_text;
|
||||
}
|
||||
|
||||
public static string getString(LanguageType langType, List<OperationSystemMessage> systemMessage)
|
||||
{
|
||||
ArgumentNullReferenceCheckHelper.throwIfNull(systemMessage, () => $"systemMessage is null");
|
||||
|
||||
string txt = string.Empty;
|
||||
foreach (var msg in systemMessage)
|
||||
{
|
||||
if ((int)msg.LanguageType == (int)langType)
|
||||
{
|
||||
//var base64_string = StringRuleHelper.convertStringFromBase64(msg.Text);
|
||||
txt = msg.Text;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return txt;
|
||||
}
|
||||
|
||||
public static bool isBanWord(string word, bool includeNickname)
|
||||
{
|
||||
var lowered_word = word.ToLower();
|
||||
|
||||
if (MetaData.Instance._BanWordMetaTable.Any(banWord => lowered_word.Contains(banWord) == true))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return includeNickname && isBanNickname(word);
|
||||
}
|
||||
|
||||
private static bool isBanNickname(string word)
|
||||
{
|
||||
var lowered_word = word.ToLower();
|
||||
|
||||
return MetaData.Instance._BanWordNicknameMetaTable.Any(banNickNameWord => lowered_word.Contains(banNickNameWord) == true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user