Removed some unnecessary synchronizations from quest timers.

This commit is contained in:
MobiusDevelopment
2020-03-24 11:15:43 +00:00
parent 148a872859
commit 374eab6fdd
18 changed files with 647 additions and 807 deletions

View File

@@ -315,6 +315,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -329,23 +330,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -361,23 +360,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -393,13 +388,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2813,22 +2805,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -317,6 +317,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -331,23 +332,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -363,23 +362,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -395,13 +390,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2815,22 +2807,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -318,6 +318,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -332,23 +333,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -364,23 +363,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -396,13 +391,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2816,22 +2808,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -318,6 +318,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -332,23 +333,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -364,23 +363,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -396,13 +391,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2816,22 +2808,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -318,6 +318,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -332,23 +333,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -364,23 +363,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -396,13 +391,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2816,22 +2808,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -318,6 +318,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -332,23 +333,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -364,23 +363,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -396,13 +391,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2816,22 +2808,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -318,6 +318,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -332,23 +333,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -364,23 +363,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -396,13 +391,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2816,22 +2808,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -328,6 +328,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -342,23 +343,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -374,23 +373,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -406,13 +401,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2826,22 +2818,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -387,6 +387,7 @@ public class Quest extends ManagedScript
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -401,23 +402,21 @@ public class Quest extends ManagedScript
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -433,23 +432,19 @@ public class Quest extends ManagedScript
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -465,13 +460,10 @@ public class Quest extends ManagedScript
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -1668,20 +1660,21 @@ public class Quest extends ManagedScript
public boolean unload() public boolean unload()
{ {
saveGlobalData(); saveGlobalData();
// Cancel all pending timers before reloading. // Cancel all pending timers before reloading.
// If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
return QuestManager.getInstance().removeQuest(this); return QuestManager.getInstance().removeQuest(this);
} }

View File

@@ -290,6 +290,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -304,23 +305,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -336,23 +335,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -368,13 +363,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2503,22 +2495,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -292,6 +292,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -306,23 +307,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -338,23 +337,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -370,13 +365,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2546,22 +2538,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -316,6 +316,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -330,23 +331,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -362,23 +361,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -394,13 +389,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2770,22 +2762,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -316,6 +316,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -330,23 +331,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -362,23 +361,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -394,13 +389,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2770,22 +2762,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -316,6 +316,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -330,23 +331,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -362,23 +361,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -394,13 +389,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2770,22 +2762,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -316,6 +316,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -330,23 +331,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -362,23 +361,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -394,13 +389,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2770,22 +2762,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -316,6 +316,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -330,23 +331,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -362,23 +361,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -394,13 +389,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2770,22 +2762,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -316,6 +316,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -330,23 +331,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -362,23 +361,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -394,13 +389,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2770,22 +2762,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();

View File

@@ -316,6 +316,7 @@ public class Quest extends AbstractScript implements IIdentifiable
return timer; return timer;
} }
} }
return null; return null;
} }
@@ -330,23 +331,21 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty())
{
return;
}
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
for (QuestTimer timer : timers)
{
if (timer != null)
{
timer.cancel();
}
}
timers.clear();
} }
/** /**
@@ -362,23 +361,19 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(name);
if ((timers == null) || timers.isEmpty())
{ {
final List<QuestTimer> timers = _questTimers.get(name); return;
if ((timers == null) || timers.isEmpty()) }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{ {
timer.cancel();
return; return;
} }
for (QuestTimer timer : timers)
{
if ((timer != null) && timer.equals(this, name, npc, player))
{
timer.cancel();
timers.remove(timer);
return;
}
}
} }
} }
@@ -394,13 +389,10 @@ public class Quest extends AbstractScript implements IIdentifiable
return; return;
} }
synchronized (_questTimers) final List<QuestTimer> timers = _questTimers.get(timer.toString());
if (timers != null)
{ {
final List<QuestTimer> timers = _questTimers.get(timer.toString()); timers.remove(timer);
if (timers != null)
{
timers.remove(timer);
}
} }
} }
@@ -2770,22 +2762,21 @@ public class Quest extends AbstractScript implements IIdentifiable
public boolean unload(boolean removeFromList) public boolean unload(boolean removeFromList)
{ {
onSave(); onSave();
// cancel all pending timers before reloading.
// if timers ought to be restarted, the quest can take care of it // Cancel all pending timers before reloading.
// with its code (example: save global data indicating what timer must be restarted). // If timers ought to be restarted, the quest can take care of it with its code (example: save global data indicating what timer must be restarted).
synchronized (_questTimers) for (List<QuestTimer> timers : _questTimers.values())
{ {
for (List<QuestTimer> timers : _questTimers.values()) for (QuestTimer timer : timers)
{ {
for (QuestTimer timer : timers) timer.cancel();
{
timer.cancel();
}
timers.clear();
} }
_questTimers.clear();
timers.clear();
} }
_questTimers.clear();
if (removeFromList) if (removeFromList)
{ {
return QuestManager.getInstance().removeScript(this) && super.unload(); return QuestManager.getInstance().removeScript(this) && super.unload();