diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java index f979594a9e..460e97078e 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -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; @@ -491,7 +490,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5064,16 +5063,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 onDieDropItem(Creature killer) @@ -10351,7 +10356,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); } @Override diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java index acc139b4eb..68eaf693e9 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -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 _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _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 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()); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java index 559a89ae25..1fc42c4255 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -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; @@ -507,7 +506,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5102,16 +5101,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 onDieDropItem(Creature killer) @@ -10485,7 +10490,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); // Stop Tranquil Soul effect. getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill()); diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index c2ef742f8f..c3090372a8 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -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; @@ -509,7 +508,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5123,16 +5122,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 onDieDropItem(Creature killer) @@ -10523,7 +10528,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); // Stop Tranquil Soul effect. getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill()); diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index ee3101eda1..95ae42073c 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -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; @@ -509,7 +508,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5151,16 +5150,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 onDieDropItem(Creature killer) @@ -10551,7 +10556,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); // Stop Tranquil Soul effect. getEffectList().stopSkillEffects(SkillFinishType.REMOVED, CommonSkill.TRANQUIL_SOUL.getSkill()); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Player.java index 0e9d8f535f..33e6377758 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -38,7 +38,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; @@ -495,7 +494,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5010,16 +5009,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 onDieDropItem(Creature killer) @@ -10145,7 +10150,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); } @Override diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Player.java index bf2e0dd996..22750ea487 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -38,7 +38,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; @@ -512,7 +511,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5078,16 +5077,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 onDieDropItem(Creature killer) @@ -10298,7 +10303,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); } @Override diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java index 135a53ff6f..0387b97cad 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -38,7 +38,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; @@ -531,7 +530,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5113,16 +5112,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 onDieDropItem(Creature killer) @@ -10353,7 +10358,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); } @Override diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java index 9d2ff84f69..fb20d811f8 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -38,7 +38,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; @@ -535,7 +534,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5128,16 +5127,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 onDieDropItem(Creature killer) @@ -10529,7 +10534,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); } @Override diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java index f651bfae72..94fd45eb4a 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -38,7 +38,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; @@ -538,7 +537,7 @@ public class Player extends Playable /** The PvP Flag state of the Player (0=White, 1=Purple) */ private byte _pvpFlag; - private final List _lastDamageTaken = new CopyOnWriteArrayList<>(); + private final List _lastDamageTaken = new ArrayList<>(21); /** The Fame of this Player */ private int _fame; @@ -5165,16 +5164,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 onDieDropItem(Creature killer) @@ -10583,7 +10588,7 @@ public class Player extends Playable instance.doRevive(this); } - _lastDamageTaken.clear(); + clearDamageTaken(); } @Override