Use TimeUnit for time calculations

This commit is contained in:
P0nk
2021-09-10 18:56:03 +02:00
parent d52aedac4f
commit cdc17ef3dd
49 changed files with 268 additions and 161 deletions

View File

@@ -38,6 +38,9 @@ import tools.StringUtil;
import java.util.*;
import java.util.Map.Entry;
import static java.util.concurrent.TimeUnit.HOURS;
import static java.util.concurrent.TimeUnit.SECONDS;
/**
* @author Matze
* @author Ronan - support for medal quests
@@ -204,7 +207,7 @@ public class Quest {
}
IntervalRequirement ir = (IntervalRequirement) startReqs.get(QuestRequirementType.INTERVAL);
return ir.getInterval() < YamlConfig.config.server.QUEST_POINT_REPEATABLE_INTERVAL * 60 * 60 * 1000;
return ir.getInterval() < HOURS.toMillis(YamlConfig.config.server.QUEST_POINT_REPEATABLE_INTERVAL);
}
public boolean canStartQuestByStatus(Character chr) {
@@ -343,7 +346,7 @@ public class Quest {
newStatus.setCompleted(chr.getQuest(this).getCompleted());
if (timeLimit > 0) {
newStatus.setExpirationTime(System.currentTimeMillis() + (timeLimit * 1000));
newStatus.setExpirationTime(System.currentTimeMillis() + SECONDS.toMillis(timeLimit));
chr.questTimeLimit(this, timeLimit);
}
if (timeLimit2 > 0) {

View File

@@ -42,6 +42,8 @@ import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import static java.util.concurrent.TimeUnit.MINUTES;
/**
* @author Tyler (Twdtwd)
* @author Ronan
@@ -152,7 +154,7 @@ public class ItemAction extends AbstractQuestAction {
for (ItemData iEntry : giveItem) {
int itemid = iEntry.getId(), count = iEntry.getCount(), period = iEntry.getPeriod(); // thanks Vcoc for noticing quest milestone item not getting removed from inventory after a while
InventoryManipulator.addById(chr.getClient(), itemid, (short) count, "", -1, period > 0 ? (System.currentTimeMillis() + period * 60 * 1000) : -1);
InventoryManipulator.addById(chr.getClient(), itemid, (short) count, "", -1, period > 0 ? (System.currentTimeMillis() + MINUTES.toMillis(period)) : -1);
chr.sendPacket(PacketCreator.getShowItemGain(itemid, (short) count, true));
}
}

View File

@@ -28,11 +28,14 @@ import provider.DataTool;
import server.quest.Quest;
import server.quest.QuestRequirementType;
import static java.util.concurrent.TimeUnit.HOURS;
import static java.util.concurrent.TimeUnit.MINUTES;
/**
* @author Tyler (Twdtwd)
*/
public class IntervalRequirement extends AbstractQuestRequirement {
private int interval = -1;
private long interval = -1;
private final int questID;
public IntervalRequirement(Quest quest, Data data) {
@@ -41,13 +44,13 @@ public class IntervalRequirement extends AbstractQuestRequirement {
processData(data);
}
public int getInterval() {
public long getInterval() {
return interval;
}
@Override
public void processData(Data data) {
interval = DataTool.getInt(data) * 60 * 1000;
interval = MINUTES.toMillis(DataTool.getInt(data));
}
private static String getIntervalTimeLeft(Character chr, IntervalRequirement r) {
@@ -57,21 +60,21 @@ public class IntervalRequirement extends AbstractQuestRequirement {
long leftTime = futureTime - System.currentTimeMillis();
byte mode = 0;
if (leftTime / (60 * 1000) > 0) {
if (leftTime / MINUTES.toMillis(1) > 0) {
mode++; //counts minutes
if (leftTime / (60 * 60 * 1000) > 0) {
if (leftTime / HOURS.toMillis(1) > 0) {
mode++; //counts hours
}
}
switch (mode) {
case 2:
int hours = (int) ((leftTime / (1000 * 60 * 60)));
int hours = (int) ((leftTime / HOURS.toMillis(1)));
str.append(hours + " hours, ");
case 1:
int minutes = (int) ((leftTime / (1000 * 60)) % 60);
int minutes = (int) ((leftTime / MINUTES.toMillis(1)) % 60);
str.append(minutes + " minutes, ");
default: