aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2021-01-07 22:22:57 +0000
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2021-01-07 22:22:57 +0000
commitc0e4d4836fb6eec9aa438fd5f967e43b4cdc7b9d (patch)
tree716e0c3b86776cda28e232a92383abe9cd22a4dd /src/main/java
parentfe1faf26bcbf17815adcfd3e5fb8b378cbb83c12 (diff)
Added null check to matchBlock function in mining & building task types
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java32
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java3
2 files changed, 29 insertions, 6 deletions
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 2898242e..73252665 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
@@ -95,17 +95,37 @@ public final class BuildingCertainTaskType extends TaskType {
@SuppressWarnings("deprecation")
private boolean matchBlock(Task task, Block block) {
Material material;
- Object configBlock = task.getConfigValue("block");
+
+ Object configBlock = task.getConfigValues().containsKey("block") ? task.getConfigValue("block") : task.getConfigValue("blocks");
Object configData = task.getConfigValue("data");
Object configSimilarBlocks = task.getConfigValue("use-similar-blocks");
- material = Material.getMaterial(String.valueOf(configBlock));
+ List<String> checkBlocks = new ArrayList<>();
+ if (configBlock instanceof List) {
+ checkBlocks.addAll((List) configBlock);
+ } else {
+ checkBlocks.add(String.valueOf(configBlock));
+ }
+
+ for (String materialName : checkBlocks) {
+ // LOG:1 LOG:2 LOG should all be supported with this
+ String[] split = materialName.split(":");
+ int comparableData = 0;
+ if (configData != null) {
+ comparableData = (int) configData;
+ }
+ if (split.length > 1) {
+ comparableData = Integer.parseInt(split[1]);
+ }
- Material blockType = block.getType();
- short blockData = block.getData();
+ material = Material.getMaterial(String.valueOf(split[0]));
+ Material blockType = block.getType();
- if (blockType.equals(material)) {
- return configData == null || (((int) blockData) == ((int) configData));
+ short blockData = block.getData();
+
+ if (blockType.equals(material)) {
+ return configData == null || ((int) blockData) == comparableData;
+ }
}
return false;
}
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 30314968..9e28035b 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
@@ -113,6 +113,9 @@ public final class MiningCertainTaskType extends TaskType {
// LOG:1 LOG:2 LOG should all be supported with this
String[] split = materialName.split(":");
int comparableData = 0;
+ if (configData != null) {
+ comparableData = (int) configData;
+ }
if (split.length > 1) {
comparableData = Integer.parseInt(split[1]);
}