From f6267ce85580dd22c76bbe6b4d83b04f20d7ad87 Mon Sep 17 00:00:00 2001 From: duhui Date: Sat, 27 Aug 2022 13:52:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E5=8F=91=E8=A8=80=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/player/PlayerLogic.java | 33 +++++++++++++------ .../jieling/util/SensitivewordFilter.java | 3 +- .../ljsd/jieling/util/ShieldedWordUtils.java | 9 ++--- 3 files changed, 26 insertions(+), 19 deletions(-) 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 69e12d6cf..adf192b59 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