From e0d887806b99489c114329a187e9e92c1470b7e1 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 19 Apr 2023 14:52:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=95=E7=9B=B8bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/Hero.java | 5 +++++ .../java/com/ljsd/jieling/logic/equip/EquipLogic.java | 4 ++-- .../main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 9 ++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) 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 09f3441b2..8034be473 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 @@ -201,6 +201,11 @@ public class Hero extends MongoBase implements Comparable,Cloneable { updateString("faxiangList",faxiangList); } + public void setFaxiang(Set list) { + faxiangList = list; + updateString("faxiangList",faxiangList); + } + public void uninstallFaxiang(String key) { this.faxiangList.remove(key); updateString("faxiangList",faxiangList); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java index 78623e5a3..4a90360e3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/equip/EquipLogic.java @@ -74,13 +74,13 @@ public class EquipLogic { for (String faxiangId : heroFaxiangList) { Faxiang heroFaxiang = equipManager.getFaxiang(faxiangId); if (heroFaxiang == null){ - hero.uninstallFaxiang(faxiangId); + removeList.add(faxiangId); LOGGER.error("法相不存在装备库中,已卸载,uid:{}, hero:{}, faxiang:{}",user.getId(),heroID,faxiangId); continue; } SFaxiangConfig heroFaxiangConfig = SFaxiangConfig.faxiangMap.get(heroFaxiang.getItemId()); if (heroFaxiangConfig == null){ - hero.uninstallFaxiang(faxiangId); + removeList.add(faxiangId); LOGGER.error("法相不存在配置表中,已卸载,uid:{}, hero:{}, faxiang:{}",user.getId(),heroID,faxiangId); continue; } 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 7a2302a11..90f01746d 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 @@ -4440,10 +4440,13 @@ public class HeroLogic { // 法相 Set faxiangList = hero.getFaxiangList(); if (faxiangList != null && !faxiangList.isEmpty()){ - for (String key : faxiangList) { - hero.uninstallFaxiang(key); - user.getEquipManager().unloadFaxiang(key); + Iterator iterator = faxiangList.iterator(); + while (iterator.hasNext()){ + String next = iterator.next(); + user.getEquipManager().unloadFaxiang(next); + iterator.remove(); } + hero.setFaxiang(faxiangList); } } int breakId = hero.getBreakId();