aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2020-04-15 09:24:34 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2020-04-15 09:24:34 +0100
commit1912d6a39306f7138ad30941fd62cc7ae19b08ed (patch)
tree03b435752c9f13a5f851e59657367e402cbb2721 /src/main
parent6001a91e7bf069b69606d64b8456fac267c769aa (diff)
Task types will now try to load QPlayer if it would otherwise return null.
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/leonardobishop/quests/Quests.java135
-rw-r--r--src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java28
-rw-r--r--src/main/java/com/leonardobishop/quests/commands/CommandQuests.java7
-rw-r--r--src/main/java/com/leonardobishop/quests/player/QPlayerManager.java34
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskTypeManager.java12
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ASkyBlockLevelType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BentoBoxLevelTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BreedingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BrewingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensInteractTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DistancefromTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/EnchantingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ExpEarnTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/IridiumSkyblockValueType.java3
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java7
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PositionTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ShearingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/TamingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/WalkingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/uSkyBlockLevelType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/updater/Updater.java11
-rw-r--r--src/main/resources/plugin.yml2
36 files changed, 164 insertions, 135 deletions
diff --git a/src/main/java/com/leonardobishop/quests/Quests.java b/src/main/java/com/leonardobishop/quests/Quests.java
index 98aded26..ada6a2e1 100644
--- a/src/main/java/com/leonardobishop/quests/Quests.java
+++ b/src/main/java/com/leonardobishop/quests/Quests.java
@@ -6,6 +6,10 @@ import com.leonardobishop.quests.commands.CommandQuests;
import com.leonardobishop.quests.events.EventInventory;
import com.leonardobishop.quests.events.EventPlayerJoin;
import com.leonardobishop.quests.events.EventPlayerLeave;
+import com.leonardobishop.quests.itemgetter.ItemGetter;
+import com.leonardobishop.quests.itemgetter.ItemGetterLatest;
+import com.leonardobishop.quests.itemgetter.ItemGetter_1_13;
+import com.leonardobishop.quests.itemgetter.ItemGetter_Late_1_8;
import com.leonardobishop.quests.obj.Messages;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.player.QPlayerManager;
@@ -19,31 +23,29 @@ import com.leonardobishop.quests.title.Title_BukkitNoTimings;
import com.leonardobishop.quests.title.Title_Other;
import com.leonardobishop.quests.updater.Updater;
import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
import java.io.*;
import java.util.ArrayList;
-import java.util.List;
import java.util.Map;
-import java.util.logging.Level;
public class Quests extends JavaPlugin {
private static QuestManager questManager;
private static QPlayerManager qPlayerManager;
private static TaskTypeManager taskTypeManager;
+
private static Updater updater;
private static Title title;
- private boolean brokenConfig = false;
+ private ItemGetter itemGetter;
private QuestsConfigLoader questsConfigLoader;
+ private QuestsLogger questsLogger;
+
+ private boolean brokenConfig = false;
private BukkitTask questCompleterTask;
private BukkitTask questAutosaveTask;
@@ -96,12 +98,14 @@ public class Quests extends JavaPlugin {
@Override
public void onEnable() {
+ questsLogger = new QuestsLogger(this, LoggingLevel.INFO);
+
taskTypeManager = new TaskTypeManager(this);
questManager = new QuestManager(this);
qPlayerManager = new QPlayerManager(this);
dataGenerator();
- setupTitle();
+ setupVersionSpecific();
Bukkit.getPluginCommand("quests").setExecutor(new CommandQuests(this));
Bukkit.getPluginManager().registerEvents(new EventPlayerJoin(this), this);
@@ -114,7 +118,7 @@ public class Quests extends JavaPlugin {
Metrics metrics = new Metrics(this);
if (metrics.isEnabled()) {
- this.getLogger().log(Level.INFO, "Metrics started. This can be disabled at /plugins/bStats/config.yml.");
+ this.getQuestsLogger().info("Metrics started. This can be disabled at /plugins/bStats/config.yml.");
}
questsConfigLoader = new QuestsConfigLoader(this);
@@ -166,11 +170,10 @@ public class Quests extends JavaPlugin {
taskTypeManager.closeRegistrations();
reloadQuests();
if (!questsConfigLoader.getBrokenFiles().isEmpty()) {
- this.getLogger().warning("Quests has failed to load the following files:");
+ this.getQuestsLogger().severe("Quests has failed to load the following files:");
for (Map.Entry<String, QuestsConfigLoader.ConfigLoadError> entry : questsConfigLoader.getBrokenFiles().entrySet()) {
- this.getLogger().warning(" - " + entry.getKey() + ": " + entry.getValue().getMessage());
+ this.getQuestsLogger().severe(" - " + entry.getKey() + ": " + entry.getValue().getMessage());
}
- this.getLogger().warning(ChatColor.GRAY.toString() + ChatColor.ITALIC + "If this is your first time using Quests, please delete the Quests folder and RESTART (not reload!) the server.");
}
for (Player player : Bukkit.getOnlinePlayers()) {
@@ -199,8 +202,22 @@ public class Quests extends JavaPlugin {
}
public void reloadQuests() {
- if (questAutosaveTask != null && !questAutosaveTask.isCancelled()) {
- questAutosaveTask.cancel();
+ questManager.getQuests().clear();
+ questManager.getCategories().clear();
+ taskTypeManager.resetTaskTypes();
+
+ questsConfigLoader.loadConfig();
+
+ long autocompleteInterval = 12000;
+ long completerPollInterval = 100;
+ if (!isBrokenConfig()) {
+ autocompleteInterval = this.getConfig().getLong("options.performance-tweaking.quest-autocomplete-interval", 12000);
+ completerPollInterval = this.getConfig().getLong("options.performance-tweaking.quest-completer-poll-interval", 100);
+ }
+ if (questAutosaveTask != null) {
+ try {
+ questAutosaveTask.cancel();
+ } catch (Exception ignored) { }
}
questAutosaveTask = Bukkit.getScheduler().runTaskTimerAsynchronously(this, () -> {
for (QPlayer qPlayer : qPlayerManager.getQPlayers()) {
@@ -209,69 +226,32 @@ public class Quests extends JavaPlugin {
}
qPlayer.getQuestProgressFile().saveToDisk(false);
}
- }, this.getConfig().getLong("options.performance-tweaking.quest-autocomplete-interval"), this.getConfig().getLong("options.performance-tweaking.quest-autocomplete-interval"));
- if (questCompleterTask != null && !questCompleterTask.isCancelled()) {
- questCompleterTask.cancel();
+ }, autocompleteInterval, autocompleteInterval);
+ if (questCompleterTask != null) {
+ try {
+ questCompleterTask.cancel();
+ } catch (Exception ignored) { }
}
- questCompleterTask = Bukkit.getScheduler().runTaskTimer(this, new QuestCompleter(this), 20,
- this.getConfig().getLong("options.performance-tweaking.quest-completer-poll-interval"));
-
- questManager.getQuests().clear();
- questManager.getCategories().clear();
- taskTypeManager.resetTaskTypes();
-
- questsConfigLoader.loadConfig();
- }
-
- public ItemStack getItemStack(String path, FileConfiguration config) {
- return getItemStack(config.getConfigurationSection(path));
+ questCompleterTask = Bukkit.getScheduler().runTaskTimer(this, new QuestCompleter(this), 20, completerPollInterval);
}
- @SuppressWarnings("deprecation")
- public ItemStack getItemStack(ConfigurationSection config) {
- String cName = config.getString("name", "name");
- String cType = config.getString("type", "type");
- List<String> cLore = config.getStringList("lore");
-
- String name;
- Material type;
- int data = 0;
- List<String> lore = new ArrayList<>();
- if (cLore != null) {
- for (String s : cLore) {
- lore.add(ChatColor.translateAlternateColorCodes('&', s));
- }
- }
- name = ChatColor.translateAlternateColorCodes('&', cName);
- type = Material.matchMaterial(cType);
-
-
- if (type == null) {
- type = Material.STONE;
- }
-
- ItemStack is;
- if (data == 0)
- is = new ItemStack(type, 1);
- else
- is = new ItemStack(type, 1, (short) data);
- ItemMeta ism = is.getItemMeta();
- ism.setLore(lore);
- ism.setDisplayName(name);
- is.setItemMeta(ism);
-
- return is;
+ public ItemStack getItemStack(String path, ConfigurationSection config, ItemGetter.Filter... excludes) {
+ return itemGetter.getItem(path, config, this, excludes);
}
- private boolean setupTitle() {
+ private void setupVersionSpecific() {
String version;
try {
version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3];
} catch (ArrayIndexOutOfBoundsException e) {
- return false;
+ getQuestsLogger().warning("Failed to resolve server version - some features will not work!");
+ title = new Title_Other();
+ itemGetter = new ItemGetter_Late_1_8();
+ return;
}
- boolean success = false;
- getLogger().info("Your server is running version " + version + ".");
+
+ getQuestsLogger().info("Your server is running version " + version + ".");
+
if (version.startsWith("v1_7")) {
title = new Title_Other();
} else if (version.startsWith("v1_8") || version.startsWith("v1_9") || version.startsWith("v1_10")) {
@@ -279,14 +259,23 @@ public class Quests extends JavaPlugin {
} else {
title = new Title_Bukkit();
}
+
+ if (version.startsWith("v1_7") || version.startsWith("v1_8") || version.startsWith("v1_9")
+ || version.startsWith("v1_10") || version.startsWith("v1_11") || version.startsWith("v1_12")) {
+ itemGetter = new ItemGetter_Late_1_8();
+ } else if (version.startsWith("v1_13")) {
+ itemGetter = new ItemGetter_1_13();
+ } else {
+ itemGetter = new ItemGetterLatest();
+ }
+
if (title instanceof Title_Bukkit) {
- getLogger().info("Titles have been enabled.");
+ getQuestsLogger().info("Titles have been enabled.");
} else if (title instanceof Title_BukkitNoTimings) {
- getLogger().info("Titles have been enabled, although they have limited timings.");
+ getQuestsLogger().info("Titles have been enabled, although they have limited timings.");
} else {
- getLogger().info("Titles are not supported for this version.");
+ getQuestsLogger().info("Titles are not supported for this version.");
}
- return success;
}
private void dataGenerator() {
@@ -353,4 +342,8 @@ public class Quests extends JavaPlugin {
}
}
}
+
+ public QuestsLogger getQuestsLogger() {
+ return questsLogger;
+ }
}
diff --git a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
index 476e336e..093f30c6 100644
--- a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
+++ b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
@@ -1,5 +1,6 @@
package com.leonardobishop.quests;
+import com.leonardobishop.quests.itemgetter.ItemGetter;
import com.leonardobishop.quests.obj.misc.QItemStack;
import com.leonardobishop.quests.quests.Category;
import com.leonardobishop.quests.quests.Quest;
@@ -7,7 +8,6 @@ import com.leonardobishop.quests.quests.Task;
import com.leonardobishop.quests.quests.tasktypes.TaskType;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
-import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.inventory.ItemStack;
@@ -17,8 +17,10 @@ import java.io.IOException;
import java.net.URI;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
-import java.util.*;
-import java.util.logging.Level;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class QuestsConfigLoader {
@@ -33,7 +35,9 @@ public class QuestsConfigLoader {
* Loads and parses config into memory including the quests folder.
*/
public void loadConfig() {
+ plugin.reloadConfig();
brokenFiles.clear();
+ plugin.setBrokenConfig(false);
// test CONFIG file integrity
try {
@@ -52,6 +56,7 @@ public class QuestsConfigLoader {
Category category = new Category(id, displayItem, permissionRequired);
plugin.getQuestManager().registerCategory(category);
}
+ plugin.getQuestsLogger().setServerLoggingLevel(LoggingLevel.fromNumber(plugin.getConfig().getInt("options.verbose-logging-level", 2)));
FileVisitor<Path> fileVisitor = new SimpleFileVisitor<Path>() {
final URI questsRoot = Paths.get(plugin.getDataFolder() + File.separator + "quests").toUri();
@@ -143,7 +148,7 @@ public class QuestsConfigLoader {
}
if (plugin.getConfig().getBoolean("options.show-quest-registrations")) {
- plugin.getLogger().log(Level.INFO, "Registering quest " + quest.getId() + " with " + quest.getTasks().size() + " tasks.");
+ plugin.getQuestsLogger().info("Registering quest " + quest.getId() + " with " + quest.getTasks().size() + " tasks.");
}
plugin.getQuestManager().registerQuest(quest);
plugin.getTaskTypeManager().registerQuestTasksWithTaskTypes(quest);
@@ -175,13 +180,10 @@ public class QuestsConfigLoader {
private QItemStack getQItemStack(String path, FileConfiguration config) {
String cName = config.getString(path + ".name", path + ".name");
- String cType = config.getString(path + ".type", path + ".type");
List<String> cLoreNormal = config.getStringList(path + ".lore-normal");
List<String> cLoreStarted = config.getStringList(path + ".lore-started");
String name;
- Material type;
- int data = 0;
List<String> loreNormal = new ArrayList<>();
if (cLoreNormal != null) {
for (String s : cLoreNormal) {
@@ -196,21 +198,17 @@ public class QuestsConfigLoader {
}
name = ChatColor.translateAlternateColorCodes('&', cName);
- type = Material.matchMaterial(cType);
+ ItemStack is = plugin.getItemStack(path, config,
+ ItemGetter.Filter.DISPLAY_NAME, ItemGetter.Filter.LORE, ItemGetter.Filter.ENCHANTMENTS, ItemGetter.Filter.ITEM_FLAGS);
-
- if (type == null) {
- type = Material.STONE;
- }
-
- return new QItemStack(name, loreNormal, loreStarted, type, data);
+ return new QItemStack(name, loreNormal, loreStarted, is);
}
public enum ConfigLoadError {
MALFORMED_YAML("Malformed YAML"),
INVALID_QUEST_ID("Invalid quest ID (must be alphanumeric)"),
- MALFORMED_QUEST("Quest file isn't configured properly.");
+ MALFORMED_QUEST("Quest file is not configured properly");
private String message;
diff --git a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java
index 3360dc58..69e975d6 100644
--- a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java
+++ b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java
@@ -32,12 +32,14 @@ public class CommandQuests implements CommandExecutor {
@SuppressWarnings("deprecation")
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- if (plugin.isBrokenConfig()) {
+ if (plugin.isBrokenConfig() &&
+ !(args.length >= 2 &&
+ (args[0].equalsIgnoreCase("a") || args[0].equalsIgnoreCase("admin")) &&
+ args[1].equalsIgnoreCase("reload"))) {
sender.sendMessage(ChatColor.RED + "The main config must be in tact before quests can be used. Quests has failed to load the following files:");
for (Map.Entry<String, QuestsConfigLoader.ConfigLoadError> entry : plugin.getQuestsConfigLoader().getBrokenFiles().entrySet()) {
sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + entry.getKey() + ": " + ChatColor.GRAY + entry.getValue().getMessage());
}
- sender.sendMessage(ChatColor.GRAY.toString() + ChatColor.ITALIC + "If this is your first time using Quests, please delete the Quests folder and RESTART (not reload!) the server.");
return true;
}
@@ -68,7 +70,6 @@ public class CommandQuests implements CommandExecutor {
for (Map.Entry<String, QuestsConfigLoader.ConfigLoadError> entry : plugin.getQuestsConfigLoader().getBrokenFiles().entrySet()) {
sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.RED + entry.getKey() + ": " + ChatColor.GRAY + entry.getValue().getMessage());
}
- sender.sendMessage(ChatColor.GRAY.toString() + ChatColor.ITALIC + "If this is your first time using Quests, please delete the Quests folder and RESTART (not reload!) the server.");
} else {
sender.sendMessage(ChatColor.GRAY + "Quests was reloaded.");
}
diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java
index 119186e5..dba881bb 100644
--- a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java
+++ b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java
@@ -1,13 +1,16 @@
package com.leonardobishop.quests.player;
+import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.player.questprogressfile.QuestProgress;
import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.player.questprogressfile.TaskProgress;
-import com.leonardobishop.quests.Quests;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
-import java.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
public class QPlayerManager {
@@ -19,7 +22,31 @@ public class QPlayerManager {
private final Map<UUID, QPlayer> qPlayers = new HashMap<>();
+ /**
+ * Gets the QPlayer from a given UUID.
+ * Calls {@link QPlayerManager#getPlayer(UUID, boolean)} with the 2nd argument as false.
+ *
+ * @param uuid the uuid
+ * @return {@link QPlayer} if they are loaded
+ */
public QPlayer getPlayer(UUID uuid) {
+ return getPlayer(uuid, false);
+ }
+
+ /**
+ * Gets the QPlayer from a given UUID.
+ *
+ * @param uuid the uuid
+ * @param loadIfNull load the QPlayer if the result is null and return the QPlayer if successfully loaded
+ * @return {@link QPlayer} if they are loaded
+ */
+ public QPlayer getPlayer(UUID uuid, boolean loadIfNull) {
+ QPlayer qPlayer = qPlayers.get(uuid);
+ if (qPlayer == null && loadIfNull) {
+ plugin.getQuestsLogger().debug("QPlayer of " + uuid + " is null, but was requested! Attempting to load it.");
+ loadPlayer(uuid, false);
+ return getPlayer(uuid, false);
+ }
return qPlayers.get(uuid);
}
@@ -37,6 +64,7 @@ public class QPlayerManager {
// loadPlayer(uuid, false);
//}
+ // TODO redo "onlyData" and use a less confusing way
public void loadPlayer(UUID uuid, boolean onlyData) {
if (getPlayer(uuid) == null || getPlayer(uuid).isOnlyDataLoaded()) {
QuestProgressFile questProgressFile = new QuestProgressFile(uuid, plugin);
@@ -70,7 +98,7 @@ public class QPlayerManager {
}
}
} catch (Exception ex) {
- plugin.getLogger().severe("Failed to load player: " + uuid + "! This WILL cause errors.");
+ plugin.getQuestsLogger().severe("Failed to load player: " + uuid + "! This WILL cause errors.");
ex.printStackTrace();
// fuck
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskTypeManager.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskTypeManager.java
index b9f1a011..27a4346f 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskTypeManager.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskTypeManager.java
@@ -6,14 +6,19 @@ import com.leonardobishop.quests.quests.Task;
import org.bukkit.Bukkit;
import java.util.ArrayList;
-import java.util.logging.Level;
public class TaskTypeManager {
private Quests plugin;
+ private boolean allowRegistrations;
public TaskTypeManager(Quests plugin) {
this.plugin = plugin;
+ allowRegistrations = true;
+ }
+
+ public void closeRegistrations() {
+ allowRegistrations = false;
}
private ArrayList<TaskType> taskTypes = new ArrayList<>();
@@ -29,8 +34,11 @@ public class TaskTypeManager {
}
public void registerTaskType(TaskType taskType) {
+ if (!allowRegistrations) {
+ throw new IllegalStateException("No longer accepting new task types (must be done before quests are loaded)");
+ }
Bukkit.getPluginManager().registerEvents(taskType, plugin);
- plugin.getLogger().log(Level.INFO, "Task type " + taskType.getType() + " has been registered.");
+ plugin.getQuestsLogger().info("Task type " + taskType.getType() + " has been registered.");
taskTypes.add(taskType);
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ASkyBlockLevelType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ASkyBlockLevelType.java
index 6d74bcaa..0e4f3229 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ASkyBlockLevelType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ASkyBlockLevelType.java
@@ -32,7 +32,7 @@ public final class ASkyBlockLevelType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(IslandPostLevelEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer(), true);
if (qPlayer == null) {
return;
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BentoBoxLevelTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BentoBoxLevelTaskType.java
index d54f03e9..289b2655 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BentoBoxLevelTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BentoBoxLevelTaskType.java
@@ -51,7 +51,7 @@ public final class BentoBoxLevelTaskType extends TaskType {
Island island = (Island) keyValues.get("island");
for (UUID member : island.getMemberSet()) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(member);
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(member, true);
if (qPlayer == null) {
continue;
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BreedingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BreedingTaskType.java
index 8054dcf7..dd6f9e55 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BreedingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BreedingTaskType.java
@@ -50,7 +50,7 @@ public final class BreedingTaskType extends TaskType {
if (current instanceof Player) {
Player player = (Player) current;
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BrewingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BrewingTaskType.java
index a9e3bcfe..9a88b75b 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BrewingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BrewingTaskType.java
@@ -59,7 +59,7 @@ public final class BrewingTaskType extends TaskType {
return;
}
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java
index 6b434111..15dfbe37 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java
@@ -39,7 +39,7 @@ public final class BuildingCertainTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
@@ -63,7 +63,7 @@ public final class BuildingCertainTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockBreak(BlockBreakEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingTaskType.java
index ea12415d..7fc6f03a 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingTaskType.java
@@ -32,7 +32,7 @@ public final class BuildingTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java
index 36ef02a5..a5a6914d 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java
@@ -47,7 +47,7 @@ public final class CitizensDeliverTaskType extends TaskType {
@SuppressWarnings("deprecation")
private void checkInventory(Player player, String citizenName) {
- QPlayer qPlayer = Quests.get().getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = Quests.get().getPlayerManager().getPlayer(player.getUniqueId(), true);
if (qPlayer == null) {
return;
}
@@ -77,7 +77,7 @@ public final class CitizensDeliverTaskType extends TaskType {
ItemStack is;
if (configBlock instanceof ConfigurationSection) {
- is = Quests.get().getItemStack((org.bukkit.configuration.ConfigurationSection) configBlock);
+ is = Quests.get().getItemStack(null, (org.bukkit.configuration.ConfigurationSection) configBlock);
} else {
material = Material.getMaterial(String.valueOf(configBlock));
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensInteractTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensInteractTaskType.java
index a97fe6df..56293f9b 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensInteractTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensInteractTaskType.java
@@ -33,7 +33,7 @@ public final class CitizensInteractTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onNPCClick(NPCRightClickEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getClicker().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getClicker().getUniqueId(), true);
if (qPlayer == null) {
return;
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java
index d66942fe..7fb52f2b 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java
@@ -41,7 +41,7 @@ public final class DealDamageTaskType extends TaskType {
Player player = (Player) e.getDamager();
double damage = e.getDamage();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DistancefromTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DistancefromTaskType.java
index 94b9e832..bc181249 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DistancefromTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DistancefromTaskType.java
@@ -46,7 +46,7 @@ public final class DistancefromTaskType extends TaskType {
Player player = event.getPlayer();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/EnchantingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/EnchantingTaskType.java
index a82ff444..4c211192 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/EnchantingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/EnchantingTaskType.java
@@ -35,7 +35,7 @@ public final class EnchantingTaskType extends TaskType {
public void onEnchant(EnchantItemEvent e) {
Player player = e.getEnchanter();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ExpEarnTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ExpEarnTaskType.java
index 58f2f87d..aa57e0e6 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ExpEarnTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ExpEarnTaskType.java
@@ -32,7 +32,7 @@ public final class ExpEarnTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onExpEarn(PlayerExpChangeEvent e) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(e.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(e.getPlayer().getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java
index 174af9b9..7f3f9f11 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java
@@ -42,7 +42,7 @@ public final class FarmingTaskType extends TaskType {
}
Crops crop = (Crops) event.getBlock().getState();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java
index 986ae62f..2b918f99 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java
@@ -44,7 +44,7 @@ public final class FishingTaskType extends TaskType {
Player player = event.getPlayer();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
index fb31e3c8..73dd82d6 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
@@ -52,7 +52,7 @@ public final class InventoryTaskType extends TaskType {
@SuppressWarnings("deprecation")
private void checkInventory(Player player) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
if (qPlayer == null) {
return;
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/IridiumSkyblockValueType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/IridiumSkyblockValueType.java
index 7a9e7ef6..028ae2c1 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/IridiumSkyblockValueType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/IridiumSkyblockValueType.java
@@ -1,6 +1,5 @@
package com.leonardobishop.quests.quests.tasktypes.types;
-import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.Island;
import com.iridium.iridiumskyblock.User;
import com.leonardobishop.quests.Quests;
@@ -42,7 +41,7 @@ public final class IridiumSkyblockValueType extends TaskType {
return;
}
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
if (qPlayer == null) {
return;
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java
index 2998fb83..208f642b 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java
@@ -42,7 +42,7 @@ public final class MilkingTaskType extends TaskType {
Player player = event.getPlayer();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java
index c2f847c5..f0c09ab6 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java
@@ -39,7 +39,7 @@ public final class MiningCertainTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockBreak(BlockBreakEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
@@ -63,7 +63,7 @@ public final class MiningCertainTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningTaskType.java
index 944ba067..fbba46cc 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningTaskType.java
@@ -36,7 +36,7 @@ public final class MiningTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockBreak(BlockBreakEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId()); // get the qplayer so you can get their progress
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true); // get the qplayer so you can get their progress
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile(); // the quest progress file stores progress about all quests and tasks
for (Quest quest : super.getRegisteredQuests()) { // iterate through all quests which are registered to use this task type
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java
index b30b0547..238d3387 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java
@@ -49,7 +49,7 @@ public final class MobkillingCertainTaskType extends TaskType {
return;
}
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java
index 6a946e32..770f197a 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java
@@ -9,7 +9,10 @@ import com.leonardobishop.quests.quests.Quest;
import com.leonardobishop.quests.quests.Task;
import com.leonardobishop.quests.quests.tasktypes.ConfigValue;
import com.leonardobishop.quests.quests.tasktypes.TaskType;
-import org.bukkit.entity.*;
+import org.bukkit.entity.Animals;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Monster;
+import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDeathEvent;
@@ -45,7 +48,7 @@ public final class MobkillingTaskType extends TaskType {
return;
}
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java
index ce481d34..24b70a82 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java
@@ -48,7 +48,7 @@ public final class MythicMobsKillingType extends TaskType {
String mobName = event.getMobType().getInternalName();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java
index 6cf6292c..e28f82e7 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java
@@ -46,7 +46,7 @@ public final class PlayerkillingTaskType extends TaskType {
return;
}
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java
index bdc202ab..fc41eff4 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java
@@ -28,7 +28,7 @@ public final class PlaytimeTaskType extends TaskType {
@Override
public void run() {
for (Player player : Bukkit.getOnlinePlayers()) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : PlaytimeTaskType.super.getRegisteredQuests()) {
if (questProgressFile.hasStartedQuest(quest)) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PositionTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PositionTaskType.java
index d798e845..7bb1d0a1 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PositionTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PositionTaskType.java
@@ -46,7 +46,7 @@ public final class PositionTaskType extends TaskType {
Player player = event.getPlayer();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ShearingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ShearingTaskType.java
index 6fae7167..8606f8ef 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ShearingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/ShearingTaskType.java
@@ -40,7 +40,7 @@ public final class ShearingTaskType extends TaskType {
Player player = event.getPlayer();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/TamingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/TamingTaskType.java
index 28cb7325..c057ca57 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/TamingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/TamingTaskType.java
@@ -39,7 +39,7 @@ public final class TamingTaskType extends TaskType {
Player player = (Player) event.getOwner();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/WalkingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/WalkingTaskType.java
index 372254b7..9df9b250 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/WalkingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/WalkingTaskType.java
@@ -39,7 +39,7 @@ public final class WalkingTaskType extends TaskType {
Player player = event.getPlayer();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/uSkyBlockLevelType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/uSkyBlockLevelType.java
index 21bd17b5..2956bf32 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/uSkyBlockLevelType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/uSkyBlockLevelType.java
@@ -32,7 +32,7 @@ public final class uSkyBlockLevelType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(uSkyBlockScoreChangedEvent event) {
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(event.getPlayer().getUniqueId(), true);
if (qPlayer == null) {
return;
}
diff --git a/src/main/java/com/leonardobishop/quests/updater/Updater.java b/src/main/java/com/leonardobishop/quests/updater/Updater.java
index 03eded7f..f0705d1e 100644
--- a/src/main/java/com/leonardobishop/quests/updater/Updater.java
+++ b/src/main/java/com/leonardobishop/quests/updater/Updater.java
@@ -1,7 +1,7 @@
package com.leonardobishop.quests.updater;
+import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.obj.Messages;
-import org.bukkit.plugin.Plugin;
import java.io.BufferedReader;
import java.io.IOException;
@@ -10,7 +10,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.concurrent.TimeUnit;
-import java.util.logging.Level;
public class Updater {
@@ -18,11 +17,11 @@ public class Updater {
private String installedVersion;
private String returnedVersion;
private URL api;
- private Plugin plugin;
+ private Quests plugin;
private boolean updateReady;
private long lastCheck;
- public Updater(Plugin plugin) {
+ public Updater(Quests plugin) {
this.plugin = plugin;
this.installedVersion = plugin.getDescription().getVersion();
try {
@@ -45,11 +44,11 @@ public class Updater {
URLConnection con = api.openConnection();
returnedVersion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine();
if (!returnedVersion.equals(installedVersion)) {
- plugin.getLogger().log(Level.INFO, "A new version " + returnedVersion + " was found on Spigot (your version: " + installedVersion + "). Please update me! <3 - Link: " + getLink());
+ plugin.getQuestsLogger().info("A new version " + returnedVersion + " was found on Spigot (your version: " + installedVersion + "). Please update me! <3 - Link: " + getLink());
updateReady = true;
}
} catch (IOException e) {
- plugin.getLogger().log(Level.WARNING, "Failed to check for updates. You can check manually at " + getLink());
+ plugin.getQuestsLogger().warning("Failed to check for updates. You can check manually at " + getLink());
// probably offline
}
return false;
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index df2ef44b..9a96f719 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -7,7 +7,7 @@ main: com.leonardobishop.quests.Quests
author: LMBishop
softdepend: [ASkyBlock, uSkyBlock, Citizens, PlaceholderAPI]
prefix: Quests
-api-version: 1.14
+api-version: "1.13" # allows new API features but Quests will still work pre-1.13
commands:
quests: