aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java/com
diff options
context:
space:
mode:
authorKrakenied <krakenied1@gmail.com>2025-05-13 19:30:31 +0200
committerKrakenied <46192742+Krakenied@users.noreply.github.com>2025-05-13 20:34:15 +0200
commita4857f7a4e457ff4c7c7e8da8410129efd4aabcf (patch)
treefec0c9c512346eea9ea6c7b0a05ce42ecb11f04a /bukkit/src/main/java/com
parent258d425ae0147e2b2a4e8d658d4aaba159005f8d (diff)
API cleanup & ensure compatibility
Diffstat (limited to 'bukkit/src/main/java/com')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminDebugReportCommandHandler.java8
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminInfoCommandHandler.java8
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataRandomCommandHandler.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/RandomCommandHandler.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/TabHelper.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/data/CommonPlaceholderType.java69
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/MenuController.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcompleter/BukkitQuestCompleter.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/DailyQuestController.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java94
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernMySQLStorageProvider.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernYAMLStorageProvider.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java4
17 files changed, 80 insertions, 131 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
index 88ccfb2a..74f31be1 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -280,7 +280,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
this.logHistory = new LogHistory(true);
this.generateConfigurations();
this.questsConfig = new BukkitQuestsConfig(new File(super.getDataFolder() + File.separator + "config.yml"));
- this.questManager = new QuestManager(this);
+ this.questManager = new QuestManager();
this.serverScheduler = FoliaServerScheduler.FOLIA ? new FoliaServerScheduler(this) : new BukkitServerSchedulerAdapter(this);
questsLogger.info("Running server scheduler: " + serverScheduler.getServerSchedulerName());
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminDebugReportCommandHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminDebugReportCommandHandler.java
index ae1e53fb..838ca946 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminDebugReportCommandHandler.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminDebugReportCommandHandler.java
@@ -98,12 +98,12 @@ public class AdminDebugReportCommandHandler implements CommandHandler {
lines.add("");
printList(lines, 0, "Task types available", plugin.getTaskTypeManager().getTaskTypes(), TaskType::getType);
lines.add("");
- printList(lines, 0, "Quests", plugin.getQuestManager().getQuests().values(), Quest::getId);
+ printList(lines, 0, "Quests", plugin.getQuestManager().getQuestMap().values(), Quest::getId);
lines.add("");
printList(lines, 0, "Categories", plugin.getQuestManager().getCategories(), Category::getId);
lines.add("");
BukkitQuestCompleter completer = (BukkitQuestCompleter) plugin.getQuestCompleter();
- printList(lines, 0, "Completion queue", completer.getCompletionQueue(), questProgress -> questProgress.getPlayer().toString());
+ printList(lines, 0, "Completion queue", completer.getCompletionQueue(), questProgress -> questProgress.getPlayerUUID().toString());
lines.add("");
printList(lines, 0, "Full check queue", completer.getFullCheckQueue(), questProgressFile -> questProgressFile.getPlayerUUID().toString());
lines.add("");
@@ -181,9 +181,9 @@ public class AdminDebugReportCommandHandler implements CommandHandler {
lines.add("# Quests #");
lines.add("################################");
lines.add("");
- lines.add("Number of quests: " + plugin.getQuestManager().getQuests().size());
+ lines.add("Number of quests: " + plugin.getQuestManager().getQuestMap().size());
lines.add("");
- for (Quest quest : plugin.getQuestManager().getQuests().values()) {
+ for (Quest quest : plugin.getQuestManager().getQuestMap().values()) {
Map<String, Object> questValues = getFieldValues(quest.getClass(), quest, "tasks", "tasksByType");
try {
Field tasksField = quest.getClass().getDeclaredField("tasks");
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminInfoCommandHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminInfoCommandHandler.java
index 9392b7f2..72e39137 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminInfoCommandHandler.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminInfoCommandHandler.java
@@ -25,16 +25,16 @@ public class AdminInfoCommandHandler implements CommandHandler {
if (args.length == 2) {
sender.sendMessage(ChatColor.GRAY + "Loaded quests:");
int i = 0;
- for (Quest quest : plugin.getQuestManager().getQuests().values()) {
+ for (Quest quest : plugin.getQuestManager().getQuestMap().values()) {
sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + quest.getId() + ChatColor.GRAY + " [" + quest.getTasks().size() + " tasks]");
i++;
- if (i == 25 && plugin.getQuestManager().getQuests().size() > 25) {
- sender.sendMessage(ChatColor.DARK_GRAY + " ... and " + (plugin.getQuestManager().getQuests().size() - 25) + " more ...");
+ if (i == 25 && plugin.getQuestManager().getQuestMap().size() > 25) {
+ sender.sendMessage(ChatColor.DARK_GRAY + " ... and " + (plugin.getQuestManager().getQuestMap().size() - 25) + " more ...");
break;
}
}
sender.sendMessage(ChatColor.GRAY + "Quest controller: " + ChatColor.RED + plugin.getQuestController().getName());
- sender.sendMessage(ChatColor.GRAY.toString() + plugin.getQuestManager().getQuests().size() + " registered.");
+ sender.sendMessage(ChatColor.GRAY.toString() + plugin.getQuestManager().getQuestMap().size() + " registered.");
sender.sendMessage(ChatColor.DARK_GRAY + "View info using /q a info [quest].");
} else {
Quest quest = plugin.getQuestManager().getQuestById(args[2]);
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataRandomCommandHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataRandomCommandHandler.java
index 81a5759a..b4b6b850 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataRandomCommandHandler.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminModdataRandomCommandHandler.java
@@ -33,7 +33,7 @@ public class AdminModdataRandomCommandHandler implements CommandHandler {
List<Quest> validQuests = new ArrayList<>();
boolean fromCategory = args.length != 4;
if (!fromCategory) {
- for (Quest quest : plugin.getQuestManager().getQuests().values()) {
+ for (Quest quest : plugin.getQuestManager().getQuestMap().values()) {
if (qPlayer.canStartQuest(quest) == QuestStartResult.QUEST_SUCCESS) {
validQuests.add(quest);
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/RandomCommandHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/RandomCommandHandler.java
index 34fd70c8..69b88707 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/RandomCommandHandler.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/RandomCommandHandler.java
@@ -33,7 +33,7 @@ public class RandomCommandHandler implements CommandHandler {
}
List<Quest> validQuests = new ArrayList<>();
if (args.length == 1) {
- for (Quest quest : plugin.getQuestManager().getQuests().values()) {
+ for (Quest quest : plugin.getQuestManager().getQuestMap().values()) {
if (qPlayer.canStartQuest(quest) == QuestStartResult.QUEST_SUCCESS) {
validQuests.add(quest);
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/TabHelper.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/TabHelper.java
index ff92c82f..6177b81b 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/TabHelper.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/TabHelper.java
@@ -32,12 +32,12 @@ public class TabHelper {
}
public static List<String> tabCompleteQuests(String arg) {
- List<String> options = new ArrayList<>(plugin.getQuestManager().getQuests().keySet());
+ List<String> options = new ArrayList<>(plugin.getQuestManager().getQuestMap().keySet());
return matchTabComplete(arg, options);
}
public static List<String> tabCompleteQuestsOrWildcard(String arg) {
- List<String> options = new ArrayList<>(plugin.getQuestManager().getQuests().keySet());
+ List<String> options = new ArrayList<>(plugin.getQuestManager().getQuestMap().keySet());
options.add("*");
return matchTabComplete(arg, options);
}
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 7b005fa1..215d4b8b 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
@@ -227,7 +227,7 @@ public class BukkitQuestsLoader implements QuestsLoader {
configValues.put(key, config.get(taskRoot + "." + key));
}
- Set<ConfigProblem> taskProblems = new HashSet<>();
+ List<ConfigProblem> taskProblems = new ArrayList<>();
for (TaskType.ConfigValidator validator : t.getConfigValidators()) {
validator.validateConfig(configValues, taskProblems);
}
@@ -426,7 +426,7 @@ public class BukkitQuestsLoader implements QuestsLoader {
e.printStackTrace();
}
- questsLogger.info(questManager.getQuests().size() + " quests have been registered.");
+ questsLogger.info(questManager.getQuestMap().size() + " quests have been registered.");
// post-load checks
for (Map.Entry<String, Quest> loadedQuest : pathToQuest.entrySet()) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java
index 1a533aab..39c53b6a 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java
@@ -82,7 +82,7 @@ public class QuestsPlaceholders extends PlaceholderExpansion implements Cacheabl
switch (args[0].toLowerCase()) {
case "all":
case "a":
- final List<Quest> listAll = new ArrayList<>(plugin.getQuestManager().getQuests().values());
+ final List<Quest> listAll = new ArrayList<>(plugin.getQuestManager().getQuestMap().values());
result = (args.length == 1 ? String.valueOf(listAll.size()) : parseList((List<Quest>) listAll, args[1], split));
break;
case "completed":
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/data/CommonPlaceholderType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/data/CommonPlaceholderType.java
deleted file mode 100644
index 47361f51..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/data/CommonPlaceholderType.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.leonardobishop.quests.bukkit.hook.papi.data;
-
-import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
-import com.leonardobishop.quests.common.player.QPlayer;
-import com.leonardobishop.quests.common.player.questprogressfile.filters.QuestProgressFilter;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public enum CommonPlaceholderType {
- ALL("all", "a") {
- @Override
- public int getCount(final @NotNull BukkitQuestsPlugin plugin, final @NotNull QPlayer player) {
- return plugin.getQuestManager().getQuests().size();
- }
- },
- COMPLETED("completed", "c") {
- @Override
- public int getCount(final @NotNull BukkitQuestsPlugin plugin, final @NotNull QPlayer player) {
- return player.getQuestProgressFile().getAllQuestsFromProgressCount(QuestProgressFilter.COMPLETED);
- }
- },
- COMPLETED_BEFORE("completedbefore", "cb") {
- @Override
- public int getCount(final @NotNull BukkitQuestsPlugin plugin, final @NotNull QPlayer player) {
- return player.getQuestProgressFile().getAllQuestsFromProgressCount(QuestProgressFilter.COMPLETED_BEFORE);
- }
- },
- STARTED("started", "s") {
- @Override
- public int getCount(final @NotNull BukkitQuestsPlugin plugin, final @NotNull QPlayer player) {
- return player.getQuestProgressFile().getAllQuestsFromProgressCount(QuestProgressFilter.STARTED);
- }
- },
- CATEGORIES("categories") {
- @Override
- public int getCount(final @NotNull BukkitQuestsPlugin plugin, final @NotNull QPlayer player) {
- return plugin.getQuestManager().getCategories().size();
- }
- };
-
- private final String[] names;
-
- CommonPlaceholderType(final @NotNull String @NotNull ... names) {
- this.names = names;
- }
-
- public abstract int getCount(final @NotNull BukkitQuestsPlugin plugin, final @NotNull QPlayer player);
-
- public @NotNull String @NotNull [] getNames() {
- return this.names;
- }
-
- private static final CommonPlaceholderType[] VALUES = CommonPlaceholderType.values();
-
- private static final Map<String, CommonPlaceholderType> byName = new HashMap<>(CommonPlaceholderType.VALUES.length) {{
- for (final CommonPlaceholderType placeholderType : CommonPlaceholderType.VALUES) {
- for (final String name : placeholderType.getNames()) {
- this.put(name, placeholderType);
- }
- }
- }};
-
- public static @Nullable CommonPlaceholderType getByName(final @NotNull String name) {
- return CommonPlaceholderType.byName.get(name);
- }
-}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java
index 13f2566a..2bceaa21 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/listener/PlayerJoinListener.java
@@ -42,7 +42,7 @@ public class PlayerJoinListener implements Listener {
// track first quest
if (plugin.getConfig().getBoolean("options.allow-quest-track") && plugin.getConfig().getBoolean("options.quest-autotrack")) {
- for (Quest quest : plugin.getQuestManager().getQuests().values()) {
+ for (Quest quest : plugin.getQuestManager().getQuestMap().values()) {
if (qPlayer.hasStartedQuest(quest)) {
qPlayer.trackQuest(quest);
break;
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/MenuController.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/MenuController.java
index 33f086b5..47d97adc 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/MenuController.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/MenuController.java
@@ -88,7 +88,7 @@ public class MenuController implements Listener {
//
// StartedQMenu startedQMenu = new StartedQMenu(plugin, qPlayer);
// List<QuestSortWrapper> quests = new ArrayList<>();
-// for (Map.Entry<String, Quest> entry : plugin.getQuestManager().getQuests().entrySet()) {
+// for (Map.Entry<String, Quest> entry : plugin.getQuestManager().getQuestMap().entrySet()) {
// quests.add(new QuestSortWrapper(plugin, entry.getValue()));
// }
// startedQMenu.populate(quests);
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcompleter/BukkitQuestCompleter.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcompleter/BukkitQuestCompleter.java
index 04e03f70..0f09c877 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcompleter/BukkitQuestCompleter.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcompleter/BukkitQuestCompleter.java
@@ -78,7 +78,7 @@ public class BukkitQuestCompleter implements QuestCompleter, Runnable {
QuestProgress questProgress = completionQueue.poll();
if (questProgress == null) return;
- Player player = Bukkit.getPlayer(questProgress.getPlayer());
+ Player player = Bukkit.getPlayer(questProgress.getPlayerUUID());
if (player != null && player.isOnline()) {
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
if (qPlayer == null) return;
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/DailyQuestController.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/DailyQuestController.java
index c6e103bc..95be073a 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/DailyQuestController.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/DailyQuestController.java
@@ -63,7 +63,7 @@
// random = new Random(refreshTime);
// quests = new ArrayList<>();
//
-// List<String> questIds = new ArrayList<>(plugin.getQuestManager().getQuests().keySet());
+// List<String> questIds = new ArrayList<>(plugin.getQuestManager().getQuestMap().keySet());
// for (int i = 0; i < 5; i++) {
// int randInt = random.nextInt(questIds.size());
// quests.add(questIds.get(randInt));
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java
index 2a0972ab..6bd319cb 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java
@@ -18,7 +18,9 @@ import com.leonardobishop.quests.bukkit.util.chat.Chat;
import com.leonardobishop.quests.common.enums.QuestStartResult;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress;
+import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
+import com.leonardobishop.quests.common.quest.Category;
import com.leonardobishop.quests.common.quest.Quest;
import com.leonardobishop.quests.common.quest.Task;
import com.leonardobishop.quests.common.questcontroller.QuestController;
@@ -49,7 +51,7 @@ public class NormalQuestController implements QuestController {
this.config = (BukkitQuestsConfig) plugin.getQuestsConfig();
List<Quest> autoStartQuestCache = new ArrayList<>();
- for (Quest quest : plugin.getQuestManager().getQuests().values()) {
+ for (Quest quest : plugin.getQuestManager().getQuestMap().values()) {
if (quest.isAutoStartEnabled()) autoStartQuestCache.add(quest);
}
this.autoStartQuestCache = autoStartQuestCache;
@@ -112,7 +114,7 @@ public class NormalQuestController implements QuestController {
QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest);
questProgress.setStarted(true);
questProgress.setStartedDate(System.currentTimeMillis());
- for (TaskProgress taskProgress : questProgress.getTaskProgress()) {
+ for (TaskProgress taskProgress : questProgress.getTaskProgresses()) {
taskProgress.setCompleted(false);
taskProgress.setProgress(null);
}
@@ -156,60 +158,76 @@ public class NormalQuestController implements QuestController {
}
@Override
- public QuestStartResult canPlayerStartQuest(QPlayer qPlayer, Quest quest) {
- Player p = Bukkit.getPlayer(qPlayer.getPlayerUUID());
- QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest);
- if (!quest.isRepeatable() && questProgress.isCompletedBefore()) {
- //if (playerUUID != null) {
- // ???
- //}
- return QuestStartResult.QUEST_ALREADY_COMPLETED;
- }
- long cooldown = qPlayer.getQuestProgressFile().getCooldownFor(quest);
- if (cooldown > 0) {
- return QuestStartResult.QUEST_COOLDOWN;
+ public @NotNull QuestStartResult canPlayerStartQuest(final @NotNull QPlayer qPlayer, final @NotNull Quest quest) {
+ final QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
+ final QuestProgress questProgress = questProgressFile.getQuestProgressOrNull(quest);
+
+ if (questProgress != null) {
+ if (!quest.isRepeatable() && questProgress.isCompleted()) {
+ // if (playerUUID != null) {
+ // ???
+ // }
+
+ return QuestStartResult.QUEST_ALREADY_COMPLETED;
+ }
+
+ final long cooldown = questProgressFile.getCooldownFor(quest);
+
+ if (cooldown > 0) {
+ return QuestStartResult.QUEST_COOLDOWN;
+ }
}
- if (!qPlayer.getQuestProgressFile().hasMetRequirements(quest)) {
+
+ if (!questProgressFile.hasMetRequirements(quest)) {
return QuestStartResult.QUEST_LOCKED;
}
- if (quest.isPermissionRequired()) {
- if (p != null) {
- if (!p.hasPermission("quests.quest." + quest.getId())) {
- return QuestStartResult.QUEST_NO_PERMISSION;
- }
- } else {
- return QuestStartResult.QUEST_NO_PERMISSION;
- }
+
+ final Player player = Bukkit.getPlayer(qPlayer.getPlayerUUID());
+ final String questPermission = quest.getPermission();
+
+ if (questPermission != null && (player == null || !player.hasPermission(questPermission))) {
+ return QuestStartResult.QUEST_NO_PERMISSION;
}
- if (quest.getCategoryId() != null && plugin.getQuestManager().getCategoryById(quest.getCategoryId()) != null && plugin.getQuestManager()
- .getCategoryById(quest.getCategoryId()).isPermissionRequired()) {
- if (p != null) {
- if (!p.hasPermission("quests.category." + quest.getCategoryId())) {
+
+ final String categoryId = quest.getCategoryId();
+
+ if (categoryId != null) {
+ final Category category = this.plugin.getQuestManager().getCategoryById(categoryId);
+
+ if (category != null) {
+ final String categoryPermission = category.getPermission();
+
+ if (categoryPermission != null && (player == null || !player.hasPermission(categoryPermission))) {
return QuestStartResult.NO_PERMISSION_FOR_CATEGORY;
}
- } else {
- return QuestStartResult.NO_PERMISSION_FOR_CATEGORY;
}
}
- boolean autostart = this.config.getBoolean("options.quest-autostart");
- if (questProgress.isStarted() || quest.isAutoStartEnabled() || autostart) {
+ final boolean autostart = this.config.getBoolean("options.quest-autostart");
+
+ if (autostart) {
return QuestStartResult.QUEST_ALREADY_STARTED;
}
if (quest.doesCountTowardsLimit()) {
- Set<Quest> startedQuests = getStartedQuestsForPlayer(qPlayer);
+ final Set<Quest> startedQuests = this.getStartedQuestsForPlayer(qPlayer);
int questLimitCount = 0;
- for (Quest q : startedQuests) {
- if (q.doesCountTowardsLimit()) {
+
+ for (final Quest startedQuest : startedQuests) {
+ if (startedQuest.doesCountTowardsLimit()) {
questLimitCount++;
}
}
- if (questLimitCount >= config.getQuestLimit(p)) {
+
+ if (questLimitCount >= this.config.getQuestLimit(player)) {
return QuestStartResult.QUEST_LIMIT_REACHED;
}
}
+ if (questProgress != null && questProgress.isStarted() || quest.isAutoStartEnabled()) {
+ return QuestStartResult.QUEST_ALREADY_STARTED;
+ }
+
return QuestStartResult.QUEST_SUCCESS;
}
@@ -218,7 +236,7 @@ public class NormalQuestController implements QuestController {
QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest);
questProgress.setStarted(false);
questProgress.setStartedDate(System.currentTimeMillis());
- for (TaskProgress taskProgress : questProgress.getTaskProgress()) {
+ for (TaskProgress taskProgress : questProgress.getTaskProgresses()) {
taskProgress.setCompleted(false);
taskProgress.setProgress(null);
}
@@ -275,7 +293,7 @@ public class NormalQuestController implements QuestController {
private void resetQuest(QuestProgress questProgress) {
questProgress.setStarted(false);
questProgress.setStartedDate(System.currentTimeMillis());
- for (TaskProgress taskProgress : questProgress.getTaskProgress()) {
+ for (TaskProgress taskProgress : questProgress.getTaskProgresses()) {
taskProgress.setCompleted(false);
taskProgress.setProgress(null);
}
@@ -405,7 +423,7 @@ public class NormalQuestController implements QuestController {
private Set<Quest> getStartedQuestsForPlayer(QPlayer qPlayer) {
Set<Quest> startedQuests = new HashSet<>();
if (config.getBoolean("options.quest-autostart")) {
- for (Quest quest : plugin.getQuestManager().getQuests().values()) {
+ for (Quest quest : plugin.getQuestManager().getQuestMap().values()) {
QuestStartResult response = canPlayerStartQuest(qPlayer, quest);
if (response == QuestStartResult.QUEST_SUCCESS || response == QuestStartResult.QUEST_ALREADY_STARTED) {
startedQuests.add(quest);
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernMySQLStorageProvider.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernMySQLStorageProvider.java
index 72cda628..a1d9187f 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernMySQLStorageProvider.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernMySQLStorageProvider.java
@@ -372,7 +372,7 @@ public final class ModernMySQLStorageProvider implements StorageProvider {
questStmt.setLong(12, questProgress.getCompletionDate());
questStmt.addBatch();
- for (final TaskProgress taskProgress : questProgress.getAllTaskProgress()) {
+ for (final TaskProgress taskProgress : questProgress.getTaskProgresses()) {
final String taskId = taskProgress.getTaskId();
final Object progress = taskProgress.getProgress();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernYAMLStorageProvider.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernYAMLStorageProvider.java
index 2b6b1cf9..c08477ae 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernYAMLStorageProvider.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/storage/ModernYAMLStorageProvider.java
@@ -193,7 +193,7 @@ public final class ModernYAMLStorageProvider implements StorageProvider {
data.set("quest-progress." + questId + ".completed-before", questProgress.isCompletedBefore());
data.set("quest-progress." + questId + ".completion-date", questProgress.getCompletionDate());
- for (final TaskProgress taskProgress : questProgress.getAllTaskProgress()) {
+ for (final TaskProgress taskProgress : questProgress.getTaskProgresses()) {
final String taskId = taskProgress.getTaskId();
data.set("quest-progress." + questId + ".task-progress." + taskId + ".completed", taskProgress.isCompleted());
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java
index c8b3b7cc..00a10ef0 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/MenuUtils.java
@@ -75,7 +75,7 @@ public class MenuUtils {
plugin.getMenuController().openMenu(player, categoryQMenu);
} else {
List<Quest> quests = new ArrayList<>();
- for (Map.Entry<String, Quest> entry : plugin.getQuestManager().getQuests().entrySet()) {
+ for (Map.Entry<String, Quest> entry : plugin.getQuestManager().getQuestMap().entrySet()) {
quests.add(entry.getValue());
}
Collections.sort(quests);
@@ -119,7 +119,7 @@ public class MenuUtils {
}
List<QuestSortWrapper> quests = new ArrayList<>();
- for (Map.Entry<String, Quest> entry : plugin.getQuestManager().getQuests().entrySet()) {
+ for (Map.Entry<String, Quest> entry : plugin.getQuestManager().getQuestMap().entrySet()) {
quests.add(new QuestSortWrapper(plugin, entry.getValue()));
}
Collections.sort(quests);