Removal of CopyOnWriteArrayList from Player damage taken.
This commit is contained in:
@@ -35,7 +35,6 @@ import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentSkipListMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -494,7 +493,7 @@ public class Player extends Playable
|
||||
/** The PvP Flag state of the Player (0=White, 1=Purple) */
|
||||
private byte _pvpFlag;
|
||||
|
||||
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>();
|
||||
private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
|
||||
|
||||
/** The Fame of this Player */
|
||||
private int _fame;
|
||||
@@ -5085,16 +5084,22 @@ public class Player extends Playable
|
||||
return;
|
||||
}
|
||||
|
||||
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
|
||||
while (_lastDamageTaken.size() > 20)
|
||||
synchronized (_lastDamageTaken)
|
||||
{
|
||||
_lastDamageTaken.remove(0);
|
||||
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
|
||||
if (_lastDamageTaken.size() > 20)
|
||||
{
|
||||
_lastDamageTaken.remove(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void clearDamageTaken()
|
||||
{
|
||||
_lastDamageTaken.clear();
|
||||
synchronized (_lastDamageTaken)
|
||||
{
|
||||
_lastDamageTaken.clear();
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<Item> onDieDropItem(Creature killer)
|
||||
@@ -10458,7 +10463,7 @@ public class Player extends Playable
|
||||
instance.doRevive(this);
|
||||
}
|
||||
|
||||
_lastDamageTaken.clear();
|
||||
clearDamageTaken();
|
||||
|
||||
// Stop Tranquil Soul effect.
|
||||
getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill());
|
||||
|
Reference in New Issue
Block a user