Removal of CopyOnWriteArrayList from Player damage taken.

This commit is contained in:
MobiusDevelopment
2022-07-18 08:16:53 +00:00
parent 52fa8ed00a
commit 03aef1c2bd
10 changed files with 120 additions and 70 deletions
@@ -35,7 +35,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -491,7 +490,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5064,16 +5063,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10351,7 +10356,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
} }
@Override @Override
@@ -35,7 +35,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; 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) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5085,16 +5084,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10458,7 +10463,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
// Stop Tranquil Soul effect. // Stop Tranquil Soul effect.
getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill()); getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill());
@@ -35,7 +35,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -507,7 +506,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5102,16 +5101,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10485,7 +10490,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
// Stop Tranquil Soul effect. // Stop Tranquil Soul effect.
getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill()); getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill());
@@ -35,7 +35,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -509,7 +508,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5123,16 +5122,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10523,7 +10528,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
// Stop Tranquil Soul effect. // Stop Tranquil Soul effect.
getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill()); getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill());
@@ -35,7 +35,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -509,7 +508,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5151,16 +5150,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10551,7 +10556,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
// Stop Tranquil Soul effect. // Stop Tranquil Soul effect.
getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill()); getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill());
@@ -38,7 +38,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -495,7 +494,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5010,16 +5009,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10145,7 +10150,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
} }
@Override @Override
@@ -38,7 +38,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -512,7 +511,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5078,16 +5077,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10298,7 +10303,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
} }
@Override @Override
@@ -38,7 +38,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -531,7 +530,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5113,16 +5112,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10353,7 +10358,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
} }
@Override @Override
@@ -38,7 +38,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -535,7 +534,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5128,16 +5127,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10529,7 +10534,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
} }
@Override @Override
@@ -38,7 +38,6 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -538,7 +537,7 @@ public class Player extends Playable
/** The PvP Flag state of the Player (0=White, 1=Purple) */ /** The PvP Flag state of the Player (0=White, 1=Purple) */
private byte _pvpFlag; private byte _pvpFlag;
private final List<DamageTakenHolder> _lastDamageTaken = new CopyOnWriteArrayList<>(); private final List<DamageTakenHolder> _lastDamageTaken = new ArrayList<>(21);
/** The Fame of this Player */ /** The Fame of this Player */
private int _fame; private int _fame;
@@ -5165,16 +5164,22 @@ public class Player extends Playable
return; return;
} }
_lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage)); synchronized (_lastDamageTaken)
while (_lastDamageTaken.size() > 20)
{ {
_lastDamageTaken.remove(0); _lastDamageTaken.add(new DamageTakenHolder(attacker, skillId, damage));
if (_lastDamageTaken.size() > 20)
{
_lastDamageTaken.remove(0);
}
} }
} }
public void clearDamageTaken() public void clearDamageTaken()
{ {
_lastDamageTaken.clear(); synchronized (_lastDamageTaken)
{
_lastDamageTaken.clear();
}
} }
private Collection<Item> onDieDropItem(Creature killer) private Collection<Item> onDieDropItem(Creature killer)
@@ -10583,7 +10588,7 @@ public class Player extends Playable
instance.doRevive(this); instance.doRevive(this);
} }
_lastDamageTaken.clear(); clearDamageTaken();
} }
@Override @Override