summaryrefslogtreecommitdiffstats
path: root/common/src
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-24 13:17:16 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-24 13:17:16 +0100
commit367cbbede13140cc7c5e13de1041fdf4bd62f105 (patch)
tree07e24f67dc43fd42c98bf35e10953dc212b31b7c /common/src
parent2d3a885c70640aed6db1269d0ed7333fdb0ebef2 (diff)
Add quest-specific autostart
- Closes #188 - Closes #125
Diffstat (limited to 'common/src')
-rw-r--r--common/src/main/java/com/leonardobishop/quests/common/quest/Quest.java153
1 files changed, 121 insertions, 32 deletions
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 510e88d9..c1f6f47f 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
@@ -2,45 +2,29 @@ package com.leonardobishop.quests.common.quest;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Quest implements Comparable<Quest> {
- private Map<String, Task> tasks = new HashMap<>();
- private final String id;
- private final List<String> rewards;
- private final List<String> requirements;
- private final List<String> rewardString;
- private final List<String> startString;
- private final boolean repeatable;
- private final boolean cooldownEnabled;
- private final int cooldown;
- private final int sortOrder;
- private final boolean permissionRequired;
- private final Map<String, String> placeholders;
+ private final Map<String, Task> tasks = new HashMap<>();
+ private String id;
+ private List<String> rewards;
+ private List<String> requirements;
+ private List<String> rewardString;
+ private List<String> startString;
+ private boolean repeatEnabled;
+ private boolean cooldownEnabled;
+ private int cooldown;
+ private int sortOrder;
+ private boolean permissionRequired;
+ private boolean autoStartEnabled;
+ private Map<String, String> placeholders;
private String categoryid;
-
- public Quest(String id, List<String> rewards, List<String> requirements, boolean repeatable, boolean cooldownEnabled, int cooldown, boolean permissionRequired, List<String> rewardString, List<String> startString, Map<String, String> placeholders, String categoryid, int sortOrder) {
- this(id, rewards, requirements, repeatable, cooldownEnabled, cooldown, permissionRequired, rewardString, startString, placeholders, sortOrder);
- this.categoryid = categoryid;
- }
-
- public Quest(String id, List<String> rewards, List<String> requirements, boolean repeatable, boolean cooldownEnabled, int cooldown, boolean permissionRequired, List<String> rewardString, List<String> startString, Map<String, String> placeholders, int sortOrder) {
- this.id = id;
- this.rewards = rewards;
- this.requirements = requirements;
- this.repeatable = repeatable;
- this.cooldownEnabled = cooldownEnabled;
- this.cooldown = cooldown;
- this.permissionRequired = permissionRequired;
- this.rewardString = rewardString;
- this.startString = startString;
- this.placeholders = placeholders;
- this.sortOrder = sortOrder;
- }
+ private Quest() { }
public void registerTask(Task task) {
tasks.put(task.getId(), task);
@@ -90,7 +74,7 @@ public class Quest implements Comparable<Quest> {
}
public boolean isRepeatable() {
- return repeatable;
+ return repeatEnabled;
}
public boolean isCooldownEnabled() {
@@ -113,8 +97,113 @@ public class Quest implements Comparable<Quest> {
return sortOrder;
}
+ public boolean isAutoStartEnabled() {
+ return autoStartEnabled;
+ }
+
@Override
public int compareTo(Quest quest) {
return (sortOrder - quest.sortOrder);
}
+
+ public static class Builder {
+
+ private final String id;
+ private List<String> rewards = Collections.emptyList();
+ private List<String> requirements = Collections.emptyList();
+ private List<String> rewardString = Collections.emptyList();
+ private List<String> startString = Collections.emptyList();
+ private boolean repeatEnabled = false;
+ private boolean cooldownEnabled = false;
+ private int cooldown = 0;
+ private int sortOrder = 1;
+ private boolean permissionRequired = false;
+ private boolean autoStartEnabled = false;
+ private Map<String, String> placeholders = Collections.emptyMap();
+ private String categoryid = null;
+
+ public Builder(String id) {
+ this.id = id;
+ }
+
+ public Builder withRewards(List<String> rewards) {
+ this.rewards = rewards;
+ return this;
+ }
+
+ public Builder withRequirements(List<String> requirements) {
+ this.requirements = requirements;
+ return this;
+ }
+
+ public Builder withRewardString(List<String> rewardString) {
+ this.rewardString = rewardString;
+ return this;
+ }
+
+ public Builder withStartString(List<String> startString) {
+ this.startString = startString;
+ return this;
+ }
+
+ public Builder withSortOrder(int sortOrder) {
+ this.sortOrder = sortOrder;
+ return this;
+ }
+
+ public Builder withCooldown(int cooldown) {
+ this.cooldown = cooldown;
+ return this;
+ }
+
+ public Builder withPlaceholders(Map<String, String> placeholders) {
+ this.placeholders = placeholders;
+ return this;
+ }
+
+ public Builder withRepeatEnabled(boolean repeatEnabled) {
+ this.repeatEnabled = repeatEnabled;
+ return this;
+ }
+
+ public Builder withCooldownEnabled(boolean cooldownEnabled) {
+ this.cooldownEnabled = cooldownEnabled;
+ return this;
+ }
+
+ public Builder withPermissionRequired(boolean permissionRequired) {
+ this.permissionRequired = permissionRequired;
+ return this;
+ }
+
+ public Builder withAutoStartEnabled(boolean autoStartEnabled) {
+ this.autoStartEnabled = autoStartEnabled;
+ return this;
+ }
+
+ public Builder inCategory(String categoryid) {
+ this.categoryid = categoryid;
+ return this;
+ }
+
+ public Quest build() {
+ Quest quest = new Quest();
+ quest.id = this.id;
+ quest.rewards = this.rewards;
+ quest.requirements = this.requirements;
+ quest.rewardString = this.rewardString;
+ quest.startString = this.startString;
+ quest.repeatEnabled = this.repeatEnabled;
+ quest.cooldownEnabled = this.cooldownEnabled;
+ quest.cooldown = this.cooldown;
+ quest.sortOrder = this.sortOrder;
+ quest.permissionRequired = this.permissionRequired;
+ quest.autoStartEnabled = this.autoStartEnabled;
+ quest.placeholders = this.placeholders;
+ quest.categoryid = this.categoryid;
+
+ return quest;
+ }
+
+ }
}