summaryrefslogtreecommitdiffstats
path: root/src/main/java/com
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2021-03-03 18:02:11 +0000
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2021-03-03 18:02:11 +0000
commita1c3ac868ac13732f6f82f9074c2c27e3fde9ecd (patch)
treec11d3f35266f04658c10d1c61996bd5c5cd1ae06 /src/main/java/com
parentd466534db12c3e3c5498f2bfb775672c210f86fe (diff)
Add support for CoreProtect + cleanup
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/leonardobishop/quests/Quests.java67
-rw-r--r--src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java8
-rw-r--r--src/main/java/com/leonardobishop/quests/bstats/Metrics.java16
-rw-r--r--src/main/java/com/leonardobishop/quests/commands/CommandQuests.java21
-rw-r--r--src/main/java/com/leonardobishop/quests/events/MenuController.java9
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectHook.java29
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectNoHook.java10
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/coreprotect/ICoreProtectHook.java16
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetterLatest.java6
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_1_13.java6
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java1
-rw-r--r--src/main/java/com/leonardobishop/quests/menu/QItemStack.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/menu/QMenuCancel.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/menu/QMenuCategory.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/menu/QMenuQuest.java10
-rw-r--r--src/main/java/com/leonardobishop/quests/menu/QMenuStarted.java10
-rw-r--r--src/main/java/com/leonardobishop/quests/player/QPlayer.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/player/QPlayerManager.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/Quest.java6
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/Task.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java6
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java11
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/BentoBoxLevelTaskType.java6
26 files changed, 216 insertions, 46 deletions
diff --git a/src/main/java/com/leonardobishop/quests/Quests.java b/src/main/java/com/leonardobishop/quests/Quests.java
index eee970b3..d7c4bda4 100644
--- a/src/main/java/com/leonardobishop/quests/Quests.java
+++ b/src/main/java/com/leonardobishop/quests/Quests.java
@@ -2,9 +2,12 @@ package com.leonardobishop.quests;
import com.leonardobishop.quests.bstats.Metrics;
import com.leonardobishop.quests.commands.CommandQuests;
-import com.leonardobishop.quests.events.MenuController;
import com.leonardobishop.quests.events.EventPlayerJoin;
import com.leonardobishop.quests.events.EventPlayerLeave;
+import com.leonardobishop.quests.events.MenuController;
+import com.leonardobishop.quests.hooks.coreprotect.CoreProtectHook;
+import com.leonardobishop.quests.hooks.coreprotect.CoreProtectNoHook;
+import com.leonardobishop.quests.hooks.coreprotect.ICoreProtectHook;
import com.leonardobishop.quests.hooks.itemgetter.ItemGetter;
import com.leonardobishop.quests.hooks.itemgetter.ItemGetterLatest;
import com.leonardobishop.quests.hooks.itemgetter.ItemGetter_1_13;
@@ -15,15 +18,48 @@ import com.leonardobishop.quests.hooks.title.Title;
import com.leonardobishop.quests.hooks.title.Title_Bukkit;
import com.leonardobishop.quests.hooks.title.Title_BukkitNoTimings;
import com.leonardobishop.quests.hooks.title.Title_Other;
-import com.leonardobishop.quests.util.Messages;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.player.QPlayerManager;
import com.leonardobishop.quests.quests.QuestManager;
import com.leonardobishop.quests.quests.tasktypes.TaskType;
import com.leonardobishop.quests.quests.tasktypes.TaskTypeManager;
-import com.leonardobishop.quests.quests.tasktypes.types.*;
-import com.leonardobishop.quests.quests.tasktypes.types.dependent.*;
+import com.leonardobishop.quests.quests.tasktypes.types.BreedingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.BrewingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.BuildingCertainTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.BuildingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.CommandTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.DealDamageTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.DistancefromTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.EnchantingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.ExpEarnTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.FishingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.InventoryTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.MilkingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.MiningCertainTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.MiningTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.MobkillingCertainTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.MobkillingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.PermissionTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.PlayerkillingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.PlaytimeTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.PositionTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.ShearingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.TamingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.WalkingTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.ASkyBlockLevelType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.BentoBoxLevelTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.CitizensDeliverTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.CitizensInteractTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.EssentialsBalanceTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.EssentialsMoneyEarnTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.IridiumSkyblockValueType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.MythicMobsKillingType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.PlaceholderAPIEvaluateTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.ShopGUIPlusBuyTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.ShopGUIPlusSellTaskType;
+import com.leonardobishop.quests.quests.tasktypes.types.dependent.uSkyBlockLevelType;
import com.leonardobishop.quests.updater.Updater;
+import com.leonardobishop.quests.util.Messages;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
@@ -31,7 +67,11 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
public class Quests extends JavaPlugin {
@@ -40,20 +80,23 @@ public class Quests extends JavaPlugin {
private static QPlayerManager qPlayerManager;
private static TaskTypeManager taskTypeManager;
+ private static Quests instance;
private static Updater updater;
private static Title title;
private ItemGetter itemGetter;
private QuestCompleter questCompleter;
private QuestsConfigLoader questsConfigLoader;
private QuestsLogger questsLogger;
+
private IPlaceholderAPIHook placeholderAPIHook;
+ private ICoreProtectHook coreProtectHook;
private boolean brokenConfig = false;
private BukkitTask questAutosaveTask;
private BukkitTask questQueuePollTask;
public static Quests get() {
- return (Quests) Bukkit.getPluginManager().getPlugin("Quests");
+ return instance;
}
public QuestManager getQuestManager() {
@@ -101,6 +144,8 @@ public class Quests extends JavaPlugin {
@Override
public void onEnable() {
+ instance = this;
+
questsLogger = new QuestsLogger(this, QuestsLogger.LoggingLevel.INFO);
questCompleter = new QuestCompleter(this);
@@ -201,6 +246,12 @@ public class Quests extends JavaPlugin {
this.placeholderAPIHook.registerExpansion(this);
}
+ if (Bukkit.getPluginManager().isPluginEnabled("CoreProtect")) {
+ this.coreProtectHook = new CoreProtectHook();
+ } else {
+ this.coreProtectHook = new CoreProtectNoHook();
+ }
+
// this intentionally should not be documented
boolean ignoreUpdates = false;
try {
@@ -220,6 +271,10 @@ public class Quests extends JavaPlugin {
return placeholderAPIHook;
}
+ public ICoreProtectHook getCoreProtectHook() {
+ return coreProtectHook;
+ }
+
@Override
public void onDisable() {
for (TaskType taskType : getTaskTypeManager().getTaskTypes()) {
diff --git a/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java b/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java
index 67b545f6..c7688e8e 100644
--- a/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java
+++ b/src/main/java/com/leonardobishop/quests/QuestsAutosaveRunnable.java
@@ -1,7 +1,7 @@
package com.leonardobishop.quests;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.QPlayer;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
diff --git a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
index 1ad75d2a..c279ec96 100644
--- a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
+++ b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
@@ -1,12 +1,12 @@
package com.leonardobishop.quests;
import com.leonardobishop.quests.hooks.itemgetter.ItemGetter;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.menu.QItemStack;
import com.leonardobishop.quests.quests.Category;
import com.leonardobishop.quests.quests.Quest;
import com.leonardobishop.quests.quests.Task;
import com.leonardobishop.quests.quests.tasktypes.TaskType;
+import com.leonardobishop.quests.util.Options;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
diff --git a/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java b/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java
index b45919b1..0b6fd924 100644
--- a/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java
+++ b/src/main/java/com/leonardobishop/quests/api/QuestsPlaceholders.java
@@ -2,19 +2,23 @@ package com.leonardobishop.quests.api;
import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.api.enums.QuestStartResult;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.menu.QItemStack;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.quests.Category;
import com.leonardobishop.quests.quests.Quest;
+import com.leonardobishop.quests.util.Options;
import me.clip.placeholderapi.expansion.Cacheable;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.concurrent.TimeUnit;
public class QuestsPlaceholders extends PlaceholderExpansion implements Cacheable {
diff --git a/src/main/java/com/leonardobishop/quests/bstats/Metrics.java b/src/main/java/com/leonardobishop/quests/bstats/Metrics.java
index c2fdf1ae..b0585cb2 100644
--- a/src/main/java/com/leonardobishop/quests/bstats/Metrics.java
+++ b/src/main/java/com/leonardobishop/quests/bstats/Metrics.java
@@ -11,12 +11,24 @@ import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.ServicePriority;
import javax.net.ssl.HttpsURLConnection;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.logging.Level;
import java.util.zip.GZIPOutputStream;
diff --git a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java
index 00b7640e..2490795a 100644
--- a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java
+++ b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java
@@ -3,14 +3,14 @@ package com.leonardobishop.quests.commands;
import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.QuestsConfigLoader;
import com.leonardobishop.quests.api.enums.QuestStartResult;
-import com.leonardobishop.quests.util.Messages;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.quests.Category;
import com.leonardobishop.quests.quests.Quest;
import com.leonardobishop.quests.quests.Task;
import com.leonardobishop.quests.quests.tasktypes.TaskType;
+import com.leonardobishop.quests.util.Messages;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
@@ -24,9 +24,22 @@ import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.io.IOException;
-import java.nio.file.*;
+import java.nio.file.FileVisitResult;
+import java.nio.file.FileVisitor;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
public class CommandQuests implements TabExecutor {
diff --git a/src/main/java/com/leonardobishop/quests/events/MenuController.java b/src/main/java/com/leonardobishop/quests/events/MenuController.java
index b25bcd89..a6d498ae 100644
--- a/src/main/java/com/leonardobishop/quests/events/MenuController.java
+++ b/src/main/java/com/leonardobishop/quests/events/MenuController.java
@@ -1,20 +1,13 @@
package com.leonardobishop.quests.events;
import com.leonardobishop.quests.Quests;
-import com.leonardobishop.quests.api.enums.QuestStartResult;
import com.leonardobishop.quests.menu.QMenu;
import com.leonardobishop.quests.menu.QMenuCancel;
-import com.leonardobishop.quests.menu.QMenuCategory;
-import com.leonardobishop.quests.menu.QMenuQuest;
-import com.leonardobishop.quests.menu.QMenuStarted;
-import com.leonardobishop.quests.util.Messages;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.quests.Quest;
-import org.bukkit.Bukkit;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
-import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryType;
diff --git a/src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectHook.java b/src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectHook.java
new file mode 100644
index 00000000..4010c4f1
--- /dev/null
+++ b/src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectHook.java
@@ -0,0 +1,29 @@
+package com.leonardobishop.quests.hooks.coreprotect;
+
+import net.coreprotect.CoreProtect;
+import net.coreprotect.CoreProtectAPI;
+import org.bukkit.Bukkit;
+import org.bukkit.block.Block;
+
+import java.util.List;
+
+public class CoreProtectHook implements ICoreProtectHook {
+
+ private final CoreProtectAPI api;
+
+ public CoreProtectHook() {
+ api = ((CoreProtect) Bukkit.getPluginManager().getPlugin("CoreProtect")).getAPI();
+ }
+
+ @Override
+ public boolean checkBlock(Block block, int time) {
+ List<String[]> lookup = api.blockLookup(block, time);
+ if (lookup.isEmpty()) return false;
+
+ String[] result = lookup.get(0);
+ CoreProtectAPI.ParseResult parseResult = api.parseResult(result);
+
+ return !parseResult.getPlayer().isEmpty() && parseResult.getActionId() == 1;
+ }
+
+}
diff --git a/src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectNoHook.java b/src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectNoHook.java
new file mode 100644
index 00000000..1587d726
--- /dev/null
+++ b/src/main/java/com/leonardobishop/quests/hooks/coreprotect/CoreProtectNoHook.java
@@ -0,0 +1,10 @@
+package com.leonardobishop.quests.hooks.coreprotect;
+
+import org.bukkit.block.Block;
+
+public class CoreProtectNoHook implements ICoreProtectHook {
+ @Override
+ public boolean checkBlock(Block block, int time) {
+ return false;
+ }
+}
diff --git a/src/main/java/com/leonardobishop/quests/hooks/coreprotect/ICoreProtectHook.java b/src/main/java/com/leonardobishop/quests/hooks/coreprotect/ICoreProtectHook.java
new file mode 100644
index 00000000..b69a1b46
--- /dev/null
+++ b/src/main/java/com/leonardobishop/quests/hooks/coreprotect/ICoreProtectHook.java
@@ -0,0 +1,16 @@
+package com.leonardobishop.quests.hooks.coreprotect;
+
+import org.bukkit.block.Block;
+
+public interface ICoreProtectHook {
+
+ /**
+ * Check whether or not the most recent edit to a block was the result of a player.
+ *
+ * @param block the block
+ * @param time the time to look back in seconds
+ * @return true if from a player
+ */
+ boolean checkBlock(Block block, int time);
+
+}
diff --git a/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetterLatest.java b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetterLatest.java
index c33baac7..615d1741 100644
--- a/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetterLatest.java
+++ b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetterLatest.java
@@ -13,7 +13,11 @@ import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
public class ItemGetterLatest implements ItemGetter {
diff --git a/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_1_13.java b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_1_13.java
index 0e0850cd..aac4fec4 100644
--- a/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_1_13.java
+++ b/src/main/java/com/leonardobishop/quests/hooks/itemgetter/ItemGetter_1_13.java
@@ -13,7 +13,11 @@ import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
public class ItemGetter_1_13 implements ItemGetter {
/*
diff --git a/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java b/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java
index 13542b28..66e93109 100644
--- a/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java
+++ b/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java
@@ -19,7 +19,6 @@ public class PlaceholderAPIHook implements IPlaceholderAPIHook {
placeholder.register();
}
-
@Override
public void unregisterExpansion() {
placeholder.unregister();
diff --git a/src/main/java/com/leonardobishop/quests/menu/QItemStack.java b/src/main/java/com/leonardobishop/quests/menu/QItemStack.java
index 4577bd59..775e5cc1 100644
--- a/src/main/java/com/leonardobishop/quests/menu/QItemStack.java
+++ b/src/main/java/com/leonardobishop/quests/menu/QItemStack.java
@@ -1,10 +1,10 @@
package com.leonardobishop.quests.menu;
import com.leonardobishop.quests.Quests;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.questprogressfile.QuestProgress;
import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.quests.Quest;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/leonardobishop/quests/menu/QMenuCancel.java b/src/main/java/com/leonardobishop/quests/menu/QMenuCancel.java
index 797223cc..607f6cf6 100644
--- a/src/main/java/com/leonardobishop/quests/menu/QMenuCancel.java
+++ b/src/main/java/com/leonardobishop/quests/menu/QMenuCancel.java
@@ -1,10 +1,10 @@
package com.leonardobishop.quests.menu;
import com.leonardobishop.quests.events.MenuController;
-import com.leonardobishop.quests.util.Items;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.quests.Quest;
+import com.leonardobishop.quests.util.Items;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
diff --git a/src/main/java/com/leonardobishop/quests/menu/QMenuCategory.java b/src/main/java/com/leonardobishop/quests/menu/QMenuCategory.java
index f8b4cd8a..a9301b7e 100644
--- a/src/main/java/com/leonardobishop/quests/menu/QMenuCategory.java
+++ b/src/main/java/com/leonardobishop/quests/menu/QMenuCategory.java
@@ -2,10 +2,10 @@ package com.leonardobishop.quests.menu;
import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.events.MenuController;
-import com.leonardobishop.quests.util.Messages;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.quests.Category;
+import com.leonardobishop.quests.util.Messages;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/leonardobishop/quests/menu/QMenuQuest.java b/src/main/java/com/leonardobishop/quests/menu/QMenuQuest.java
index bdcf20c7..bbdd6f60 100644
--- a/src/main/java/com/leonardobishop/quests/menu/QMenuQuest.java
+++ b/src/main/java/com/leonardobishop/quests/menu/QMenuQuest.java
@@ -3,11 +3,11 @@ package com.leonardobishop.quests.menu;
import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.api.enums.QuestStartResult;
import com.leonardobishop.quests.events.MenuController;
-import com.leonardobishop.quests.util.Items;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.player.questprogressfile.QuestProgress;
import com.leonardobishop.quests.quests.Quest;
+import com.leonardobishop.quests.util.Items;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
@@ -16,7 +16,11 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
diff --git a/src/main/java/com/leonardobishop/quests/menu/QMenuStarted.java b/src/main/java/com/leonardobishop/quests/menu/QMenuStarted.java
index 5faf2b5b..eb3d82aa 100644
--- a/src/main/java/com/leonardobishop/quests/menu/QMenuStarted.java
+++ b/src/main/java/com/leonardobishop/quests/menu/QMenuStarted.java
@@ -2,11 +2,11 @@ package com.leonardobishop.quests.menu;
import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.events.MenuController;
-import com.leonardobishop.quests.util.Items;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.player.questprogressfile.QuestProgress;
import com.leonardobishop.quests.quests.Quest;
+import com.leonardobishop.quests.util.Items;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
@@ -15,7 +15,11 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class QMenuStarted implements QMenu {
diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayer.java b/src/main/java/com/leonardobishop/quests/player/QPlayer.java
index d5d5b66a..b2dba6fe 100644
--- a/src/main/java/com/leonardobishop/quests/player/QPlayer.java
+++ b/src/main/java/com/leonardobishop/quests/player/QPlayer.java
@@ -2,7 +2,6 @@ package com.leonardobishop.quests.player;
import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.events.MenuController;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.menu.QMenuCategory;
import com.leonardobishop.quests.menu.QMenuQuest;
import com.leonardobishop.quests.menu.QMenuStarted;
@@ -10,6 +9,7 @@ import com.leonardobishop.quests.menu.QuestSortWrapper;
import com.leonardobishop.quests.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.quests.Category;
import com.leonardobishop.quests.quests.Quest;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java
index cc33b0ff..bc79651e 100644
--- a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java
+++ b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java
@@ -2,11 +2,11 @@ package com.leonardobishop.quests.player;
import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.QuestsLogger;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.questprogressfile.QPlayerPreferences;
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.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
diff --git a/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java b/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java
index c2bf0c53..a7ee6502 100644
--- a/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java
+++ b/src/main/java/com/leonardobishop/quests/player/questprogressfile/QuestProgressFile.java
@@ -9,11 +9,11 @@ import com.leonardobishop.quests.api.events.PlayerStartQuestEvent;
import com.leonardobishop.quests.api.events.PlayerStartTrackQuestEvent;
import com.leonardobishop.quests.api.events.PlayerStopTrackQuestEvent;
import com.leonardobishop.quests.api.events.PreStartQuestEvent;
-import com.leonardobishop.quests.util.Messages;
-import com.leonardobishop.quests.util.Options;
import com.leonardobishop.quests.player.QPlayer;
import com.leonardobishop.quests.quests.Quest;
import com.leonardobishop.quests.quests.Task;
+import com.leonardobishop.quests.util.Messages;
+import com.leonardobishop.quests.util.Options;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.YamlConfiguration;
diff --git a/src/main/java/com/leonardobishop/quests/quests/Quest.java b/src/main/java/com/leonardobishop/quests/quests/Quest.java
index eddeaa8b..b978f834 100644
--- a/src/main/java/com/leonardobishop/quests/quests/Quest.java
+++ b/src/main/java/com/leonardobishop/quests/quests/Quest.java
@@ -3,7 +3,11 @@ package com.leonardobishop.quests.quests;
import com.leonardobishop.quests.menu.QItemStack;
import org.bukkit.ChatColor;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class Quest implements Comparable<Quest> {
diff --git a/src/main/java/com/leonardobishop/quests/quests/Task.java b/src/main/java/com/leonardobishop/quests/quests/Task.java
index ca0f7150..cc93a8cf 100644
--- a/src/main/java/com/leonardobishop/quests/quests/Task.java
+++ b/src/main/java/com/leonardobishop/quests/quests/Task.java
@@ -26,7 +26,7 @@ public class Task {
return configValues.getOrDefault(key, null); //??? this will return null without the need of `OrDefault(key, null)`
}
- public Object getConfigValue(String key, boolean def) {
+ public Object getConfigValue(String key, Object def) {
return configValues.getOrDefault(key, def);
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java
index ae1ec467..0edec531 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java
@@ -5,7 +5,11 @@ import com.leonardobishop.quests.quests.Quest;
import com.leonardobishop.quests.quests.Task;
import org.bukkit.event.Listener;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.UUID;
/**
* A task type which can be used within Quests. A {@link Quest}
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 6faaa6fc..8be6dc0e 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
@@ -1,5 +1,6 @@
package com.leonardobishop.quests.quests.tasktypes.types;
+import com.leonardobishop.quests.Quests;
import com.leonardobishop.quests.QuestsConfigLoader;
import com.leonardobishop.quests.api.QuestsAPI;
import com.leonardobishop.quests.player.QPlayer;
@@ -33,6 +34,8 @@ public final class MiningCertainTaskType extends TaskType {
this.creatorConfigValues.add(new ConfigValue("blocks", true, "List of blocks (alias for block for config readability).", "block"));
this.creatorConfigValues.add(new ConfigValue("data", false, "Data code for block.")); // only used if no datacode provided in block or blocks
this.creatorConfigValues.add(new ConfigValue("reverse-if-placed", false, "Will reverse progression if block of same type is placed."));
+ this.creatorConfigValues.add(new ConfigValue("check-coreprotect", false, "Use coreprotect to check for blocks placed by a player"));
+ this.creatorConfigValues.add(new ConfigValue("check-coreprotect-time", false, "Time period for coreprotect check"));
this.creatorConfigValues.add(new ConfigValue("use-similar-blocks", false, "(Deprecated) If true, this will ignore orientation of doors, logs etc."));
this.creatorConfigValues.add(new ConfigValue("worlds", false, "Permitted worlds the player must be in."));
}
@@ -69,6 +72,8 @@ public final class MiningCertainTaskType extends TaskType {
}
}
TaskUtils.configValidateBoolean(root + ".reverse-if-broken", config.get("reverse-if-broken"), problems, true,"reverse-if-broken");
+ TaskUtils.configValidateBoolean(root + ".check-coreprotect", config.get("check-coreprotect"), problems, true,"check-coreprotect");
+ TaskUtils.configValidateInt(root + ".check-coreprotect-time", config.get("check-coreprotect-time"), problems, true,true, "check-coreprotect-time");
TaskUtils.configValidateBoolean(root + ".use-similar-blocks", config.get("use-similar-blocks"), problems, true,"use-similar-blocks");
TaskUtils.configValidateInt(root + ".data", config.get("data"), problems, true,true, "data");
return problems;
@@ -102,6 +107,12 @@ public final class MiningCertainTaskType extends TaskType {
}
if (matchBlock(task, event.getBlock())) {
+ boolean coreProtectEnabled = (boolean) task.getConfigValue("check-coreprotect", false);
+ int coreProtectTime = (int) task.getConfigValue("check-coreprotect-time", 3600);
+
+ if (coreProtectEnabled && Quests.get().getCoreProtectHook().checkBlock(event.getBlock(), coreProtectTime)) {
+ continue;
+ }
increment(task, taskProgress, 1);
}
}
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/BentoBoxLevelTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/BentoBoxLevelTaskType.java
index 2255ead6..ca6f5b61 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/BentoBoxLevelTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/BentoBoxLevelTaskType.java
@@ -18,7 +18,11 @@ import world.bentobox.bentobox.api.events.BentoBoxEvent;
import world.bentobox.bentobox.database.objects.Island;
import java.lang.reflect.Field;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong;
public final class BentoBoxLevelTaskType extends TaskType {