Свернуть ↑
public class RequestCharacterNameCreatable extends L2GameClientPacket
{
private static final String _C__D0_B0_REQUESTCHARACTERNAMECREATABLE = "[C] D0:B0 RequestCharacterNameCreatable";
String _name;
@Override
protected void readImpl()
{
_name = readS();
}
@Override
protected void runImpl()
{
if ((_name.length() < 1) || (_name.length() > 16))
{
sendPacket(new ExIsCharNameCreatable(ExIsCharNameCreatable.REASON _16_ENG_CHARS));
return;
}
if(Config.FORBIDDEN_NAMES.length > 1)
{
for(String st : Config.FORBIDDEN_NAMES)
{
if(_name.toLowerCase().contains(st.toLowerCase()))
{
sendPacket(new ExIsCharNameCreatable(ExIsCharNameCreatable.REASON _INCORRECT_NAME));
return;
}
}
}
if (!Util.isAlphaNumeric(_name) || !isValidName(_name))
{
sendPacket(new ExIsCharNameCreatable(ExIsCharNameCreatable.REASON _INCORRECT_NAME));
return;
}
}
private boolean isValidName(String text)
{
boolean result = true;
String test = text;
Pattern pattern;
try
{
pattern = Pattern.compile(Config.CNAME_TEMPLATE);
}
catch (PatternSyntaxException e) // case of illegal pattern
{
pattern = Pattern.compile(".*");
}
Matcher regexp = pattern.matcher(test);
if (!regexp.matches())
{
result = false;
}
return result;
}
@Override
public String getType()
{
return "[С] B0 RequestCharacterNameCreatable".intern();
}
}