diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index bc4a257e1..80b399e63 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -177,6 +177,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ List practiceSkillInfos = getPracticeSkillInfos(heroManager); List faBaoSoulInfos = getFaBaoSoulInfos(heroManager); + // 道具修复 + user.getItemManager().checkItem(); // 开服时间戳 long openTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime()); PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetPlayerInfoResponse.newBuilder() diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java index 5c877d332..d878c0f7d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java @@ -83,4 +83,21 @@ public class ItemManager extends MongoBase { addItem(item); return item; } + + /** + * 修复部分道具信息缺失的问题,如没有itemId等 + */ + public void checkItem(){ + if(itemMap != null){ + for(int itemId : itemMap.keySet()){ + Item item= itemMap.get(itemId); + if(item != null){ + //itemId缺失或者不匹配,需重构 + if(item.getItemId() == 0 || item.getItemId() != itemId){ + item = this.newItem(itemId,item.getItemNum()); + } + } + } + } + } }