检查名字逻辑修改

master_haizei01
grimm 2024-07-22 14:25:06 +08:00
parent cd34e26acf
commit cdac0990ee
6 changed files with 44 additions and 47 deletions

View File

@ -5,7 +5,6 @@ import com.google.gson.Gson;
import com.ljsd.GameApplication;
import com.ljsd.jieling.chat.ChatRedisEntity;
import com.ljsd.jieling.chat.messge.MessageCache;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
@ -163,16 +162,16 @@ public class ChatLogic {
if(strs.length==3){
s = strs[2];
}
result = ShieldedWordUtils.checkName(user,s,false, ChatContentType.WORLD_CHAT);
result = ShieldedWordUtils.checkName(s,false);
break;
case 2:
result = ShieldedWordUtils.checkName(user,message,false,ChatContentType.FAMILY);
result = ShieldedWordUtils.checkName(message,false);
break;
case 3:
result = ShieldedWordUtils.checkName(user,message,false,ChatContentType.PRIVATE_CHAT,UserManager.getUser(friendId));
result = ShieldedWordUtils.checkName(message,false);
break;
case 4:
result = ShieldedWordUtils.checkName(user,message,false,ChatContentType.CROSS_CHAT);
result = ShieldedWordUtils.checkName(message,false);
break;
default:
break;

View File

@ -5,7 +5,6 @@ import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
@ -2405,7 +2404,7 @@ public class MapLogic {
User user = UserManager.getUser(session.getUid());
MapManager mapManager = user.getMapManager();
if (type == 1) {
boolean result = ShieldedWordUtils.checkName(user, content, false, ChatContentType.OTHER);
boolean result = ShieldedWordUtils.checkName(content, false);
String error;
if (!result) {
error = "输入有敏感字符";

View File

@ -2,7 +2,6 @@ package com.ljsd.jieling.kefu;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
@ -21,6 +20,7 @@ import config.SGlobalActivity;
import manager.STableManager;
import rpc.protocols.MessageTypeProto;
import rpc.protocols.PlayerInfoProto;
import util.StringUtil;
import util.TimeUtils;
import java.util.Map;
@ -90,7 +90,7 @@ public class Cmd_changename extends GmRoleAbstract {
} else if (args.length == 0) {
for (int i = 0; i < 50; i++) {
name = PlayerLogic.getInstance().getRandomName2();
if (doCheck(name)) {
if (!StringUtil.isEmpty(name) && doCheck(name)) {
return true;
}else {
LOGGER.error("名称检查失败");
@ -116,7 +116,7 @@ public class Cmd_changename extends GmRoleAbstract {
if (length > STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxNameLength() || length < 1) {
return false;
}
boolean result = ShieldedWordUtils.checkName(getUser(), name, true, ChatContentType.ROLE_NAME);
boolean result = ShieldedWordUtils.checkName(name, true);
if (!result) {
return false;
}

View File

@ -4,7 +4,6 @@ import com.google.common.collect.Lists;
import com.google.protobuf.GeneratedMessage;
import com.ljsd.GameApplication;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
import com.ljsd.jieling.db.mongo.AreaManager;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisKey;
@ -225,7 +224,7 @@ public class GuildLogic {
throw new ErrorCodeException(ErrorCode.NULL_NAME);
}
if(!StringUtil.isEmpty(announce)){
if (!ShieldedWordUtils.checkName(user,familyName,false,ChatContentType.FAMILY_NAME)||!ShieldedWordUtils.checkName(user,announce,false,ChatContentType.FAMILY_NAME)) {
if (!ShieldedWordUtils.checkName(familyName,false)||!ShieldedWordUtils.checkName(announce,false)) {
throw new ErrorCodeException(ErrorCode.FAMILY_IN_SENSITIVE);
}
}
@ -783,7 +782,7 @@ public class GuildLogic {
if(uidType>2){
throw new ErrorCodeException(ErrorCode.FAMILY_NO_ACCESS);
}
boolean result = ShieldedWordUtils.checkName(user,content,false,ChatContentType.ANNOUNCE);
boolean result = ShieldedWordUtils.checkName(content,false);
int resultCode = 1;
String err = "修改成功";
if (!result) {

View File

@ -6,9 +6,7 @@ import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
import com.ljsd.jieling.db.mongo.AreaManager;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
@ -26,9 +24,6 @@ import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.activity.event.GuildForceChangeEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
import com.ljsd.jieling.logic.dao.Pokemon;
import com.ljsd.jieling.logic.dao.PropertyItem;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
@ -44,7 +39,7 @@ import com.ljsd.jieling.logic.store.BuyGoodsNewLogic;
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag;
import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.thrift.idl.*;
import com.ljsd.jieling.thrift.idl.RPCRequestIFace;
import com.ljsd.jieling.thrift.pool.ClientAdapterPo;
import com.ljsd.jieling.util.*;
import config.*;
@ -58,7 +53,6 @@ import util.MathUtils;
import util.TimeUtils;
import java.util.*;
import java.util.stream.Collectors;
@SuppressWarnings("unchecked")
public class PlayerLogic {
@ -113,53 +107,63 @@ public class PlayerLogic {
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.SAVE_NEW_PLAYER_GUIDE_POINT_RESPONSE_VALUE,null,true);
}
public String getRandomName2() throws Exception {
public String getRandomName2() {
String name;
Map<Integer, String> surnameMap = SRandomName.getSurnameMap();
Map<Integer, String> nameMap = SRandomName.getNameMap();
int max = surnameMap.size() * nameMap.size();
int i = 0;
boolean result;
boolean result = true;
do {
name = surnameMap.get(MathUtils.random(1, surnameMap.size())) + nameMap.get(MathUtils.random(1, nameMap.size()));
try {
result = SensitivewordFilter.isContaintSensitiveWord(name,1);
} catch (Exception e) {
LOGGER.error("随机名称失败包含有违禁字符最后一次名字2"+name);
e.printStackTrace();
}
i++;
}
while (result && i < max);
if (result){
throw new ErrorCodeException("随机名称失败,一直包含有违禁字符,最后一次名字:"+name);
name = "";
}
return name;
}
public String getRandomName2WithOutVerify() {
String name;
Map<Integer, String> surnameMap = SRandomName.getSurnameMap();
Map<Integer, String> nameMap = SRandomName.getNameMap();
name = surnameMap.get(MathUtils.random(1, surnameMap.size())) + nameMap.get(MathUtils.random(1, nameMap.size()));
return name;
}
public String[] getRandomNameWithPreAndPost() throws Exception {
String name;
// public String getRandomName2WithOutVerify() {
// String name;
// Map<Integer, String> surnameMap = SRandomName.getSurnameMap();
// Map<Integer, String> nameMap = SRandomName.getNameMap();
// name = surnameMap.get(MathUtils.random(1, surnameMap.size())) + nameMap.get(MathUtils.random(1, nameMap.size()));
// return name;
// }
public String[] getRandomNameWithPreAndPost() throws ErrorCodeException {
Map<Integer, String> surnameMap = SRandomName.getSurnameMap();
Map<Integer, String> nameMap = SRandomName.getNameMap();
String name;
String pre;
String post;
// 加入
int max = surnameMap.size() * nameMap.size();
int i = 0;
boolean result;
boolean result = true;
do {
pre = surnameMap.get(MathUtils.random(1, surnameMap.size()));
post = nameMap.get(MathUtils.random(1, nameMap.size()));
name = pre + post;
try {
result = SensitivewordFilter.isContaintSensitiveWord(name,1);
} catch (Exception e) {
LOGGER.error("随机名称失败,包含有违禁字符,最后一次名字:"+name);
e.printStackTrace();
}
i++;
}
while (result && i<max);
if (result){
throw new ErrorCodeException("随机名称失败2一直包含有违禁字符最后一次名字"+name);
throw new ErrorCodeException(ErrorCode.NAME_ILLEGAL);
}
return new String[]{name,pre,post};
}
@ -175,7 +179,7 @@ public class PlayerLogic {
User user = UserManager.getUser(uid);
PlayerManager playerInfoManager = user.getPlayerInfoManager();
TeamPosManager teamPosManager = user.getTeamPosManager();
if (checkName(iSession, name)){
if (checkName(name)){
return;
}
if (type == 1||type == 3) {
@ -224,7 +228,7 @@ public class PlayerLogic {
MessageUtil.sendMessage(iSession,1,msgId,null,true);
}
private boolean checkName(ISession iSession, String name) throws Exception {
private boolean checkName(String name) throws Exception {
int length = getStrLength(name);
if (length == -1) {
throw new ErrorCodeException(ErrorCode.NAME_ILLEGAL);
@ -232,7 +236,7 @@ public class PlayerLogic {
if (length > 18 || length < 1) {
throw new ErrorCodeException(ErrorCode.NAME_LENTH);
}
boolean result = ShieldedWordUtils.checkName(UserManager.getUser(iSession.getUid()),name,true,ChatContentType.ROLE_NAME);
boolean result = ShieldedWordUtils.checkName(name,true);
if (!result) {
throw new ErrorCodeException(ErrorCode.NAME_ILLEGAL);
}

View File

@ -1,7 +1,5 @@
package com.ljsd.jieling.util;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
import com.ljsd.jieling.logic.dao.root.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -12,11 +10,8 @@ public class ShieldedWordUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(ShieldedWordUtils.class);
public static boolean checkName(User user , String name,boolean validateSpecStr,ChatContentType chatContentType,User friend) {
return checkName(user,name,validateSpecStr,chatContentType);
}
public static boolean checkName(User user,String name,boolean validateSpecStr,ChatContentType chatContentType){
public static boolean checkName(String name, boolean validateSpecStr){
boolean result = true;
// 校验特殊符号
if(validateSpecStr){
@ -27,7 +22,8 @@ public class ShieldedWordUtils {
try {
result = !SensitivewordFilter.isContaintSensitiveWord(name,1);
} catch (Exception e) {
LOGGER.error("检查名称,报错:"+e.getMessage());
LOGGER.error("检查名称报错:{}",name);
e.printStackTrace();
}
}
return result;