diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsComonpentsConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsComonpentsConfig.java index 91afa3eb6..d4f2fb72b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsComonpentsConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsComonpentsConfig.java @@ -29,32 +29,32 @@ public class SDifferDemonsComonpentsConfig implements BaseConfig { @Override public void init() throws Exception { Map> sDifferDemonsComonpentsConfigTmp = new HashMap<>(); + Map>> extraAddMapTmp = new HashMap<>(); Map config = STableManager.getConfig(SDifferDemonsComonpentsConfig.class); for(SDifferDemonsComonpentsConfig sDifferDemonsComonpentsConfig : config.values()){ int comonpentsId = sDifferDemonsComonpentsConfig.getComonpentsId(); int stage = sDifferDemonsComonpentsConfig.getStage(); + + if(!sDifferDemonsComonpentsConfigTmp.containsKey(comonpentsId)){ + sDifferDemonsComonpentsConfigTmp.put(comonpentsId,new HashMap<>()); + extraAddMapTmp.put(comonpentsId,new HashMap<>()); + } int[][] extraAdd = sDifferDemonsComonpentsConfig.getExtraAdd(); if(extraAdd!=null&&extraAdd.length>0){ - Map> extraAddMapTmp = sDifferDemonsComonpentsConfig.getExtraAddMap(); - if(extraAddMapTmp == null){ - extraAddMapTmp = new HashMap<>(); - } + Map> extraMapTmpInfo = extraAddMapTmp.get(comonpentsId); for(int [] extraItem : extraAdd){ int profession = extraItem[0]; int propertyId = extraItem[1]; int propertyValue = extraItem[2]; - if(!extraAddMapTmp.containsKey(profession)){ - extraAddMapTmp.put(profession,new HashMap<>()); + if(!extraMapTmpInfo.containsKey(profession)){ + extraMapTmpInfo.put(profession,new HashMap<>()); } - extraAddMapTmp.get(profession).put(propertyId,propertyValue); + extraMapTmpInfo.get(profession).put(propertyId,propertyValue); } - sDifferDemonsComonpentsConfig.setExtraAddMap(extraAddMapTmp); - } - - if(!sDifferDemonsComonpentsConfigTmp.containsKey(comonpentsId)){ - sDifferDemonsComonpentsConfigTmp.put(comonpentsId,new HashMap<>()); + sDifferDemonsComonpentsConfig.setExtraAddMap(new HashMap<>(extraMapTmpInfo)); } sDifferDemonsComonpentsConfigTmp.get(comonpentsId).put(stage,sDifferDemonsComonpentsConfig); + } sDifferDemonsComonpentsConfig = sDifferDemonsComonpentsConfigTmp;