aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrakenied <krakenied1@gmail.com>2024-11-16 03:02:34 +0100
committerKrakenied <46192742+Krakenied@users.noreply.github.com>2025-05-13 20:34:15 +0200
commit5dc3e724f08f0035a3e3abc392b6e23b770055e6 (patch)
tree5dfb93f00b93325313bac63596673fe49b038370
parentb60efbc8b39f93f04643d0fc05ff88cfccae489b (diff)
Add hidden option to quest options
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java17
-rw-r--r--common/src/main/java/com/leonardobishop/quests/common/quest/Quest.java17
3 files changed, 30 insertions, 6 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
index 54a917a4..4e283c40 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
@@ -286,6 +286,7 @@ public class BukkitQuestsLoader implements QuestsLoader {
boolean cancellable = config.getBoolean("options.cancellable", true);
boolean countsTowardsLimit = config.getBoolean("options.counts-towards-limit", true);
boolean countsTowardsCompleted = config.getBoolean("options.counts-towards-completed", true);
+ boolean hidden = config.getBoolean("options.hidden", false);
int cooldownTime = config.getInt("options.cooldown.time", 10);
int timeLimtTime = config.getInt("options.time-limit.time", 10);
int sortOrder = config.getInt("options.sort-order", 1);
@@ -326,6 +327,7 @@ public class BukkitQuestsLoader implements QuestsLoader {
.withCancellable(cancellable)
.withCountsTowardsLimit(countsTowardsLimit)
.withCountsTowardsCompleted(countsTowardsCompleted)
+ .withHidden(hidden)
.withAutoStartEnabled(autostart)
.inCategory(category)
.build();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java
index f0afeeea..444c6eff 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java
@@ -6,6 +6,7 @@ import com.leonardobishop.quests.bukkit.menu.element.QuestMenuElement;
import com.leonardobishop.quests.bukkit.util.chat.Chat;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.quest.Quest;
+import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
@@ -13,22 +14,26 @@ import java.util.List;
/**
* Represents a menu listing quests a player has started.
*/
-public class StartedQMenu extends PaginatedQMenu {
+public final class StartedQMenu extends PaginatedQMenu {
- public StartedQMenu(BukkitQuestsPlugin plugin, QPlayer owner, List<Quest> quests) {
+ public StartedQMenu(final @NotNull BukkitQuestsPlugin plugin, final @NotNull QPlayer owner, final @NotNull List<Quest> quests) {
super(owner, Chat.legacyColor(plugin.getQuestsConfig().getString("options.guinames.quests-started-menu")),
plugin.getQuestsConfig().getBoolean("options.trim-gui-size.quests-started-menu"), 54, plugin);
- List<MenuElement> elements = new ArrayList<>();
+ final List<MenuElement> elements = new ArrayList<>();
+
+ for (final Quest quest : quests) {
+ if (quest.isHidden()) {
+ continue;
+ }
- for (Quest quest : quests) {
if (!owner.hasStartedQuest(quest)) {
continue;
}
+
elements.add(new QuestMenuElement(plugin, quest, this));
}
- super.populate("custom-elements.started", elements, null);
+ this.populate("custom-elements.started", elements, null);
}
-
}
diff --git a/common/src/main/java/com/leonardobishop/quests/common/quest/Quest.java b/common/src/main/java/com/leonardobishop/quests/common/quest/Quest.java
index 2a0ed080..1f5d6d0d 100644
--- a/common/src/main/java/com/leonardobishop/quests/common/quest/Quest.java
+++ b/common/src/main/java/com/leonardobishop/quests/common/quest/Quest.java
@@ -37,6 +37,7 @@ public class Quest implements Comparable<Quest> {
private boolean cancellable;
private boolean countsTowardsLimit;
private boolean countsTowardsCompleted;
+ private boolean hidden;
private Map<String, String> placeholders;
private Map<String, String> progressPlaceholders;
private String categoryid;
@@ -340,6 +341,15 @@ public class Quest implements Comparable<Quest> {
}
/**
+ * Get whether this quest should be hidden from menus.
+ *
+ * @return boolean
+ */
+ public boolean isHidden() {
+ return hidden;
+ }
+
+ /**
* Compare the sort orders for this quest with another quest.
*
* @see Comparable#compareTo(Object)
@@ -375,6 +385,7 @@ public class Quest implements Comparable<Quest> {
private boolean cancellable = true;
private boolean countsTowardsLimit = true;
private boolean countsTowardsCompleted = true;
+ private boolean hidden = false;
private Map<String, String> placeholders = Collections.emptyMap();
private Map<String, String> progressPlaceholders = Collections.emptyMap();
private String categoryid = null;
@@ -498,6 +509,11 @@ public class Quest implements Comparable<Quest> {
return this;
}
+ public Builder withHidden(boolean hidden) {
+ this.hidden = hidden;
+ return this;
+ }
+
public Builder inCategory(String categoryid) {
this.categoryid = categoryid;
return this;
@@ -526,6 +542,7 @@ public class Quest implements Comparable<Quest> {
quest.autoStartEnabled = this.autoStartEnabled;
quest.countsTowardsLimit = this.countsTowardsLimit;
quest.countsTowardsCompleted = this.countsTowardsCompleted;
+ quest.hidden = this.hidden;
quest.cancellable = this.cancellable;
quest.placeholders = this.placeholders;
quest.progressPlaceholders = this.progressPlaceholders;