forked from MagicBane/Server
Fixed Concurrent Modification issue.
This commit is contained in:
@@ -1648,6 +1648,7 @@ public class MobileFSM {
|
||||
// if done previously in canCast();
|
||||
|
||||
ArrayList<Integer> powerTokens;
|
||||
ArrayList<Integer> purgeTokens;
|
||||
PlayerCharacter target = (PlayerCharacter) mob.getCombatTarget();
|
||||
|
||||
if (mob.getMobBase().getFlags().contains(Enum.MobFlagType.CALLSFORHELP))
|
||||
@@ -1656,9 +1657,10 @@ public class MobileFSM {
|
||||
// Generate a list of tokens from the mob powers for this mobile.
|
||||
|
||||
powerTokens = new ArrayList<>(mob.mobPowers.keySet());
|
||||
purgeTokens = new ArrayList<>();
|
||||
|
||||
// If player has this effect on them already then remove the token
|
||||
// from the list of mob powers
|
||||
// from our list of mob powers
|
||||
|
||||
for (int powerToken : powerTokens){
|
||||
|
||||
@@ -1669,10 +1671,12 @@ public class MobileFSM {
|
||||
String des = act.stackType;
|
||||
|
||||
if (target.getEffects() != null && target.getEffects().containsKey(des))
|
||||
powerTokens.remove(Integer.valueOf(powerToken));
|
||||
purgeTokens.add(powerToken);
|
||||
}
|
||||
}
|
||||
|
||||
powerTokens.removeAll(purgeTokens);
|
||||
|
||||
// Pick random spell from our list of powers
|
||||
|
||||
int powerToken = powerTokens.get(ThreadLocalRandom.current().nextInt(powerTokens.size()));
|
||||
|
||||
Reference in New Issue
Block a user