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 8b6d5b1d2..65c5dcc3a 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 @@ -1913,14 +1913,22 @@ public class HeroLogic{ if(result.get()){ teamPosForHero.entrySet().stream().filter(entry-> !list.contains(entry.getKey())).forEach(entry->{ - entry.getValue().forEach(value->{ - if(value.getHeroId().equals(heroId)){ + List value = entry.getValue(); + Iterator it = value.iterator(); + boolean needUpdate = false; + while(it.hasNext()){ + TeamPosHeroInfo hero = it.next(); + if(hero.getHeroId().equals(heroId)){ if(entry.getKey()==GlobalsDef.ENDLESS_TEAM&&user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo().get(heroId)!=null){ user.getMapManager().removeEndlessHero(heroId); } - teamPosForHero.get(entry.getKey()).remove(value.getHeroId()); + it.remove(); + needUpdate = true; + }; + if(needUpdate){ + user.getTeamPosManager().updateTeamPosByTeamId(entry.getKey(),value); } - }); + } }); } return result.get();