summaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main/java')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java5
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java17
3 files changed, 23 insertions, 0 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
index 633509a5..239e8c68 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -282,6 +282,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
}
if (Bukkit.getPluginManager().isPluginEnabled("PlayerBlockTracker")) {
this.playerBlockTrackerHook = new PlayerBlockTrackerHook();
+ this.playerBlockTrackerHook.fixPlayerBlockTracker();
}
taskTypeManager.registerTaskType(new MiningTaskType(this));
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java
index 2e07316b..a3931390 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java
@@ -12,4 +12,9 @@ public interface AbstractPlayerBlockTrackerHook {
*/
boolean checkBlock(Block block);
+ /**
+ * Changes PlayerBlockTracker listener to be called after the Quests' one is
+ */
+ void fixPlayerBlockTracker();
+
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java
index 34bf95af..0ab896b7 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java
@@ -1,7 +1,11 @@
package com.leonardobishop.quests.bukkit.hook.playerblocktracker;
import com.gestankbratwurst.playerblocktracker.PlayerBlockTracker;
+import org.bukkit.Bukkit;
import org.bukkit.block.Block;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.plugin.RegisteredListener;
public class PlayerBlockTrackerHook implements AbstractPlayerBlockTrackerHook {
@@ -10,4 +14,17 @@ public class PlayerBlockTrackerHook implements AbstractPlayerBlockTrackerHook {
return PlayerBlockTracker.isTracked(block);
}
+ @Override
+ public void fixPlayerBlockTracker() {
+ PlayerBlockTracker playerBlockTracker = (PlayerBlockTracker) Bukkit.getPluginManager().getPlugin("PlayerBlockTracker");
+ HandlerList handlerList = BlockBreakEvent.getHandlerList();
+ RegisteredListener[] listeners = handlerList.getRegisteredListeners();
+ for (RegisteredListener listener : listeners) {
+ if (listener.getPlugin() != playerBlockTracker) {
+ handlerList.unregister(listener);
+ handlerList.register(listener);
+ }
+ }
+ handlerList.bake();
+ }
}