From 1e07223d618291d514b3ff7a881a9cb857e99837 Mon Sep 17 00:00:00 2001 From: tastybento Date: Mon, 12 Nov 2018 10:24:18 -0800 Subject: [PATCH] Fixes issue with Level not being referenced correctly. https://github.com/BentoBoxWorld/addon-challenges/issues/26 --- pom.xml | 31 ------------------- .../addon/challenges/ChallengesAddon.java | 14 +++++++-- .../addon/challenges/panel/TryToComplete.java | 2 +- src/main/resources/addon.yml | 2 +- 4 files changed, 14 insertions(+), 35 deletions(-) diff --git a/pom.xml b/pom.xml index bca9782..5c127f7 100644 --- a/pom.xml +++ b/pom.xml @@ -63,11 +63,6 @@ ${powermock.version} test - - org.mongodb - mongodb-driver - 3.8.0 - world.bentobox bentobox @@ -209,30 +204,4 @@ - - - sonar - - https://sonarcloud.io - tastybento-github - - - - - org.sonarsource.scanner.maven - sonar-maven-plugin - 3.4.1.1168 - - - verify - - sonar - - - - - - - - \ No newline at end of file diff --git a/src/main/java/bentobox/addon/challenges/ChallengesAddon.java b/src/main/java/bentobox/addon/challenges/ChallengesAddon.java index 251daa0..7a5ccfe 100644 --- a/src/main/java/bentobox/addon/challenges/ChallengesAddon.java +++ b/src/main/java/bentobox/addon/challenges/ChallengesAddon.java @@ -17,6 +17,7 @@ public class ChallengesAddon extends Addon { private ChallengesManager challengesManager; private String permissionPrefix = "addon"; private FreshSqueezedChallenges importManager; + private boolean hooked; @Override public void onLoad() { @@ -41,13 +42,14 @@ public class ChallengesAddon extends Addon { // Register commands - run one tick later to allow all addons to load // AcidIsland hook in getServer().getScheduler().runTask(getPlugin(), () -> { + this.getPlugin().getAddonsManager().getAddonByName("AcidIsland").ifPresent(a -> { CompositeCommand acidIslandCmd = getPlugin().getCommandsManager().getCommand("ai"); if (acidIslandCmd != null) { new ChallengesCommand(this, acidIslandCmd); CompositeCommand acidCmd = getPlugin().getCommandsManager().getCommand("acid"); new Challenges(this, acidCmd); - + hooked = true; } }); this.getPlugin().getAddonsManager().getAddonByName("BSkyBlock").ifPresent(a -> { @@ -57,10 +59,18 @@ public class ChallengesAddon extends Addon { new ChallengesCommand(this, bsbIslandCmd); CompositeCommand bsbAdminCmd = getPlugin().getCommandsManager().getCommand("bsbadmin"); new Challenges(this, bsbAdminCmd); + hooked = true; } }); }); - + // If the add-on never hooks in, then it is useless + if (!hooked) { + logError("Challenges could not hook into AcidIsland or BSkyBlock so will not do anything!"); + } + // Try to find Level addon and if it does not exist, display a warning + if (!getAddonByName("Level").isPresent()) { + logWarning("Level add-on not found so level challenges will not work!"); + } // Done } diff --git a/src/main/java/bentobox/addon/challenges/panel/TryToComplete.java b/src/main/java/bentobox/addon/challenges/panel/TryToComplete.java index 32d7750..da6fdea 100644 --- a/src/main/java/bentobox/addon/challenges/panel/TryToComplete.java +++ b/src/main/java/bentobox/addon/challenges/panel/TryToComplete.java @@ -151,7 +151,7 @@ public class TryToComplete { private ChallengeResult checkLevel() { // Check if the level addon is installed or not - long level = addon.getAddonByName("BentoBox-Level") + long level = addon.getAddonByName("Level") .map(l -> ((Level)l).getIslandLevel(world, user.getUniqueId())).orElse(0L); if (level >= challenge.getReqIslandlevel()) { return new ChallengeResult().setMeetsRequirements(); diff --git a/src/main/resources/addon.yml b/src/main/resources/addon.yml index a8e421f..41b9fe0 100755 --- a/src/main/resources/addon.yml +++ b/src/main/resources/addon.yml @@ -4,7 +4,7 @@ version: ${version} authors: tastybento -softdepend: AcidIsland, BSkyBlock +softdepend: AcidIsland, BSkyBlock, Level permissions: bskyblock.challenges: