Cleaner solution for starting listener once.

This commit is contained in:
MobiusDevelopment
2022-07-17 00:09:06 +00:00
parent 5cfd0bb5f4
commit 52fa8ed00a
23 changed files with 483 additions and 621 deletions

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}

View File

@@ -18,7 +18,6 @@ package handlers.effecthandlers;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
@@ -41,10 +40,11 @@ import org.l2jmobius.gameserver.taskmanager.GameTimeTaskManager;
*/
public class NightStatModify extends AbstractEffect
{
private static final AtomicBoolean DAY_TIME = new AtomicBoolean(GameTimeTaskManager.getInstance().isNight());
private static final Set<Creature> NIGHT_STAT_CHARACTERS = ConcurrentHashMap.newKeySet();
private static final int SHADOW_SENSE = 294;
private static boolean START_LISTENER = true;
private final Stat _stat;
private final int _amount;
protected final StatModifierType _mode;
@@ -55,10 +55,16 @@ public class NightStatModify extends AbstractEffect
_amount = params.getInt("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
// Run only once per daytime change.
if (START_LISTENER)
{
START_LISTENER = false;
// Init a global day-night change listener.
final ListenersContainer container = Containers.Global();
container.addListener(new ConsumerEventListener(container, EventType.ON_DAY_NIGHT_CHANGE, (OnDayNightChange event) -> onDayNightChange(event), this));
}
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
@@ -99,19 +105,8 @@ public class NightStatModify extends AbstractEffect
public void onDayNightChange(OnDayNightChange event)
{
synchronized (DAY_TIME)
{
final boolean isNight = event.isNight();
// Run only once per daytime change.
if (isNight == DAY_TIME.get())
{
return;
}
DAY_TIME.set(isNight);
// System message for Shadow Sense.
final SystemMessage msg = new SystemMessage(isNight ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
final SystemMessage msg = new SystemMessage(event.isNight() ? SystemMessageId.IT_IS_NOW_MIDNIGHT_AND_THE_EFFECT_OF_S1_CAN_BE_FELT : SystemMessageId.IT_IS_DAWN_AND_THE_EFFECT_OF_S1_WILL_NOW_DISAPPEAR);
msg.addSkillName(SHADOW_SENSE);
for (Creature creature : NIGHT_STAT_CHARACTERS)
@@ -126,5 +121,4 @@ public class NightStatModify extends AbstractEffect
}
}
}
}
}