diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index e66eb3b52..1b72cf6b6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1815,13 +1815,15 @@ public class ActivityLogic implements IEventHandler{ boolean result = false; // 根据类型获取卡池 - List smallPool = Optional.ofNullable(SLingLongPool.map) + List lingLongPools = Optional.ofNullable(SLingLongPool.map) .map(v -> v.get(activityId)) .map(v -> v.get(type)) .orElse(new ArrayList<>()); - if(smallPool.isEmpty()){ + if(lingLongPools.isEmpty()){ return false; } + // 有删除操作,所以需要一个新得对象,不能直接在原对象上操作 + List smallPool = new ArrayList<>(lingLongPools); // 玩家身上记录已抽中的索引id Map> doubleRewardPoolInfo = user.getActivityManager().getDoubleRewardPoolInfo(); List rewardPool = doubleRewardPoolInfo.getOrDefault(type,new ArrayList<>()); @@ -1852,7 +1854,7 @@ public class ActivityLogic implements IEventHandler{ } // 外圈抽奖用,抽中全部 - if (rewardPool.size() >= smallPool.size()){ + if (rewardPool.size() >= lingLongPools.size()){ rewardPool.clear(); }