diff --git a/src/main/java/net/knarcraft/dynmapcitizens/trait/quests/QuestsHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/trait/quests/QuestsHandler.java index 1bb52a1..5a3f226 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/trait/quests/QuestsHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/trait/quests/QuestsHandler.java @@ -3,6 +3,7 @@ package net.knarcraft.dynmapcitizens.trait.quests; import me.blackvein.quests.QuestsAPI; import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.quests.IStage; +import me.blackvein.quests.quests.Planner; import me.blackvein.quests.quests.Requirements; import me.blackvein.quests.quests.Rewards; import net.citizensnpcs.api.CitizensAPI; @@ -22,7 +23,12 @@ import org.dynmap.markers.GenericMarker; import org.dynmap.markers.MarkerIcon; import org.dynmap.markers.MarkerSet; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -30,6 +36,8 @@ import java.util.Map; import java.util.UUID; import java.util.logging.Level; +import static net.knarcraft.blacksmith.formatting.StringFormatter.replacePlaceholder; + /** * A handler class for the quests trait */ @@ -124,11 +132,11 @@ public class QuestsHandler extends AbstractTraitHandler { for (IQuest quest : questStarts) { markerDescription.append("
The quest to get planner info from
+ * @returnInformation about when the quest is available
+ */ + private String getQuestPlannerInfo(IQuest quest) { + Planner planner = quest.getPlanner(); + StringBuilder plannerInfo = new StringBuilder(); + plannerInfo.append("Planner:The string used for displaying this sign's duration
+ */ + public String getDurationString(long duration) { + if (duration == 0) { + return "immediately"; + } else { + double minute = 60; + double hour = minute * 60; + double day = hour * 24; + double week = day * 7; + double month = day * 30; + double year = day * 365; + double decade = year * 10; + + MapThe number to round
+ * @returnThe rounded number
+ */ + private double round(double number) { + return Math.round(number * 100.0) / 100.0; + } + + /** + * Formats a duration string + * + * @param durationThe duration to display
+ * @param translatableMessageThe time unit to display
+ * @param castToIntWhether to cast the duration to an int
+ * @returnThe formatted duration string
+ */ + private String formatDurationString(double duration, String translatableMessage, boolean castToInt) { + String durationFormat = "{duration} {unit}"; + durationFormat = replacePlaceholder(durationFormat, "{unit}", translatableMessage); + return replacePlaceholder(durationFormat, "{duration}", castToInt ? String.valueOf((int) duration) : + String.valueOf(duration)); + } + /** * Gets information about all requirements for the given quest * @@ -308,7 +422,6 @@ public class QuestsHandler extends AbstractTraitHandler { } } //TODO: Mark WorldGuard areas part of quests. Requires WorldGuard integration - //TODO: See if there is anything to do against overlapping markers } /**