From c1c985d638be9e097491903b414a949bc2f9533f Mon Sep 17 00:00:00 2001 From: Exanthiax <107284021+Exanthiax@users.noreply.github.com> Date: Sun, 22 Sep 2024 15:12:11 +0100 Subject: [PATCH] improved sorting and multi-line descriptions --- .../com/willfp/ecoquests/quests/Quest.kt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/quests/Quest.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/quests/Quest.kt index 75c1e22..84f90a8 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/quests/Quest.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/quests/Quest.kt @@ -101,10 +101,20 @@ class Quest( // The tasks that are actually in use var tasks = run { - if (isResettable) { - loadTasks() ?: availableTasks.randomlyPick(taskAmount) + if (taskAmount == availableTasks.size) { + // If taskAmount is equal to availableTasks.size then tasks are ordered as configured + if (isResettable) { + availableTasks.take(taskAmount) + } else { + availableTasks.shuffled().take(taskAmount) + } } else { - availableTasks.randomlyPick(taskAmount) + // If taskAmount is less than availableTasks.size then tasks are selected and ordered randomly. + if (isResettable) { + loadTasks() ?: availableTasks.randomlyPick(taskAmount) + } else { + availableTasks.randomlyPick(taskAmount) + } } } private set @@ -268,7 +278,8 @@ class Quest( } fun getDescription(player: Player): List { - return addPlaceholdersInto(listOf(config.getString("description")), player) + val descriptions = config.getStrings("description") + return addPlaceholdersInto(descriptions, player) } fun hasActive(player: OfflinePlayer): Boolean {