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 c897beccc..50b4193d0 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 @@ -1939,9 +1939,13 @@ public class HeroLogic{ private void wearJewel(Hero hero,EquipManager equipManager,String equipId)throws Exception{ Jewel equip =(Jewel)equipManager.getEquipMap().get(equipId); + if( null == equip || null == hero ){ throw new ErrorCodeException(ErrorCode.HERO_EQUIP_ERR); } + if(null!=equip.getHeroId()&&!equip.getHeroId().equals("")){ + return; + } String remove = ""; for(String jewelId:hero.getJewelInfo()){ @@ -2553,7 +2557,8 @@ public class HeroLogic{ if(soulEquipByPositionMap!=null&&soulEquipByPositionMap.size()>0){ soulEquipByPositionMap.forEach((k,v)->returnItemMap.put(v,returnItemMap.getOrDefault(v,0)+1)); } - Set jewelInfo = hero.getJewelInfo(); + + Set jewelInfo = new HashSet<>(hero.getJewelInfo()); for(String equipId:jewelInfo){ if(!equipMap.containsKey(equipId)){ continue;