diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 5e42f3b89..7b90426ff 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -411,5 +411,6 @@ public interface BIReason { int COMPARENUM_TOTAL_REWARD = 1307; // 比数字小游戏章节累计奖励 int ZHAIXINGGE_BAKCUP_ITEM = 1308;//摘星阁装备强化调整返还道具 + int MAXESPECIALEQUIPHANDLE = 1309; //法宝最高上限回滚处理 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetCarGrapRecordHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetCarGrapRecordHandler.java index edc1f1793..05a0f91e6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetCarGrapRecordHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetCarGrapRecordHandler.java @@ -3,28 +3,27 @@ package com.ljsd.jieling.handler; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.logic.GlobleSystemLogic; -import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; +import org.springframework.data.redis.core.ZSetOperations; import rpc.protocols.CommonProto; import rpc.protocols.Family; import rpc.protocols.MessageTypeProto; -import com.ljsd.jieling.util.MessageUtil; -import org.springframework.data.redis.core.ZSetOperations; import util.TimeUtils; import java.util.Calendar; import java.util.Set; -public class GetCarGrapRecordHandler extends BaseHandler{ +public class GetCarGrapRecordHandler extends BaseHandler{ @Override public MessageTypeProto.MessageType getMessageCode() { return MessageTypeProto.MessageType.GET_CAR_GRAP_RECORD_REQUEST; } @Override - public void process(ISession iSession, PacketNetData netData) throws Exception { + public void processWithProto(ISession iSession, Family.CarGrapRecordRequest carGrapRecordRequest) throws Exception { Calendar instance = Calendar.getInstance(); - instance.setTimeInMillis(System.currentTimeMillis()-2*TimeUtils.ONE_DAY); + instance.setTimeInMillis(System.currentTimeMillis()); instance.set(Calendar.HOUR_OF_DAY,0); instance.set(Calendar.MINUTE,0); instance.set(Calendar.SECOND,0); @@ -43,6 +42,9 @@ public class GetCarGrapRecordHandler extends BaseHandler{ Family.CarGrapRecordResponse.Builder builder = Family.CarGrapRecordResponse.newBuilder(); for(ZSetOperations.TypedTuple item : zsetreverseRangeWithScores ){ int time = item.getScore().intValue(); + if (time < leatestTime){ + continue; + } String value = item.getValue(); String[] split = value.split("\\|"); int last = value.lastIndexOf('|'); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 745da6a54..0725a5ee6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -256,18 +256,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ wishOldUserRandomNumInit(user); // 摘星阁装备强化调整后返还玩家强化道具 calEquipStrongData(user); - - //hotfix 月卡 -// PlayerLogic.getInstance().getMonthCardInfo(user); -// int monthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.MONTHCARDID).getPrice(); -// int lmonthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.LMONTHCARDID).getPrice(); -// if(newRechargeInfo.getMonthRr()>=monthline&&playerInfoManager.getMonthCard().getOrDefault(1,0)==0){ -// user.getPlayerInfoManager().getMonthCard().put(Global.MONTHCARDID, (int) (System.currentTimeMillis() / 1000)); -// } -// if(newRechargeInfo.getsMonthRr()>=lmonthline&&playerInfoManager.getMonthCard().getOrDefault(2,0)==0){ -// user.getPlayerInfoManager().getMonthCard().put(Global.LMONTHCARDID, (int) (System.currentTimeMillis() / 1000)); -// Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID)); -// } + // 法宝最高等级处理 + maxEspecialEquipHandle(user); // 四灵试炼初始化 FourChallengeLogic.getInstance().firstGetTimes(user); @@ -565,6 +555,50 @@ public class GetPlayerInfoHandler extends BaseHandler{ } } + /** + * 法宝最高等级处理 + * @param user + * @throws Exception + */ + private void maxEspecialEquipHandle(User user) throws Exception { + // 公用数据 + List heroList = user.getHeroManager().getHeroMap().values().stream().collect(Collectors.toList()); + Map heroMap = SCHero.getsCHero(); + Map> talismanaStarMap = SEquipTalismana.equipTalismanaStarMap; + int maxLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismanaUpperLimit); + ArrayList itemList = new ArrayList<>(); + + for (Hero hero : heroList) { + // 获取英雄的法宝信息 + int[] equipTalismana = heroMap.get(hero.getTemplateId()).getEquipTalismana(); + if (equipTalismana == null || equipTalismana.length < 2) { + continue; + } + // 验证最高等级是否满足 + int level = hero.getOriginalEspecialEquipLevel(); + if (level <= maxLimit){ + continue; + } + // 获得道具 + TreeMap talismanaTreeMap = new TreeMap<>(talismanaStarMap.get(equipTalismana[1])); + Map subMap = talismanaTreeMap.subMap(maxLimit, level); + for (SEquipTalismana talismana : subMap.values()) { + itemList.add(talismana.getRankupBasicMaterial()); + } + // 设置等级到最高 + hero.updateEspecial(maxLimit); + // 更新战力 + Poster.getPoster().dispatchEvent(new SaveHeroForceEvent(user.getId(),hero.getId())); + LOGGER.info("===========法宝最高等级处理道具返还,玩家id:{},法宝:{},原始等级:{},当前等级:{},返还道具:{}",user.getId(),equipTalismana[1],level,maxLimit,JSON.toJSONString(itemList)); + } + // 道具进入背包 + ItemUtil.drop(user,itemList, BIReason.MAXESPECIALEQUIPHANDLE); + // 邮件提醒 + String title = SErrorCodeEerverConfig.getI18NMessage("fabao_mail_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("fabao_mail_txt"); + MailLogic.getInstance().sendMail(user.getId(),title,content,"",TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); + } + /** * 摘星阁装备强化调整后返还玩家强化道具 * @param user diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index b2b26cfe6..f7f7b73eb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -3184,18 +3184,24 @@ public class MapLogic { } // 怪物 + int killNum = 0;//杀敌数量 List monsterCell = eventMap.getOrDefault(4, new ArrayList<>()); for (Integer key : monsterCell) { Cell cell = mapInfo.get(key); if (cell == null || cell.getEventId() == -1){ continue; } - manager.updateTrialKillCount(trialInfo.getKillCount()+1); + killNum++; SEventPointConfig point = eventPointConfig.get(cell.getEventId()); SMonsterGroup monsterGroup = SMonsterGroup.getsMonsterGroupMap().get(point.getOption()[0]); ItemUtil.drop(user, monsterGroup.getRewardgroup(), drop, 1, 0, BIReason.MAP_FAST_FIGHT_REWARD); BehaviorUtil.destoryApointXY(user, cell.getCellId()); } + // 扫荡,boss,增加杀敌数量 + if (manager.getTrialInfo().getEnergy() != -2){ + killNum++; + } + manager.updateTrialKillCount(trialInfo.getKillCount()+killNum); // 宝箱 List boxCell = eventMap.getOrDefault(5, new ArrayList<>()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java index e5ab4b36a..4c7656029 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java @@ -12,7 +12,11 @@ import java.util.*; public class TrialInfo extends MongoBase { //默认一层 private int floor = 1; - + /** + * 0:闯关 + * -1:boss + * -2:传送门 + */ private int energy; //进入副本英雄信息 private Map heroInfo = new HashMap<>(5); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java index 3e0b4a374..8dcbf91a3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java @@ -355,17 +355,18 @@ public class TowerMap extends AbstractMap { eventMap.put(4,new ArrayList<>(cellMap4.keySet()));//怪物 eventMap.put(5,list);//宝箱 + mapManager.setTrialEnergy(0); //大于10000要生成传送门 if(floor>10000){ Cell transport = createTransport(floor); newMap.put(transport.getCellId(),transport); + mapManager.setTrialEnergy(-2); } SChallengeMapConfig challengeMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(sTrialConfig.getMapId()); int xy = CellUtil.xy2Pos(challengeMapConfig.getPosition()[0], challengeMapConfig.getPosition()[1]); mapManager.setCurXY(xy); mapManager.setMapInfo(newMap); - mapManager.setTrialEnergy(0); mapManager.setCurMapId(sTrialConfig.getMapId()); mapManager.updateEventMap(eventMap); if(mapManager.getTowerUnusedBuffer()==null){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java index ec6dab3c0..52618801c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java @@ -63,7 +63,7 @@ public class TransformationUpGradeHandler extends BaseHandler heroMap = user.getHeroManager().getHeroMap(); + for (Hero hero : heroMap.values()) { + SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); + if (scHero.getReadingName().equals(split[0])){ + hero.updateEspecial(Integer.parseInt(split[1])); + // 更新战力 + Poster.getPoster().dispatchEvent(new SaveHeroForceEvent(user.getId(),hero.getId())); + } + } + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java index e6b5338f5..bf45b6987 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java @@ -1,31 +1,17 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.core.VipPrivilegeType; -import com.ljsd.jieling.db.redis.RedisKey; -import com.ljsd.jieling.db.redis.RedisUtil; -import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; -import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.RandomCardEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.mail.MailLogic; -import com.ljsd.jieling.logic.rank.RankContext; -import com.ljsd.jieling.logic.rank.RankEnum; -import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; -import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ItemUtil; -import config.*; +import config.SLotterySetting; +import config.SLotterySpecialConfig; import manager.STableManager; -import org.springframework.data.redis.core.ZSetOperations; -import util.TimeUtils; import java.util.*; -import java.util.function.Consumer; -import java.util.function.Predicate; -import java.util.stream.Stream; /** * @author lvxinran diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java index 0174b1ff4..6daaf7b32 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java @@ -1,18 +1,9 @@ package com.ljsd.jieling.logic.activity; -import com.ljsd.jieling.exception.ErrorCode; -import com.ljsd.jieling.exception.ErrorCodeException; -import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; -import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ItemUtil; -import com.ljsd.jieling.util.MessageUtil; -import config.SActivityRewardConfig; -import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; import java.util.Map; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java index 2afc05e3f..3d0753fbd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java @@ -5,21 +5,22 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.RandomCardEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; +import config.SLotterySpecialConfig; import config.SSpiritAnimalSummon; import manager.STableManager; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index a141225c2..18d25c9cf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -431,20 +431,25 @@ public class Hero extends MongoBase implements Comparable,Cloneable { } public int getEspecialEquipLevel() { + int max = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismanaUpperLimit); + return especialEquipLevel>max ? max : especialEquipLevel; + } + + public int getOriginalEspecialEquipLevel() { return especialEquipLevel; } public int getEspecialEquipLevelByHongmeng(HeroManager heroManager, String heroId) { // 英雄在共鳴池中 - if (heroManager.getResonances().values().contains(heroId)) { - // 法宝 - HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.MAGIC_WEAPON); - if (hongMengAddAttribute != null) { - // 对比本身和共鸣等级,选高的 - return especialEquipLevel >= hongMengAddAttribute.value ? especialEquipLevel : hongMengAddAttribute.value; - } - } - return especialEquipLevel; +// if (heroManager.getResonances().values().contains(heroId)) { +// // 法宝 +// HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.MAGIC_WEAPON); +// if (hongMengAddAttribute != null) { +// // 对比本身和共鸣等级,选高的 +// return especialEquipLevel >= hongMengAddAttribute.value ? especialEquipLevel : hongMengAddAttribute.value; +// } +// } + return getEspecialEquipLevel(); } public Set getJewelInfo() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 2def30b46..234f090f8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -5466,12 +5466,6 @@ public class HeroLogic { MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_STELE_NEW_HAND_INDICATION.getNumber(), builder.build(), true); } } - - // 不够6个无法开启鸿蒙阵 - /*if (hongmengs.size() < Integer.parseInt(openLevel[0])) { - return; - }*/ - // 守卫/使者英雄池 Map guards = heroManager.getHongmengGuards(); // 英雄装备 @@ -5485,7 +5479,6 @@ public class HeroLogic { hongMengAddAttributeEquip = new HongMengAddAttribute(0, defaultValue); soulEquip = new HongMengAddAttribute(0, defaultValue); spiritEquip = new HongMengAddAttribute(0, defaultValue); - especialEquipLevel = new HongMengAddAttribute(0, defaultValue); break; } // 装备 @@ -5493,8 +5486,6 @@ public class HeroLogic { // 魂宝 灵宝 soulOrSpirit(soulEquip, 1, equipMap, hero); soulOrSpirit(spiritEquip, 2, equipMap, hero); - // 法宝 - especialAdd(especialEquipLevel, hero); } } @@ -5520,7 +5511,6 @@ public class HeroLogic { resonanceAddition.put(HongMengAttributeEnum.EQUIP, hongMengAddAttributeEquip); resonanceAddition.put(HongMengAttributeEnum.SOUL_EQUIP, soulEquip); resonanceAddition.put(HongMengAttributeEnum.SPIRIT_EQUIP, spiritEquip); - resonanceAddition.put(HongMengAttributeEnum.MAGIC_WEAPON, especialEquipLevel); heroManager.setResonanceAddition(resonanceAddition); /*** ============================= 开始组装鸿蒙阵信息 ==================================== **/ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index fade412ad..b01dfa7bb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -704,6 +704,10 @@ public class ItemLogic { } int especialEquipId = scHero.getEquipTalismana()[1]; + int maxLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismanaUpperLimit); + if (hero.getEspecialEquipLevel() >= maxLimit){ + throw new ErrorCodeException(ErrorCode.newDefineCode("法宝已最大限制等级")); + } SEquipTalismana sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquipId).get(hero.getEspecialEquipLevel()); if (sEquipTalismana == null || sEquipTalismana.getRankupBasicMaterial() == null|| sEquipTalismana.getRankupBasicMaterial().length==0) { throw new ErrorCodeException(ErrorCode.newDefineCode("法宝已最大等级")); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 918f5970d..d98d644ee 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -128,10 +128,18 @@ public class PlayerLogic { String name = ""; Map surnameMap = SRandomName.getSurnameMap(); Map nameMap = SRandomName.getNameMap(); + int max = surnameMap.size() * nameMap.size(); + int i = 0; + boolean result; do { name = surnameMap.get(MathUtils.random(1, surnameMap.size())) + nameMap.get(MathUtils.random(1, nameMap.size())); + result = SensitivewordFilter.isContaintSensitiveWord(name,1); + i++; + } + while (result && i < max); + if (result){ + throw new ErrorCodeException("随机名称失败,一直包含有违禁字符,最后一次名字:"+name); } - while (checkNameShield(name)); return name; } public String getRandomName2WithOutVerify() { @@ -144,25 +152,30 @@ public class PlayerLogic { } public String[] getRandomNameWithPreAndPost() throws Exception { - String name ; + String name; Map surnameMap = SRandomName.getSurnameMap(); Map nameMap = SRandomName.getNameMap(); - String pre ; - String post ; + String pre; + String post; + // 加入 + int max = surnameMap.size() * nameMap.size(); + int i = 0; + boolean result; do { pre = surnameMap.get(MathUtils.random(1, surnameMap.size())); post = nameMap.get(MathUtils.random(1, nameMap.size())); name = pre + post; + + result = SensitivewordFilter.isContaintSensitiveWord(name,1); + i++; + } + while (result && i 18 || length < 1) { throw new ErrorCodeException(ErrorCode.NAME_LENTH); } - ; boolean result = ShieldedWordUtils.checkName(UserManager.getUser(iSession.getUid()),name,true,ChatContentType.ROLE_NAME); if (!result) { throw new ErrorCodeException(ErrorCode.NAME_ILLEGAL); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/SensitivewordFilter.java b/serverlogic/src/main/java/com/ljsd/jieling/util/SensitivewordFilter.java index 882e06277..ffcf00cad 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/SensitivewordFilter.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/SensitivewordFilter.java @@ -35,8 +35,7 @@ public class SensitivewordFilter { * @version 1.0 */ public static boolean isContaintSensitiveWord(String txt, int matchType) throws Exception { - boolean hasDirtyWords = isContaintSensitiveWordThrift(txt, matchType); - return hasDirtyWords; + return isContaintSensitiveWordThrift(txt, matchType); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ShieldedWordUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ShieldedWordUtils.java index 9fc67f214..41c65856d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ShieldedWordUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ShieldedWordUtils.java @@ -17,25 +17,22 @@ public class ShieldedWordUtils { return checkName(user,name,validateSpecStr,chatContentType); } - public static boolean checkName(User user , String name,boolean validateSpecStr,ChatContentType chatContentType){ - boolean result; + public static boolean checkName(User user,String name,boolean validateSpecStr,ChatContentType chatContentType){ + boolean result = true; + // 校验特殊符号 if(validateSpecStr){ result = validateUserName(name); - if(!result){ - return false; + } + // 校验违禁字符 + if (result == true){ + try { + result = !SensitivewordFilter.isContaintSensitiveWord(name,1); + } catch (Exception e) { + LOGGER.error("检查名称,报错:"+e.getMessage()); + result = true; } } - - try { - result = isContaintSensitiveWord(name); - } catch (Exception e) { - LOGGER.error("检查名称,报错:"+e.getMessage()); - return false; - } - if(result){ - return false; - } - return true; + return result; } @@ -57,11 +54,6 @@ public class ShieldedWordUtils { return matcher.matches(); } - public static boolean isContaintSensitiveWord(String userName) throws Exception{ - boolean hasDirtyWords = SensitivewordFilter.isContaintSensitiveWord(userName, 1); - return hasDirtyWords; - } - public static String replaceUnword(String content) { // 只允许字母和数字 // String regEx = "[^a-zA-Z0-9]"; diff --git a/tablemanager/src/main/java/config/SSpecialConfig.java b/tablemanager/src/main/java/config/SSpecialConfig.java index 5b27e4034..33f4be737 100644 --- a/tablemanager/src/main/java/config/SSpecialConfig.java +++ b/tablemanager/src/main/java/config/SSpecialConfig.java @@ -132,6 +132,7 @@ public class SSpecialConfig implements BaseConfig { public static final String CHANGE_CAMP_COST = "ChangeCampCost";//神转换阵营消耗 public static final String GodSignOpenStar = "GodSignOpenStar";//神印格子开启所需神将星级 public static final String ChangingPosUnlock = "ChangingPosUnlock";//3个变身卡化身位解锁所需的化身之力等级 + public static final String EquipTalismanaUpperLimit = "EquipTalismanaUpperLimit ";//法宝等级上限 @Override public void init() throws Exception {