From 7cd9f35b43ef9f9e6693678d288c1b224ed321c9 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 30 Mar 2020 17:21:37 +0000 Subject: [PATCH] Skip task manager tasks when working. --- .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 20 ++++++++++++------- .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ .../taskmanager/AttackStanceTaskManager.java | 2 +- .../taskmanager/DecayTaskManager.java | 9 +++++++++ .../RandomAnimationTaskManager.java | 9 +++++++++ .../taskmanager/RespawnTaskManager.java | 9 +++++++++ 71 files changed, 507 insertions(+), 24 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 4fa4906111..8ea3bd0de8 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -36,18 +36,15 @@ public class AttackStanceTaskManager { protected static final Logger LOGGER = Logger.getLogger(AttackStanceTaskManager.class.getName()); - protected Map _attackStanceTasks = new ConcurrentHashMap<>(); + protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); + + public static final long COMBAT_TIME = 15000; private AttackStanceTaskManager() { ThreadPool.scheduleAtFixedRate(new FightModeScheduler(), 0, 1000); } - public static AttackStanceTaskManager getInstance() - { - return SingletonHolder.INSTANCE; - } - public void addAttackStanceTask(Creature actor) { if (actor instanceof Summon) @@ -108,7 +105,7 @@ public class AttackStanceTaskManager for (Entry entry : _attackStanceTasks.entrySet()) { final Creature actor = entry.getKey(); - if ((current - entry.getValue()) > 15000) + if ((current - entry.getValue()) > COMBAT_TIME) { actor.broadcastPacket(new AutoAttackStop(actor.getObjectId())); if ((actor instanceof PlayerInstance) && (((PlayerInstance) actor).getPet() != null)) @@ -130,6 +127,15 @@ public class AttackStanceTaskManager } } + /** + * Gets the single instance of AttackStanceTaskManager. + * @return single instance of AttackStanceTaskManager + */ + public static AttackStanceTaskManager getInstance() + { + return SingletonHolder.INSTANCE; + } + private static class SingletonHolder { protected static final AttackStanceTaskManager INSTANCE = new AttackStanceTaskManager(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index 512c1636de..e687350cb9 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 6dbd199535..5bfdebd327 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.spawn.Spawn; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 0afed0a829..da641dde8d 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index 54591ce074..681edccc86 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 0afed0a829..da641dde8d 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index 54591ce074..681edccc86 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java index 620f020f4e..bbd4b90c50 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/AttackStanceTaskManager.java @@ -38,7 +38,7 @@ public class AttackStanceTaskManager protected static final Map _attackStanceTasks = new ConcurrentHashMap<>(); - public static final long COMBAT_TIME = 15_000; + public static final long COMBAT_TIME = 15000; /** * Instantiates a new attack stance task manager. diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 565d1210b0..134e60fee4 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -32,11 +32,18 @@ import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; public class DecayTaskManager { private static final Map DECAY_SCHEDULES = new ConcurrentHashMap<>(); + private static boolean _working = false; public DecayTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : DECAY_SCHEDULES.entrySet()) { @@ -47,6 +54,8 @@ public class DecayTaskManager creature.onDecay(); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java index b488bd6d10..1fa8e74324 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RandomAnimationTaskManager.java @@ -31,11 +31,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RandomAnimationTaskManager { private static final Map PENDING_ANIMATIONS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RandomAnimationTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_ANIMATIONS.entrySet()) { @@ -49,6 +56,8 @@ public class RandomAnimationTaskManager PENDING_ANIMATIONS.put(npc, time + (Rnd.get((npc.isAttackable() ? Config.MIN_MONSTER_ANIMATION : Config.MIN_NPC_ANIMATION), (npc.isAttackable() ? Config.MAX_MONSTER_ANIMATION : Config.MAX_NPC_ANIMATION)) * 1000)); } } + + _working = false; }, 0, 1000); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java index 474e821d06..578bae59f1 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/RespawnTaskManager.java @@ -30,11 +30,18 @@ import org.l2jmobius.gameserver.model.actor.Npc; public class RespawnTaskManager { private static final Map PENDING_RESPAWNS = new ConcurrentHashMap<>(); + private static boolean _working = false; public RespawnTaskManager() { ThreadPool.scheduleAtFixedRate(() -> { + if (_working) + { + return; + } + _working = true; + final long time = System.currentTimeMillis(); for (Entry entry : PENDING_RESPAWNS.entrySet()) { @@ -50,6 +57,8 @@ public class RespawnTaskManager } } } + + _working = false; }, 0, 1000); }