Removal of scheduleAtFixedRate DecoyLifetime task.

This commit is contained in:
MobiusDevelopment 2022-09-21 01:35:13 +00:00
parent ee04013579
commit 21ad2477c8
27 changed files with 240 additions and 1491 deletions

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -38,8 +38,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -55,9 +53,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(getOwner(), this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(() -> unSummon(owner), totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -78,42 +74,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon(_owner);
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Player _player;
private final Decoy _decoy;
DecoyLifetime(Player player, Decoy decoy)
{
_player = player;
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon(_player);
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -142,11 +107,6 @@ public class Decoy extends Creature
public synchronized void unSummon(Player owner)
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -159,21 +119,12 @@ public class Decoy extends Creature
owner.setDecoy(null);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -38,8 +38,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -55,9 +53,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(getOwner(), this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(() -> unSummon(owner), totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -78,42 +74,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon(_owner);
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Player _player;
private final Decoy _decoy;
DecoyLifetime(Player player, Decoy decoy)
{
_player = player;
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon(_player);
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -142,11 +107,6 @@ public class Decoy extends Creature
public synchronized void unSummon(Player owner)
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -159,21 +119,12 @@ public class Decoy extends Creature
owner.setDecoy(null);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -38,8 +38,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -55,9 +53,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(getOwner(), this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(() -> unSummon(owner), totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -78,42 +74,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon(_owner);
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Player _player;
private final Decoy _decoy;
DecoyLifetime(Player player, Decoy decoy)
{
_player = player;
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon(_player);
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -142,11 +107,6 @@ public class Decoy extends Creature
public synchronized void unSummon(Player owner)
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -159,21 +119,12 @@ public class Decoy extends Creature
owner.setDecoy(null);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override

View File

@ -39,8 +39,6 @@ import org.l2jmobius.gameserver.taskmanager.DecayTaskManager;
public class Decoy extends Creature
{
private final Player _owner;
private int _totalLifeTime;
private int _timeRemaining;
private Future<?> _decoyLifeTask;
private Future<?> _hateSpam;
@ -56,9 +54,7 @@ public class Decoy extends Creature
_owner = owner;
setXYZInvisible(owner.getX(), owner.getY(), owner.getZ());
setInvul(false);
_totalLifeTime = totalLifeTime;
_timeRemaining = _totalLifeTime;
_decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000);
_decoyLifeTask = ThreadPool.schedule(this::unSummon, totalLifeTime);
if (aggressive)
{
final int hateSpamSkillId = 5272;
@ -79,39 +75,11 @@ public class Decoy extends Creature
_hateSpam.cancel(true);
_hateSpam = null;
}
_totalLifeTime = 0;
unSummon();
DecayTaskManager.getInstance().add(this);
return true;
}
static class DecoyLifetime implements Runnable
{
private final Decoy _decoy;
DecoyLifetime(Decoy decoy)
{
_decoy = decoy;
}
@Override
public void run()
{
try
{
_decoy.decTimeRemaining(1000);
final double newTimeRemaining = _decoy.getTimeRemaining();
if (newTimeRemaining < 0)
{
_decoy.unSummon();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Decoy Error: ", e);
}
}
}
private static class HateSpam implements Runnable
{
private final Decoy _player;
@ -138,13 +106,8 @@ public class Decoy extends Creature
}
}
public void unSummon()
public synchronized void unSummon()
{
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(true);
_decoyLifeTask = null;
}
if (_hateSpam != null)
{
_hateSpam.cancel(true);
@ -156,21 +119,12 @@ public class Decoy extends Creature
ZoneManager.getInstance().getRegion(this).removeFromZones(this);
decayMe();
}
}
public void decTimeRemaining(int value)
{
_timeRemaining -= value;
}
public int getTimeRemaining()
{
return _timeRemaining;
}
public int getTotalLifeTime()
{
return _totalLifeTime;
if (_decoyLifeTask != null)
{
_decoyLifeTask.cancel(false);
_decoyLifeTask = null;
}
}
@Override