diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index f4fd398f9..b9805b6c9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -455,7 +455,12 @@ public class MapLogic { } } } - CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, sOptionConfig.getReward(), 1, 1); + String key = RedisKey.getKey(RedisKey.FIGHT, user.getId() , false); + Map valueMap = RedisUtil.getInstence().hmget(key); + CommonProto.Drop.Builder dropBuilder = null; + if (valueMap == null) { + dropBuilder = ItemUtil.drop(user, sOptionConfig.getReward(), 1, 1); + } List eventBehaviorValuesList = new ArrayList<>(); for (int i = 0; i < sOptionConfig.getBehaviorTypeValues().length; i++) { CommonProto.EventBehaviorValues.Builder eventBehaviorValues = CommonProto.EventBehaviorValues diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 64d75fa26..910e67d32 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -240,6 +240,9 @@ public class ItemUtil { * @throws Exception */ public static void addItem(User user, Map itemMap,CommonProto.Drop.Builder dropBuilder) throws Exception { + if (itemMap.isEmpty()) { + return; + } List itemProtoList = new CopyOnWriteArrayList<>(); ItemManager itemManager = user.getItemManager(); for (Map.Entry entry : itemMap.entrySet()) { @@ -272,11 +275,11 @@ public class ItemUtil { public static void addItemToTemporaryBag(User user, Map itemMap,CommonProto.Drop.Builder dropBuilder) throws Exception { List itemProtoList = new CopyOnWriteArrayList<>(); MapManager mapManager = user.getMapManager(); - if (mapManager.getTemporaryItems() == null) { - TemporaryItems temporaryItems = new TemporaryItems(); - mapManager.setTemporaryItems(temporaryItems); + TemporaryItems temporaryItems = mapManager.getTemporaryItems(); + if (temporaryItems == null) { + temporaryItems = new TemporaryItems(); } - Map items = mapManager.getTemporaryItems().items; + Map items = temporaryItems.items; for (Map.Entry entry : itemMap.entrySet()) { SItem sItem = SItem.getsItemMap().get (entry.getKey()); if (sItem == null){ @@ -291,6 +294,7 @@ public class ItemUtil { } itemProtoList.add(CBean2Proto.getItem(item)); } + mapManager.setTemporaryItems(temporaryItems); if (dropBuilder != null) { dropBuilder.addAllItemlist(itemProtoList); } @@ -318,11 +322,11 @@ public class ItemUtil { continue; } Item item = itemMap.get(entry.getKey()); + Item temporaryItem = entry.getValue(); if (item != null) { - Item temporaryItem = entry.getValue(); item.setItemNum(item.getItemNum() + temporaryItem.getItemNum()); } else { - item = entry.getValue(); + item = user.getItemManager().newItem(temporaryItem.getItemId(), temporaryItem.getItemNum()); } itemMap.put(entry.getKey(), item) ; } @@ -385,6 +389,9 @@ public class ItemUtil { * @param dropBuilder */ private static void addEquip(User user, Map equipMap, CommonProto.Drop.Builder dropBuilder) throws Exception { + if (equipMap.isEmpty()) { + return; + } List equipList = new CopyOnWriteArrayList<>(); for (Map.Entry entry : equipMap.entrySet()) { int count = entry.getValue(); @@ -409,6 +416,9 @@ public class ItemUtil { * @throws Exception */ public static void addCard(User user,Map cardMap,CommonProto.Drop.Builder dropBuilder) throws Exception { + if (cardMap.isEmpty()) { + return; + } List heroList = new CopyOnWriteArrayList<>(); for (Map.Entry entry : cardMap.entrySet()) { int count = entry.getValue();