From a4857f7a4e457ff4c7c7e8da8410129efd4aabcf Mon Sep 17 00:00:00 2001 From: Krakenied Date: Tue, 13 May 2025 19:30:31 +0200 Subject: API cleanup & ensure compatibility --- bukkit/build.gradle.kts | 2 +- .../quests/bukkit/BukkitQuestsPlugin.java | 2 +- .../command/AdminDebugReportCommandHandler.java | 8 +- .../bukkit/command/AdminInfoCommandHandler.java | 8 +- .../command/AdminModdataRandomCommandHandler.java | 2 +- .../bukkit/command/RandomCommandHandler.java | 2 +- .../quests/bukkit/command/TabHelper.java | 4 +- .../quests/bukkit/config/BukkitQuestsLoader.java | 4 +- .../bukkit/hook/papi/QuestsPlaceholders.java | 2 +- .../hook/papi/data/CommonPlaceholderType.java | 69 ---------------- .../quests/bukkit/listener/PlayerJoinListener.java | 2 +- .../quests/bukkit/menu/MenuController.java | 2 +- .../questcompleter/BukkitQuestCompleter.java | 2 +- .../questcontroller/DailyQuestController.java | 2 +- .../questcontroller/NormalQuestController.java | 94 +++++++++++++--------- .../bukkit/storage/ModernMySQLStorageProvider.java | 2 +- .../bukkit/storage/ModernYAMLStorageProvider.java | 2 +- .../quests/bukkit/util/MenuUtils.java | 4 +- 18 files changed, 81 insertions(+), 132 deletions(-) delete mode 100644 bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/data/CommonPlaceholderType.java (limited to 'bukkit') diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index 01272846..2b4c719f 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -94,7 +94,7 @@ dependencies { // ItemsAdder compileOnlyPlugin("com.github.LoneDev6:API-ItemsAdder:3.5.0b") // JetBrains Annotations - compileOnlyPlugin("org.jetbrains:annotations:24.1.0") + compileOnlyPlugin("org.jetbrains:annotations:26.0.2") // MMOItems compileOnlyPlugin("net.Indyuce:MMOItems-API:6.9.2-SNAPSHOT") // MythicLib 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 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 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 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 tabCompleteQuests(String arg) { - List options = new ArrayList<>(plugin.getQuestManager().getQuests().keySet()); + List options = new ArrayList<>(plugin.getQuestManager().getQuestMap().keySet()); return matchTabComplete(arg, options); } public static List tabCompleteQuestsOrWildcard(String arg) { - List options = new ArrayList<>(plugin.getQuestManager().getQuests().keySet()); + List 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 taskProblems = new HashSet<>(); + List 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 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 listAll = new ArrayList<>(plugin.getQuestManager().getQuests().values()); + final List listAll = new ArrayList<>(plugin.getQuestManager().getQuestMap().values()); result = (args.length == 1 ? String.valueOf(listAll.size()) : parseList((List) 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 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 quests = new ArrayList<>(); -// for (Map.Entry entry : plugin.getQuestManager().getQuests().entrySet()) { +// for (Map.Entry 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 questIds = new ArrayList<>(plugin.getQuestManager().getQuests().keySet()); +// List 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 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 startedQuests = getStartedQuestsForPlayer(qPlayer); + final Set 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 getStartedQuestsForPlayer(QPlayer qPlayer) { Set 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 quests = new ArrayList<>(); - for (Map.Entry entry : plugin.getQuestManager().getQuests().entrySet()) { + for (Map.Entry entry : plugin.getQuestManager().getQuestMap().entrySet()) { quests.add(entry.getValue()); } Collections.sort(quests); @@ -119,7 +119,7 @@ public class MenuUtils { } List quests = new ArrayList<>(); - for (Map.Entry entry : plugin.getQuestManager().getQuests().entrySet()) { + for (Map.Entry entry : plugin.getQuestManager().getQuestMap().entrySet()) { quests.add(new QuestSortWrapper(plugin, entry.getValue())); } Collections.sort(quests); -- cgit v1.2.3-70-g09d2