Finished Stage time delay

Remove system prints
This commit is contained in:
Blackvein 2012-10-31 12:24:36 -07:00
parent 028e33f7cf
commit bcf8cee6fe
4 changed files with 332 additions and 288 deletions

View File

@ -101,6 +101,8 @@ public class Quester {
public LinkedList<String> getObjectives() {
if(delayStartTime == 0){
LinkedList<String> unfinishedObjectives = new LinkedList<String>();
LinkedList<String> finishedObjectives = new LinkedList<String>();
LinkedList<String> objectives = new LinkedList<String>();
@ -491,6 +493,32 @@ public class Quester {
return objectives;
}else{
long time;
if(delayTimeLeft > -1)
time = delayTimeLeft - (System.currentTimeMillis() - delayStartTime);
else
time = currentStage.delay - (System.currentTimeMillis() - delayStartTime);
LinkedList<String> obj = new LinkedList<String>();
String s;
if(currentStage.delayMessage != null){
s = currentStage.delayMessage;
s = plugin.parseString(s, currentQuest);
s = s.replaceAll("<time>", Quests.getTime(time));
}else
s = ChatColor.YELLOW + "Wait " + ChatColor.DARK_PURPLE + Quests.getTime(time) + ChatColor.YELLOW + ".";
obj.add(s);
return obj;
}
}
public boolean hasObjective(String s) {
@ -2571,11 +2599,14 @@ public class Quester {
public void startStageTimer(){
if(delayTimeLeft > -1)
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new StageTimer(plugin, this), delayTimeLeft*50);
else
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new StageTimer(plugin, this), currentStage.delay);
if(delayTimeLeft > -1){
System.out.println("Starting a new timer.");
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new StageTimer(plugin, this), delayTimeLeft/50);
}else{
System.out.println("Resuming timer.");
System.out.println("Delay: " + currentStage.delay/50 + " ticks. (" + (currentStage.delay/1000) + " seconds)");
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new StageTimer(plugin, this), currentStage.delay/50);
}
delayStartTime = System.currentTimeMillis();
}

View File

@ -295,6 +295,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
if (getQuester(cs.getName()).currentQuest != null) {
if(getQuester(cs.getName()).delayStartTime == 0)
cs.sendMessage(ChatColor.GOLD + "---(Objectives)---");
for (String s : getQuester(cs.getName()).getObjectives()) {

View File

@ -88,7 +88,7 @@ public class Stage {
String script;
Event event;
long delay = -1;
String delayMessage = "";
String delayMessage = null;
@Override
public boolean equals(Object o) {
@ -238,8 +238,15 @@ public class Stage {
if(other.delay != delay)
return false;
if(other.delayMessage.equalsIgnoreCase(delayMessage) == false)
if (other.delayMessage != null && delayMessage != null) {
if (other.delayMessage.equals(delayMessage) == false) {
return false;
}
} else if (other.delayMessage != null && delayMessage == null) {
return false;
} else if (other.delayMessage == null && delayMessage != null) {
return false;
}
}

View File

@ -18,12 +18,15 @@ public class StageTimer implements Runnable{
@Override
public void run(){
System.out.println("Running.");
if(quester.delayOver){
System.out.println("Delay is over.");
Player player = plugin.getServer().getPlayerExact(quester.name);
if(quester.currentQuest.stages.indexOf(quester.currentStage) == (quester.currentQuest.stages.size() - 1)){
System.out.println("Quester is finished Quest.");
if(quester.currentStage.script != null)
plugin.trigger.parseQuestTaskTrigger(quester.currentStage.script, player);
if(quester.currentStage.event != null)
@ -33,6 +36,7 @@ public class StageTimer implements Runnable{
}else {
System.out.println("Quester is not finished Quest.");
quester.reset();
player.sendMessage(plugin.parseString(quester.currentStage.finished, quester.currentQuest));
if(quester.currentStage.script != null)
@ -41,6 +45,8 @@ public class StageTimer implements Runnable{
quester.currentStage.event.happen(player);
quester.currentStage = quester.currentQuest.stages.get(quester.currentQuest.stages.indexOf(quester.currentStage) + 1);
quester.addEmpties();
quester.delayStartTime = 0;
quester.delayTimeLeft = -1;
player.sendMessage(ChatColor.GOLD + "---(Objectives)---");
for(String s : quester.getObjectives()){
@ -51,8 +57,7 @@ public class StageTimer implements Runnable{
}
quester.delayStartTime = 0;
quester.delayTimeLeft = -1;
}